Commit Graph

238 Commits

Author SHA1 Message Date
Andy McFadden 811ebe9ba3
Merge pull request #15 from fweimer-rh/c99
configure: Fix C99 compatibility issue
2023-01-27 07:26:12 -08:00
Florian Weimer 6eb33543cb configure: Fix C99 compatibility issue
Avoid calling the undeclared exit function.  This avoids a check
failure with a future compiler that does not support implicit
function declarations.
2023-01-27 10:22:42 +01:00
Andy McFadden 0f957f9e83 Update URL 2022-10-08 09:13:24 -07:00
Andy McFadden 918f318ca4 Update URL 2022-10-08 09:12:22 -07:00
Andy McFadden ca8605c403 Update autoconf scripts
I re-ran "autoconf", which made minor changes to the nufxlib configure
script, and copied the latest (v2.71) config.sub/config.guess scripts.

(issue #14)
2022-07-20 09:43:57 -07:00
Andy McFadden 2a5e5bc299
Merge pull request #10 from ksherlock/pkg-config
pkg-config support for nufxlib
2020-10-15 10:45:50 -07:00
Kelvin Sherlock ae66fba7bc pkg-config support
will generate nufxlib.pc and install to the pkgconfig directory
for use with the oft-used pkg-config utility.
2020-10-14 23:18:02 -04:00
Andy McFadden 0619ef3fe7
Merge pull request #9 from skitt/packaging-fixes
Packaging fixes
2019-05-04 14:35:40 -07:00
Stephen Kitt 7ec4eb46c7
Honour LDFLAGS when linking
Most of the build handles flags fine, since it uses the built-in Make
rules. However the linking step ignores LDFLAGS, which means some link
flags used in Linux distributions are ignored.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2019-05-04 23:04:46 +02:00
Stephen Kitt 21a10ad266
Install to DESTDIR
Packaging systems commonly specify DESTDIR as a temporary directory in
which to install the build artifacts. Its use is transparent in other
contexts.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2019-05-04 23:04:14 +02:00
Stephen Kitt f6ff60420b
Add AC_DEFINE descriptions
This allows current autoheader to process configure.in, preserving the
comments in config.h.in.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2019-05-04 23:02:16 +02:00
Stephen Kitt ea89644bfa
Ensure the library is built before the samples
When building in parallel, Make can start building the samples before
it’s finished building the library, which causes the build to fail.
Adding an explicit dependency ensures that the library is built before
the samples.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2019-05-04 23:00:48 +02:00
Andy McFadden 9fdc77a108 Add -fPIC to CFLAGS
It's needed for "make shared".  Not needed (or desired) for static
libs, but it's nearly harmless.
2018-08-07 20:47:56 -07:00
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 51af83986c Fix test-twirl
The test was expecting the order of threads not to change, which
was reasonable until we started throwing fake threads at it with
the recent change to "mask dataless".  We now employ a hack that
reorders the CRCs from data-class threads so that the data fork's
CRC always comes first.  Not a tremendously robust solution, but
it'll do.
2015-12-26 15:55:58 -08:00
Andy McFadden bbeb9eaf90 Update ChangeLog
Probably silly now that everything is on github.
2015-12-26 15:41:11 -08:00
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 eb40d65f1d Improve Mac OS X file type handling
The previous code only created files with 'pdos'/'pXYZ' attributes,
and didn't correctly recognize specific types like 'pdos'/'TEXT'.
The code should now perform the conversions according to the spec,
though it still doesn't handle the 'pdos'/'XY  ' case.
2015-12-26 15:22:16 -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 bc96aa420b Update SysDefs for Visual Studio 2015
Apparently VS2015 now includes definitions for snprintf/vsnprintf.

Not tested with VS2015.
2015-11-15 15:36:01 -08:00
Andy McFadden 508531fb54 Windows 2015-03-08 11:33:17 -07:00
Andy McFadden ae8eec5d1b Add arg to exerciser "af"
Updated the NuAddFile command to take an extra argument that
identifies the source as coming from a resource fork.  You can't
actually use this to create a forked entry without some behind-
the-scenes renaming, because the exerciser uses the disk filename
as the storage filename, and the "add file" code won't be able to
match the entries up.
2015-03-08 11:01:13 -07:00
Andy McFadden 8d2f1a5479 Add test-names to README-S.txt 2015-01-09 13:44:39 -08:00
Andy McFadden 506e278e34 Minor tweaks for consistency 2015-01-09 11:52:56 -08:00
Andy McFadden 5a5d8993d3 Bump version to 3.0.0 2015-01-09 10:59:33 -08:00
Andy McFadden 6ba112fdfe Include file/line info without DEBUG_MSGS
For some reason the __FILE__ and __LINE__ stuff was disabled when
DEBUG_MSGS wasn't enabled.  It's now enabled.
2015-01-07 15:06:25 -08:00
Andy McFadden 137f209a3f Set the Finder info before the access permissions
Looks like setxattr() requires write access, so we need to set
the Finder info before we "lock" the file.
2015-01-06 10:50:30 -08:00
Andy McFadden e5b74c28f2 Add Unicode details to NOTES
Also, switch from plain text to markdown.  The plain text form is
nearly identical, but it's much nicer when viewed on github.
2015-01-04 15:31:35 -08:00
Andy McFadden 0137d4ef38 Win32 API fix 2015-01-04 11:29:18 -08:00
Andy McFadden 3ee3c9451e Update README 2015-01-03 17:33:35 -08:00
Andy McFadden cf4ab2ee2f Mention OS X in README 2015-01-03 17:07:43 -08:00
Andy McFadden 76ee85b6ec Update README
Added note to Win32 section about missing Unicode support.
2015-01-03 17:05:58 -08:00
Andy McFadden 24a49dfece Update ChangeLog 2015-01-03 17:01:38 -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 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 c6c7133d43 Drop SunOS 4 support 2015-01-02 18:17:00 -08:00
Andy McFadden ad2ec98e8b Win32 fix 2015-01-02 17:44:10 -08:00
Andy McFadden e7bf743afd Missed a filename 2015-01-02 17:23:35 -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 f4dea8b251 Update READMEs
Updated the build instructions in the READMEs.
2014-12-23 11:29:01 -08:00
Andy McFadden 5d5dd3900f Missed a "uint". 2014-12-22 16:20:39 -08:00
Andy McFadden dbbbe6a858 Version bump to 2.3.0 2014-12-22 16:12:06 -08:00
Andy McFadden 524e0926e7 Fix include guards
Symbols starting with "__" are reserved for use by the compiler.
2014-12-22 16:06:55 -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 cf433eeae0 Don't delete Version.c
We used to generate Version.c, so it was being removed by the
"distclean" target.
2014-12-21 10:18:26 -08:00
Andy McFadden 281813a8ea Tweak .gitignore 2014-12-11 16:28:38 -08:00
Andy McFadden 8841f72b57 Updated. 2014-10-30 12:09:37 -07:00