to ignore leading "./" that was there to allow us to
compare path names with strcmp(). Comparing pathnames
syntactically is a bit more complex than that, so
encapsulate it in a new utility function and use that instead.
Separate platform-specific config into config_freebsd.h.
Changes to Makefile and bsdtar_platform.h to use this instead
of coding the FreeBSD configuration into bsdtar_platform.h
-o means different things depending on the mode in order to
preserve both GNU and POSIX compatibility
--no-same-owner always means the same thing, regardless of other options
* Correct crash when files are removed during a traversal
* Streamline some of the dir and link checks
* Clarify comments
* Guard header includes for portability
Update bsdtar_platform.h to reflect that FreeBSD does
indeed have <errno.h>.
* Remove unused pathlen argument from write_entry function.
* Fix logic bug in deciding if do_chdir should be called.
* Don't consider an lstat(2) failure to be an error.
* Correct warning message when lstat(2) fails.
* Print error messages where appropriate, and print the right one.
* Properly handle errors in archive_write_close.
* Correct resource leak in @<archive> handling.
* Remove nonexistant -F option from getopts string.
* Correct the names of some options.
* Check for -U and --strip-components options in inappropriate contexts.
The bsdtar_warnc() reporting function requires the program name to be
set up before it is called, so move the progname initialization before
the first possible call to bsdtar_warnc().
Thanks to: Stanislav Sedov
PR: bin/83366
Approved by: re (scottl)
(combine with existing seconds-based), treat '-' as punctuation rather
than a negative number indicator (eliminates several special cases),
use a single list of special words instead of several separate lists,
use table-driven abbreviation logic (eliminate duplicate word entries
and special-case abbreviation and plural handling). The result is
shorter, simpler (judging from comments, earlier maintainers didn't
understand the special handling for "negative years"), handles more
cases (e.g., "tu" is now a recognized abbreviation for "tuesday",
"3rd" is now equivalent to "third") and it has 2 fewer shift/reduce
conflicts.
particular, acl support is no longer enabled on FreeBSD 4, acl support
should be correctly enabled on Linux, dirent.d_namlen should be
correctly detected on platforms that support it.
Thanks to: Greg Lewis, Juergen Lock, and Jaakko Heinonen