aboutsummaryrefslogtreecommitdiff
path: root/c/common.cpp
AgeCommit message (Collapse)Author
2022-07-20Simplify require, prefer.John Ankarström
2022-07-20Use GetLastError() as default for Win32Error.John Ankarström
2022-07-20Use template instead of Win32Error::twhat.John Ankarström
2022-07-20Fix bug in and rename throw_nil, warn_nil.John Ankarström
In warn_nil, the return value was undefined on exception -- I think. While informative, the names throw_nil and warn_nil don't work very well in conditionals: if (warn_nil<f>(...)) g(); sounds like g should be called if f returns nil and a warning is issued. But it is actually the other way around; g is called if f is successful. if (prefer<f>(...)) g(); sounds less like that.
2022-07-19Check Windows API calls for errors more consistently.John Ankarström
Some of the checks are likely redundant, but the Windows API documentation rarely makes it clear WHICH errors may be returned (and under which circumstances) rather than simply WHETHER errors may be returned (under any circumstances, including those that do not apply in the given case).
2022-07-19Formatting.John Ankarström
2022-07-19Add comments.John Ankarström
2022-07-19Remove EBMessageBoxA.John Ankarström
2022-07-19Implement centered message box.John Ankarström
2022-07-18Improve Library::GetProcAddress.John Ankarström
It isn't really more safe, but it removes the need for a confusing function pointer cast, which is easy to get wrong. As far as the compiler is concerned, the result is literally the same, but it does force the caller to (indirectly, via the template parameter) cast the return value, which may be a good thing.
2022-07-18Solve compiler warnings.John Ankarström
2022-07-18Add Unicode support to Win32Error.John Ankarström
2022-07-17Prefer f() over f(void).John Ankarström
f(void) is a C-ism that is valid but unnecessary in C++.
2022-07-17Update type names and variable prefixes.John Ankarström
2022-07-17Add const to pointers, update spacing.John Ankarström
It seems that "right-spaced" pointers are more widely used among C++ programmers.
2022-07-17Add const to places.John Ankarström
Note that I did NOT add const to non-pointer/non-reference arguments in function declarations (without a following definition), as they do not mean anything there.
2022-07-17Remove TsmFromSz.John Ankarström
If needed in the future, it is possible to simply copy it from the Git history.
2022-07-16Rewrite TszFromSz as TsmFromSz.John Ankarström
I.e. using std::basic_string<TCHAR> instead of TCHAR *. This removes all unmanaged frees.
2022-07-15Split defs.h into separate header files.John Ankarström
This is feasible now that the makedeps script exists to automatically manage build dependencies (see 6034fe2, d00f8b3).
2022-07-15Add Win32Error exception class.John Ankarström
2022-07-15Add support for Prolog exceptions.John Ankarström
2022-07-15Replace Library::Load with try_make_unique template.John Ankarström
2022-07-15Change declaration style.John Ankarström
2022-07-15Add wrapper for LoadLibrary, FreeLibrary.John Ankarström
2022-07-10Convert to C++.John Ankarström
I already hit upon some object-oriented programming patterns in *listview.c, so I felt that it would be natural to use this as an opportunity to learn C++.