Commit Graph

31 Commits

Author SHA1 Message Date
Andy McFadden 137cafa05b Update version for v3.1.0 release 2017-09-21 11:52:37 -07:00
Andy McFadden 20fe7efb4d Fix extraction of disk images
A recent change was causing NufxLib to try to create a fake
empty data thread in records that had nothing but a disk image
thread.
2016-01-11 09:11:30 -08:00
Andy McFadden f37b387cc6 Fix handling of entries with missing threads
When GSHK adds files to an archive, it doesn't create threads for
zero-length data and resource forks.  NufxLib had a workaround
for this, but it wasn't handling all possible cases.  We now
fully handle "Miranda threads" (if you cannot afford a thread,
one will be provided for you).

This broke test-basic, because a callback gets called one extra
time now due to the additional thread.  It also broke test-twirl,
which uses "mask dataless" and is sensitive to the order in which
threads appear.  (test-twirl actually works just fine, but the
CRC check is too simple-minded, and is arguably incorrect.)

Since this can apparently break things, I'm making this a minor
version bump, to 3.1.0-a1.

I also tweaked the NuLib2 file listing to test for the extended
file storage type, rather than simply scanning for data threads.
Forked files are now listed as such, even when they're missing
the actual resource fork data thread.
2015-12-26 12:05:13 -08:00
Andy McFadden 5a5d8993d3 Bump version to 3.0.0 2015-01-09 10:59:33 -08:00
Andy McFadden 1286c3518e Minor Mac fixes
Eliminated the two inline functions.  Support for function inlining
in plain C is a bit uneven.  The CRC calculation is now a macro,
and the thread get-by-index is a plain function.
2015-01-03 11:24:12 -08:00
Andy McFadden e2088e64d3 Distinguish Unicode and Mac OS Roman strings
NufxLib has historically made no effort to distinguish between
the character set used for filenames on the local disk, and for
filenames stored within the archive.  Now all Unicode filename
strings use the UNICHAR type and have "UNI" in the name, and all
Mac OS Roman strings have "MOR" in the name.  (The naming
convention makes it obvious when you're assigning the wrong thing;
on Linux both formats are char*, so the compiler won't tell you
if you get it wrong.)

The distinction is necessary because filesystems generally support
Unicode these days, but on Windows you need to use a separate
set of wide-character file I/O functions.  (On Linux it all works
with "narrow" strings, and the UTF-8 encoding is interpreted by
applications.)  The character set used for NuFX archive filenames
is MOR, matching what GS/OS + HFS supported, and we want to be able
to convert back and forth between MOR and a Unicode representation.

This change updates the various character types and string names,
adds conversion functions, and updates NuLib2 for proper execution
on Linux.  It does not include the (probably extensive) changes
required for Windows UTF-16 support.  Instead, the conversion
functions are no-ops, which should result in NuLib2 for Windows
continuing to behave in the same slightly broken way.

This adds "test-names", which exercises Unicode filenames a bit.
It will not pass on Win32.

Also, tweaked the Linux makefiles to have explicit dependencies,
rather than empty space and an expectation that "makedepend" exists.

Also, minor source code cleanups.

While this probably doesn't affect binary compatibility -- it's
mainly a matter of naming and string interpretation -- there's
enough going on that it should be considered an API revision, so
this updates the version to 3.0.0.
2015-01-02 17:14:34 -08:00
Andy McFadden dbbbe6a858 Version bump to 2.3.0 2014-12-22 16:12:06 -08:00
Andy McFadden 9666ebd97a Move method return type to declaration line
Having the method name up against the left edge used to be common
practice, because you could jump to a method quickly by searching
for "^name".  Now we have "ctags" and IDEs.
2014-12-22 16:00:33 -08:00
Andy McFadden ce1b57e2ad Change "nil" to "NULL" 2014-12-21 18:17:23 -08:00
Andy McFadden 8b83c7afe5 Update version to 2.2.2 ("bug" version bump). Nudge the
copyright banner.
2014-10-28 11:03:46 -07:00
Andy McFadden aa61e5ae48 ProTERM can prepend a 128-byte Binary ][ header before transmitting a file.
When it does so it does not pad the file's length out to a multiple of
128 bytes, which confused the file extraction code.
2009-01-13 20:16:23 +00:00
Andy McFadden b430f08d1e Changed from GPL to BSD license. 2007-02-19 23:11:55 +00:00
Andy McFadden 1f19d2873f Enable recognition and handling of "bad Mac" archives. 2007-02-19 22:38:15 +00:00
Andy McFadden 2b5c399f78 Updated version to v2.1.1. 2006-02-19 01:31:34 +00:00
Andy McFadden 1d2be9c9ab Updated copyrights to 2006. 2006-02-19 01:23:27 +00:00
Andy McFadden 8e31d94585 Updated copyright notices. 2005-09-18 02:41:31 +00:00
Andy McFadden 1c57f7b3e4 Increased version to v2.1.0. 2005-09-18 02:18:21 +00:00
Andy McFadden 1b1bafb12b Upped version to v2.0.3. 2004-08-23 00:00:44 +00:00
Andy McFadden bb09a12f75 Updated copyright notices (from 2003 to 2004).
Incremented version to 2.0.2.
2004-03-10 21:26:29 +00:00
Andy McFadden cd1f9e78a1 Twiddled some comments and upped the version to match NufxLib (v2.0.1). 2003-10-16 22:25:26 +00:00
Andy McFadden ba99fa7372 Updated copyright notices. 2003-02-08 22:43:24 +00:00
Andy McFadden 0d053dca09 Upped version number to v2.0.0.
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.
2003-02-08 22:35:31 +00:00
Andy McFadden af503787ad Updated copyright notices and legalese. 2002-10-11 20:13:25 +00:00
Andy McFadden b72e469104 Minor tweaks to help text. Set version to 1.1.0. 2002-10-11 19:45:29 +00:00
Andy McFadden edc69e56ca Added support for bzip2 compression.
Use NuTestFeature to determine which compression methods are available.
2002-10-09 23:12:33 +00:00
Andy McFadden a9ad3e7a3e Added Binary II support. It's not quite seamless, but it's a lot
better than what the original NuLib offered.

Wrote first cut at verbose "help" output.
2002-10-09 00:15:24 +00:00
Andy McFadden e7a3225f04 Added optional support for zlib deflate compression via the "-z" flag. The
auto-config checks for zlib, and enables the features if found.  This isn't
ideal, but it'll do.

The "gory debug" output is now available with the "-g" command.
2002-10-01 01:05:13 +00:00
Andy McFadden 809f26783f Added "analyzing" state to progress updater (used by SQueeze compression).
Changed the version string to "1.1.0d1".
2002-09-26 22:12:18 +00:00
Andy McFadden d6a5154b60 Reformatted files to use spaces instead of hard tabs. No substantitve changes. 2002-09-21 00:59:25 +00:00
Andy McFadden ba1c861724 Bumped the version up to 1.0.1 to keep pace with NufxLib. 2000-05-23 02:04:46 +00:00
cvs 5615fa90d4 Imported sources. 2000-05-23 01:55:31 +00:00