message threads. This didn't cause any problems with the archive, but
if you extracted the thread in question without reopening the archive
you ended up getting the whole pre-sized buffer instead of just the part
with data in it.
Load the TOC if needed in Nu_ExtractThread.
When thread extraction fails, don't send an update to the progress
updater if there isn't a progress updater.
and nufxlib2.dll. This allows the possibility of having multiple
(incompatible) versions of the DLL installed in a common location, so
that older and newer apps can coexist peacefully.
exerciser dt/at after sev 2 10), flush, then delete the first one and
flush. The archive gets trashed, because the record's fileOffset wasn't
getting updated properly.
instead of a "doClose" argument. NufxLib should no longer try to free
anything allocated by the application (or vice-versa).
The DataSource "copy" function now does refcounting instead of copying.
This was done as part of cleaning up some memory leaks in the DataSource
code.
The samples were all updated with the changes to the API (and the
occasional minor valgrind-inspired bug fix).
Fixed filename conversion issues. Specifically:
- Correctly handle '%' when preservation is OFF.
- Accept 4-character extensions in '-ee' without risk of buffer overflow.
- Fixed broken assert when converting long %xx names.
- Store "AUX" as "%00AUX" when preserving names under Win32 (vs. "_AUX").
- Always store files with ':' as path separator.
- Recognize that some Win32 variants (Win2K and later at the least) will
accept both '/' and '\' as pathname separators.
- Correctly convert ".//foo" to "foo" instead of "/foo".
Corrected definition of F_OK under Win32.
threads by giving them an empty data fork (and, if it's an extended
file, an empty resource fork). This allows applications to simply
ignore the bogus records and let NufxLib do the dirty work.
Fixed dataless thread handling for the original (non-masked) case. We
weren't creating empty resource forks when required, so a dataless
record with a forked-file storage type wouldn't be recreated properly
if extracted and then added.
Added version numbers to the public header, so applications can test
for "compiled" version vs "linked" version.