Open
Conversation
When unable to parse an operand to something that appears to be a macro, ensure the required string for the error message is passed. Failing to do so causes undefined behavior when the error message is formatted, and reliably crashes. Fixes alberthdev#71.
Travis hasn't been truly free for open-source projects since 2021, and is no longer used by this project.
This should permit unification of the makefile and msbuild projects.
Support building with cmake
This is unneeded after c++11, and broken from c++17. Fixes alberthdev#73
Take the relative path of each automatically-discovered test case, rather than the absolute path returned by file(GLOB). This makes the test names much simpler.
This replaces TCHAR with explicit unicode and swaps windows-specific types like DWORD with standard equivalents, as well as removing the COM interface.
This is a peculiar windows idiom for precompiled headers that isn't important to us.
CMake should be used going forward.
c++17's std::filesystem allows us to get rid of some mess using either bare win32 or POSIX APIs depending on the target platform. The code is easier to understand and shorter.
"consider using sprintf_s instead" and the like is not helpful because it's not portable.
This removes the dependency on the Windows cryptography libraries and OpenSSL, at the cost of including a little bit more code.
This allows cmake to use PKG_CONFIG without any other installs. microsoft/vcpkg#17481
This avoids including Windows.h except where actually required, and deletes more uses of windows type names like WORD. bitmap.cpp is normalized to use the windows names because it uses them extensively, but it no longer includes Windows.h. Some former DWORDs that were incorrectly converted to int32_t are changed to be unsigned again.
In particular this requests UTF-8 mode for versions of Windows that support using the UTF-8 codepage. This is useful because it allows us to use bytestrings and assume they're always UTF-8, without needing to deal with the mess that is Windows wide characters and UCS-2 being completely unusable for non-BMP characters.
We don't actually care, but it's still probably useful to enable -Wall.
If textual output ends up containing garbage, we'd like to know. This will display badly-encoded data if we find it, making that somewhat easier to debug.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This builds on top of #74 to remove a lot of old crusty patterns that mostly relate to targeting Windows as a primary platform. Using CMake, vcpkg and C++17 features: