Commit Graph

18 Commits

Author SHA1 Message Date
Andy McFadden 7f158dd206 Update "recognized extensions" table
Added ".cpp" and ".text" as recognized extensions, so that NuLib2
and CiderPress match.

Fixed up the table a bit, using better-suited types and removing
an unnecessary field.
2015-12-26 15:28:39 -08:00
Andy McFadden 132a8338b9 Fix Mac OS X behavior
Some fixes to the Mac OS X build:

- Replace the Carbon calls that were used to set the creator
and file type with xattr calls.  The Carbon stuff still worked
but caused deprecation warnings.  Stop linking against Carbon.

- Correct the way resource forks are accessed (from "/rsrc" to
"/..namedfork/rsrc").  The native resource fork support is
incomplete and doesn't work quite right, so it's now disabled.
(Which means the corrections to the file name don't actually do
anything, but you can at least play with it.)

- Correct the file/aux type conversion, which appeared to do
useful things but actually didn't in some circumstances (e.g. when
adding files, the code for acquiring the file types needs to be in
NuLib2, not NufxLib).

- Set creator and file type to 'pdos' values when extracting from
a Binary ][ archive.

Also, drop some old purify/quantify stuff.
2015-01-03 15:59:37 -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 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 20c9ac1195 Use integer types with explicit widths
Replace types like "unsigned char" and "ushort" with <stdint.h>
types like uint8_t.

Remove uchar/ushort/uint/ulong from autoconf.
2014-12-22 14:56:12 -08:00
Andy McFadden ce1b57e2ad Change "nil" to "NULL" 2014-12-21 18:17:23 -08:00
Andy McFadden b430f08d1e Changed from GPL to BSD license. 2007-02-19 23:11:55 +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 bb09a12f75 Updated copyright notices (from 2003 to 2004).
Incremented version to 2.0.2.
2004-03-10 21:26:29 +00:00
Andy McFadden 80c9b78516 The test for really long filename extensions was broken. 2003-03-12 02:39:43 +00:00
Andy McFadden 6389da041b When extracting disk images with "-ee", append ".PO" to filename. 2003-02-18 21:49:25 +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 46c7579f57 Minor tweaks, mostly to comments and "assert" vs "Assert". 2002-10-09 00:04: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
cvs 5615fa90d4 Imported sources. 2000-05-23 01:55:31 +00:00