Commit Graph

7 Commits

Author SHA1 Message Date
Bruce Evans
2336ecd56f Support 21-bit minor numbers. Avoid wasting a byte in their octal
representation by generating the same format as tar-1.13 (use a single
space as the terminator for 7-digit octal numbers).  This is POSIX.1
conformant (2-byte terminators are just a bug or historical wart in
old versions of gnu tar).  All devices created by `MAKEDEV all' except
rsa0.ctl can now be handled by tar(1).
1999-08-11 08:03:39 +00:00
Warner Losh
8521ef096a Fix fencepost error in readlink; inspired by OpenBSD 1998-09-09 17:14:17 +00:00
Daniel O'Callaghan
52ebfb9d0f Submitted by: Peter Hawkins <peter@clari.net.au>
Actually implement --norecurse as documented in the man page.
1997-12-30 10:23:09 +00:00
Jordan K. Hubbard
13ea765008 Gnu tar has problems creating an archive which contains a file with a hard
link to another file which has a long (>=100 char) name.  When listing such
an archive, the name of the link is truncated to 99 characters, and when
extracting such an archive, an error is reported because it is trying to
create a hard link to a file which doesn't exist.  This patch fixes that
problem and has also been sent to the GNU maintainers.

Closes PR#1992

Submitted-By: David Dawes <dawes@landfill.physics.usyd.edu.au>
1996-11-12 18:15:42 +00:00
Bruce Evans
d1e00e9390 Improve the handling of large minor numbers:
cpio/copyout.c:
Don't output a file if the major, minor or totality of its rdev would be
truncated.  Print a message about the skipped files to stderr but don't
report the error in the exit status.  cpio's abysmal error handling doesn't
allow continuing after an error, and the rdev checks had to be misplaced
to avoid the problem of returning an error code from routines that return
void.

pax/pax.h:
Use the system macros for major(), minor() and makedev().

pax already checks _all_ output conversions for overflow.  This has the
undesirable effect that failure to convert relatively useless fields
such as st_dev for regular files causes files not to be output.  pax
doesn't report exactly which fields couldn't be converted.

tar/create.c:
Don't output a file if the major or minor its rdev would be truncated.
Print a message about the skipped files to stderr and report the error
in the exit status.

tar/tar.c:
For not immediately fatal errors, exit with status 1, not the error count
(mod 256).

All:
Minor numbers are limited to 21 bits in pax's ustar format and to 18
bits in archives created by gnu tar (gnu tar wastes 3 bits for padding).
pax's and cpio's ustar format is incompatible with gnu tar's ustar
format for other reasons (see cpio/README).
1995-06-26 06:24:48 +00:00
Andrey A. Chernov
6c5f92f17f Fix two quad_t casts, one reported by wcp@lpds.sublink.org 1995-02-26 23:48:51 +00:00
Jordan K. Hubbard
b76095a430 Updated GNU utilities 1993-06-18 04:22:21 +00:00