Most of this change is a conversion of the old FileDetails struct
into a new LocalFileDetails class. The new class keeps the
members private, and keeps the Unicode and MOR representations of
the string separate.
The NuFX and DiskImg libraries don't support UTF-16 filenames,
so we stil can't add files with non-CP-1252 filenames, but we're
a step closer.
Also, update NufxLib with a couple of fixes from the main project.
Also, fix handling of "%00" when adding files.
Also, mark most of the A2FileDOS fields private. Not sure why
they weren't.
Many updates to format strings, largely as a result of changing
various "long" variables to uint32_t.
Fixed the diskimg debug macros for gcc, which requires an extra
"##" to remove the "," when there are no arguments. (Apparently
Visual Studio just strips this away for you.)
Stripped out a couple of dead variables spotted by gcc. Return
the actual error in a couple of HFS file functions.
Focusing on the diskimg library this time, which deals with a lot of
filesystem structures that have specific widths.
This is still a bit lax in places, e.g. using "long" for lengths.
Should either specify a bit width or use di_off_t.
Also, added "override" keyword where appropriate.
Also, bumped library version to 5.0.0.
The OpenImage method had an overload that took void*. This turns out
to be a bad idea, because void* matches any pointer type that didn't
match something else. So the WCHAR* filenames were going to the "open
from buffer" method rather than the "open from file" variant.
A less important issue is whether open-from-buffer should take a const
or non-const pointer. If the "readOnly" boolean flag is not set, then
the contents can be altered and const is inappropriate. The best course
seems to be to drop the boolean flag as an argument, and just have two
different methods.
Mostly a bulk conversion of debug messages, primarily with sed:
sed -e 's/\(WMSG[0-9]\)\(.*\)\(\\n"\)/LOGI\2"/'
This removes the '\n' from the end of the log messages, and sets
them all to "info" severity.
We want to prefix each line with file/line and/or a timestamp,
so it doesn't make sense to have a partial line, and there's no
value in embedding the '\n' in every string.
This updates all source files to use spaces instead of tabs for
indentation. It also normalizes the end-of-line markers to be
Windows-style CRLF, and ensures that all files end with EOL.
No substantive changes were made; "diff -w" is empty.