1 2007-06-08 Sergey Poznyakoff <gray@gnu.org.ua>
3 * configure.ac, NEWS: Version number 2.8
4 * bootstrap.conf: Update
6 2007-06-07 Sergey Poznyakoff <gray@gnu.org.ua>
9 * configure.ac: Raise version to 2.7.90
10 * doc/cpio.texi: Update
11 * src/extern.h (set_perms, set_file_times): Take file descriptor
12 as the first argument.
13 * src/util.c (set_perms): Take file descriptor
14 as the first argument and use fchmod/fchown if available. Fixes
16 * src/copyin.c, src/copyout.c, src/copypass.c: Update calls to
18 * src/makepath.c: Remove useless includes.
20 * src/util.c (set_perms, stat_to_cpio): Use CPIO_UID and CPIO_GID
21 macros to set uid and gid
22 * src/main.c (process_args): Allow to use --owner in copy-out mode.
23 * THANKS: Add Mike Frysinger
25 2007-05-18 Sergey Poznyakoff <gray@gnu.org.ua>
27 * bootstrap: Update from tar repository
28 * doc/cpio.texi: Fix typo
29 * src/copyin.c (from_ascii): Bugfix: allow for empty fields
30 * src/copyout.c (process_copy_out): Fix memory leaks on
32 * src/copypass.c (process_copy_pass): symlink_error takes two
34 * src/extern.h: Add missing includes.
36 2006-12-18 Sergey Poznyakoff <gray@gnu.org.ua>
38 * README-cvs: New file
39 * lib/Makefile.tmpl, lib/bcopy.c, lib/mkdir.c, lib/strdup.c,
40 lib/strerror.c, lib/.cvsignore, po/.cvsignore,
42 * lib/Makefile.am: New file
43 * po/POTFILES.in: Update
44 * bootstrap: Synch with tar.
45 * configure.ac: Update
46 * gnulib.modules: Add lchown, strerror
47 * src/Makefile.am: Update
48 * src/main.c, src/mt.c: Include rmt-command.h instead of localedir.h
49 * .cvsignore, doc/.cvsignore: Sort
51 * src/util.c (sparse_write): Static. Provide a forward
52 declaration. Define enum sparse_write_states inside the function.
54 * src/copyin.c (long_format): Use PRIuMAX for printing file size
55 * src/copyout.c (write_out_binary_header): Fix size conversion
56 * src/extern.h (tape_toss_input, warn_if_file_changed): Last
58 * src/util.c (tape_toss_input, warn_if_file_changed): Last
60 (warn_if_file_changed): Use ngettext
62 2006-11-15 Sergey Poznyakoff <gray@gnu.org.ua>
64 * src/copypass.c: Fix setting output file permissions
66 2006-11-13 Sergey Poznyakoff <gray@gnu.org.ua>
68 * doc/cpio.texi: Consistently use @option{} for displaying command
70 Fix formatting in "Invoking `cpio'" section
71 * src/main.c (process_args): Fix usage error diagnostics in
74 2006-10-24 Sergey Poznyakoff <gray@gnu.org.ua>
76 * src/copyout.c (process_copy_out): Add terminating zero to the
79 * tests/symlink.at: New testcase
80 * tests/Makefile.am: New test symlink.at
81 * tests/inout.at: Add keywords
82 * tests/testsuite.at (AT_SKIP_TEST): New macro
85 2006-10-21 Sergey Poznyakoff <gray@gnu.org.ua>
87 * configure.ac, NEWS: Version 2.7
88 * gnulib.modules: Add stdint
89 * src/util.c: Use STRINGIFY_BIGINT to display num_bytes
91 2006-09-27 Sergey Poznyakoff <gray@gnu.org.ua>
94 * README-alpha: Update
95 * bootstrap: Imported from tar
96 * configure.ac: Require autoconf 2.59 and gettext 1.15
97 * gnulib.modules: add inttypes
98 * doc/cpio.texi: Minor fixes
99 * po/Makevars: Remove automatically generated file
100 * po/.cvsignore: Add Makevars
101 * lib/.cvsignore: Update
102 * src/copyin.c, src/copyout.c, src/copypass.c, src/cpio.h,
103 src/cpiohdr.h, src/defer.c, src/defer.h, src/extern.h,
104 src/global.c, src/main.c, src/makepath.c, src/tar.c,
105 src/util.c: Update copyright year.
107 2006-07-04 Sergey Poznyakoff <gray@gnu.org.ua>
109 * bootstrap (update_po): Fix single translation update
110 * lib/Makefile.tmpl: Initialize AM_CPPFLAGS
111 (noinst_HEADERS): Add system-ioctl.h
113 Start rewriting using a better suited internal representation for
116 * src/cpiohdr.h (struct old_cpio_header): Remove unused fields
117 c_mtime, c_filesize and c_name.
118 (struct old_ascii_header): New data type
119 (struct new_ascii_header): New data type. Describes the header
120 structure, not its internal representation.
121 (struct cpio_file_stat): New data type. Describes internal
122 representation of a file metadata
124 * src/copyin.c (from_ascii): New function
125 Use cpio_file_stat for internal header representation.
126 * src/copyout.c: Use cpio_file_stat for internal header
127 representation. Among other things this fixes bug reported by
128 Peter Vrabec on Mar 2, 2006
129 (http://lists.gnu.org/archive/html/bug-cpio/2006-03/msg00000.html)
130 * src/copypass.c: Use cpio_file_stat for internal header
132 * src/tar.c: Likewise
133 * src/util.c: Likewise
134 * src/defer.c: Likewise
135 * src/defer.h: Likewise
136 * src/extern.h: Likewise
137 (from_ascii): New prototype
138 (LG_8,LG_16,FROM_OCTAL,FROM_HEX): New defines
139 * src/main.c: New command line option --HANG (hidden)
141 2006-03-12 Sergey Poznyakoff <gray@gnu.org.ua>
143 * tests/Makefile.am (AM_CPPFLAGS): Define LOCALEDIR
145 2006-02-18 Sergey Poznyakoff <gray@gnu.org.ua>
147 * gnulib.modules: Add stpcpy. Thanks Benigno B. Junior for
149 * THANKS: Add Benigno B. Junior
150 * src/makepath.c: Fix indentation.
152 2005-11-16 Sergey Poznyakoff <gray@gnu.org.ua>
154 * src/copyout.c (process_copy_out): Fix typo.
156 2005-11-12 Sergey Poznyakoff <gray@gnu.org.ua>
158 * bootstrap: Minor fix
159 * src/copyout.c (write_out_header): Rewritten using separate
160 functions for each file format. Use to_ascii to convert numbers to
161 ascii representation. Check for overflows and report them if
162 appropriate. Return 0 if it is OK to proceed with archiving this
163 file, 1 otherwise. All callers updated.
164 * src/extern.h (write_out_header): Return int.
166 2005-10-28 Sergey Poznyakoff <gray@gnu.org.ua>
168 * src/util.c: Include paxlib.
169 * bootstrap: If file `.bootstrap' exists in the cwd and is
170 readable, prepend its contents to the command line.
172 Fix Debian bug 335580:
174 * src/copyout.c (read_for_checksum,write_out_header): CRC is a
175 32-bit unsigned value. Patch proposed by Jim Castleberry and
177 * src/extern.h (crc): Change declaration
178 * src/global.c: Likewise
179 * src/tar.c (tar_checksum): Return unsigned int
181 * THANKS: Add Jim Castleberry
184 2005-09-30 Sergey Poznyakoff <gray@gnu.org.ua>
186 * src/copyout.c (process_copy_out): Discern between original and
187 (eventually fixed) file name (in tar terminology, `file name'
190 2005-09-08 Sergey Poznyakoff <gray@gnu.org.ua>
192 * gnulib.modules: Add utimens
193 * src/util.c (cpio_safer_name_suffix): Preserve ./ no matter what
194 the value of strip_leading_dots is.
195 (set_file_times): New function
196 * src/extern.h (set_file_times): New function
197 * src/copyin.c: Use set_file_times() to update file atime/mtime
198 * src/copyout.c: Likewise.
199 * src/copypass.c: Likewise.
201 2005-05-25 Sergey Poznyakoff <gray@Mirddin.farlep.net>
203 * src/copyin.c: Use cpio_safer_name_suffix() and CPIO_TRAILER_NAME
204 define instead of hardcoding the trailer file name.
205 * src/copyout.c: Likewise.
206 * src/cpio.h (CPIO_TRAILER_NAME): New define
207 * src/extern.h (cpio_safer_name_suffix): New proto
208 * src/tar.c: Use CPIO_TRAILER_NAME define instead of hardcoding
209 the trailer file name.
210 * src/util.c (cpio_safer_name_suffix): New function
211 (add_cdf_double_slashes): Add FIXME warning.
213 * lib/fatal.c: New file
214 * lib/Makefile.tmpl (libcpio_a_SOURCES): Add fatal.c
215 * src/copyout.c: Use error reporting functions from paxlib
216 * src/makepath.c: Likewise
218 * src/main.c (fatal_exit): Moved to lib/fatal.c
220 2005-05-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
222 * src/copyin.c (process_copy_in): Use safer_name_suffix no matter
223 what the value of no_abs_paths_flag. The function knows better
224 what to do in any case.
225 * src/copyout.c (process_copy_out): Honor no_abs_paths_flag.
226 * src/main.c (options): Minor fixes.
228 2005-05-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
230 * bootstrap (copy_files): Create destination directory if it does
232 Preserve longlong.m4 as longlong_gl.m4
233 * src/main.c: Include paxlib.h
235 2005-05-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
237 * lib/.cvsignore: Updated
238 * gnulib.modules: Add hash
239 * doc/cpio.texi (Reports): New chapter
240 * lib/Makefile.tmpl: Add new paxutils files.
241 * po/POTFILES.in: Likewise
242 * src/copyin.c [!HAVE_LCHOWN] (lchown): Define to 0 to avoid
243 changing ownership of the target file.
244 (process_copy_in): Use safer_name_suffix()
245 * src/main.c (parse_opt): Handle new --absolute-filenames option.
246 (process_args): Updated
247 * src/util.c: Rewrite inode lookup/insertion functions using hash
250 u2005-05-20 Sergey Poznyakoff <gray@Mirddin.farlep.net>
252 * configure.ac: Raised version number to 2.6.90
254 * src/copyin.c: Use set_perms.
255 * src/copypass.c: Likewise.
256 * src/copyout.c (process_copy_out): Use stat_to_cpio() to convert
257 struct stat to struct new_cpio_header.
258 * src/defer.h: Remove legacy P_() stuff.
259 * src/dstring.c: Likewise
260 * src/extern.h: Likewise
261 * src/util.c (stat_to_cpio,set_perms): New functions
262 * doc/.cvsignore: Updated
263 * lib/.cvsignore: Updated
264 * tests/.cvsignore: Updated
265 * .cvsignore: Updated
266 * COPYING: Added to the repository
268 2005-05-19 Sergey Poznyakoff <gray@Mirddin.farlep.net>
270 * po/POTFILES.in: Add paxerror.c paxexit.c paxconvert.c
272 * bootstrap (copy_files): Accept optional third argument: a prefix
273 to be appended to destination file names.
274 Import paxutils/paxlib files.
275 * lib/Makefile.tmpl (libcpio_a_SOURCES): Add paxerror.c paxexit.c
277 * src/copyin.c: Use paxutils error reporting functions
278 * src/copyout.c: Likewise
279 * src/copypass.c: Likewise
280 * src/util.c: Likewise. Add missing includes
281 * src/main.c (USAGE_ERROR): Removed
282 (CHECK_USAGE,parse_opt,process_args): Use error() instead of USAGE_ERROR
283 (fatal_exit): New function
284 * src/tar.c (is_tar_filename_too_long): Removed unused variable
286 * Makefile.am, configure.ac, doc/Makefile.am,
287 doc/cpio.texi, doc/gendocs_template, headers/Makefile.am,
288 headers/fnmatch.h, lib/Makefile.tmpl, lib/mkdir.c,
289 lib/strdup.c, lib/strerror.c, src/Makefile.am,
290 src/copyin.c, src/copyout.c, src/copypass.c, src/cpio.h,
291 src/cpiohdr.h, src/defer.c, src/defer.h, src/dstring.c,
292 src/dstring.h, src/extern.h, src/filemode.c,
293 src/filetypes.h, src/global.c, src/idcache.c,
294 src/main.c, src/makepath.c, src/mt.c, src/tar.c,
295 src/tar.h, src/tarhdr.h, src/userspec.c, src/util.c,
296 tests/Makefile.am, tests/inout.at, tests/testsuite.at,
297 tests/version.at: Updated FSF postal mail address.
299 * bootstrap: Port recent changes from tar bootstrap.
300 * gnulib.modules: New file
301 * tests/Makefile.am (genfile_SOURCES,LDADD): Updated
304 * configure.ac: Remove check for gethostname, it is never used.
305 Remove check for setsockopt, it is provided by paxutils.
307 Fix LFS support issues. Proposed by Peter Vrabec and Dmitry V. Levin
309 * src/extern.h (copy_files_tape_to_disk, copy_files_disk_to_tape,
310 copy_files_disk_to_disk): Change num_bytes argument type from
312 * src/util.c (copy_files_tape_to_disk, copy_files_disk_to_tape,
313 copy_files_disk_to_disk, disk_fill_input_buffer,
314 write_nuls_to_file): Likewise.
315 (write_nuls_to_file, copy_files_disk_to_tape,
316 copy_files_disk_to_disk): Handle `off_t num_bytes' properly.
318 * src/util.c (find_inode_file): Fix typos causing function to
319 occasionally miss inodes and, therefore, to copy out the same
320 (hard-linked) file several times to archive. Proposed by Brian
323 2005-03-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
325 * src/main.c (process_args): Fixed discrepancy I have been
326 overlooking so far: cpio still does not handle --sparse option
327 the same way tar is handling it. --sparse is allowed in copy-in
328 and copy-pass modes, just as docs say it. Thanks Dmitry Levin.
331 2005-03-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
333 * src/util.c (disk_buffered_write): Fix typo introduced
335 * src/main.c (process_args): Fixed error message
337 2005-01-31 Sergey Poznyakoff <gray@Mirddin.farlep.net>
339 * src/main.c (main): Remove umask(0). Fixes CAN-1999-1572.
340 [__TURBOC__,__EMX__]: Removed
341 * src/copypass.c (process_copy_pass): Set umask 0
342 * src/copyin.c (process_copy_in): Likewise
343 * src/util.c (open_archive): Use MODE_RW.
345 2005-01-11 Sergey Poznyakoff <gray@Mirddin.farlep.net>
347 * doc/gendocs_template: Template file for gendocs.sh.
348 * doc/Makefile.am: Use gendocs.sh to generate webdocs.
349 * doc/cpio.texi: Updated.
351 * src/copyin.c: Use memset instead of bzero, memmove
352 (or memcpy, if appropriate), instead of bcopy, and
353 strchr/strrchr instead of index/rindex.
354 * src/copypass.c: Likewise.
355 * src/main.c: Likewise.
356 * src/makepath.c: Likewise.
357 * src/tar.c: Likewise.
358 * src/util.c: Likewise.
359 (write_nuls_to_file): Made extern. All callers updated
361 * src/copyout.c: Likewise. Use write_nuls_to_file instead
362 of explicitely accessing zeros_512
363 * src/userspec.c: Likewise.
364 Rename isnumber to isnumber_p. Proposed by
366 * src/extern.h (zeros_512): Removed
367 (write_nuls_to_file): New function
368 * src/global.c (zeros_512): Removed
370 2005-01-06 Sergey Poznyakoff <gray@Mirddin.farlep.net>
372 * bootstrap: Add 'fileblocks' gnulib module
374 * configure.ac: Call cpio_PAXUTILS
375 * src/main.c: Remove ifdef around setlocale
378 2004-12-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
380 * configure.ac: New option --enable-mt
382 * doc/cpio.info: Removed
383 * src/mt.c (main): Use argmatch_invalid()
385 2004-12-20 Sergey Poznyakoff <gray@Mirddin.farlep.net>
387 Released version 2.6. Sources up to this point are tagged
390 * configure.ac: Raised version number to 2.6
392 * bootstrap (update_po): Give -r to wget. Always remove index.html
393 Ignore alloca-opt module (it duplicates alloca)
395 2004-11-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
397 * src/main.c (enum cpio_options): Bugfix: Initialize first enum
399 * bootstrap: Add unlocked-io
400 * headers/argp.h: Removed
401 * headers/getopt.h: Removed
402 * headers/Makefile.am: Updated
404 2004-10-14 Sergey Poznyakoff <gray@Mirddin.farlep.net>
406 * src/copyout.c: Add trailing slash to directory names in
408 * src/makepath.c: Removed redeclaration of error().
409 * src/tar.c: Fixed deviations from POSIX.1-1988:
410 Properly split long file names. Fill in octal fields with zeros,
411 not spaces. Save only protection modes, not the whole mode.
415 2004-09-08 Sergey Poznyakoff <gray@Mirddin.farlep.net>
419 * bootstrap: Install po files by default
420 * po/LINGUAS: Removed. File is generated automatically
421 * po/.cvsignore: Updated
422 * src/copyin.c: Implemented --to-stdout option
423 * src/copyout.c: Display the annoying 'truncating inode number'
424 message only if the user wishes it.
425 * src/extern.h: Added new globals.
426 * src/global.c: Likewise.
428 * src/main.c: Added support for --to-stdout and --warning options
429 * src/tar.c (read_in_tar_header): Use warn_junk_bytes()
430 * src/util.c (create_all_directories): Use dir_name.
432 * configure.ac: Added support for the test suite
433 * Makefile.am: Likewise
435 * tests: New directory
436 * tests/.cvsignore: New file
437 * tests/Makefile.am: New file
438 * tests/testsuite.at: New file
439 * tests/inout.at: New file
440 * tests/version.at: New file
441 * tests/atlocal.in: New file
443 2004-09-07 Sergey Poznyakoff <gray@Mirddin.farlep.net>
445 * src/main.c (process_args): Bugfix. Allow extra arguments
447 * src/util.c (write_nuls_to_file): Use buffered I/O. All
448 callers changed. Thanks Matthew Braithwaite <mab@cnet.com>
450 Bugfix: extra_bytes was mistakenly used instead of blocks.
451 * THANKS: Added Matthew Braithwaite.
453 2004-09-06 Sergey Poznyakoff <gray@Mirddin.farlep.net>
455 Started merging with tar into paxutils. Sources before
456 this point are tagged alpha-2_50_90.
458 * bootstrap: New file
459 * autogen.sh: Removed
460 * Makefile.am: Updated
462 * README-alpha: Updated
463 * configure.ac: Updated
464 * doc/cpio.1: Updated
465 * po/POTFILES.in: Updated
467 * src/Makefile.am: Updated
468 * src/error.c: Removed
469 * src/dirname.c: Likewise
470 * src/xmalloc.c: Likewise
471 * src/stripslash.c: Likewise
473 * src/gettext.h: Likewise
474 * src/system.h: Likewise
475 * src/rmt.h: Likewise
476 * src/getopt.c: Likewise
477 * src/getopt1.c: Likewise
478 * src/bcopy.c: Likewise
479 * src/fnmatch.c: Likewise
480 * src/mkdir.c: Likewise
481 * src/strdup.c: Likewise
482 * src/argp-ba.c: Likewise
483 * src/argp-eexst.c: Likewise
484 * src/argp-fmtstream.c: Likewise
485 * src/argp-fs-xinl.c: Likewise
486 * src/argp-help.c: Likewise
487 * src/argp-parse.c: Likewise
488 * src/argp-pv.c: Likewise
489 * src/argp-pvh.c: Likewise
490 * src/argp-xinl.c: Likewise
491 * src/pin.c: Likewise
492 * src/alloca.c: Likewise
493 * src/argmatch.c: Likewise
494 * src/rmt.c: Likewise
495 * src/rtapelib.c: Likewise
496 * src/strerror.c: Likewise
498 * src/copyin.c: Switched to ANSI C (sigh)
499 * src/copyout.c: Likewise
500 * src/copypass.c: Likewise
501 * src/defer.c: Likewise
502 * src/defer.h: Likewise
503 * src/dstring.c: Likewise
504 * src/dstring.h: Likewise
505 * src/extern.h: Likewise
506 * src/filemode.c: Likewise
507 * src/global.c: Likewise
508 * src/idcache.c: Likewise
509 * src/main.c: Likewise
510 * src/makepath.c: Likewise
512 * src/tar.c: Likewise
513 * src/userspec.c: Likewise
514 * src/util.c: Likewise
517 * lib/Makefile.tmpl: New file
518 * lib/bcopy.c: Moved from ../src
519 * lib/mkdir.c: Likewise.
520 * lib/strdup.c: Likewise.
521 * lib/strerror.c: Likewise.
523 2004-08-30 Sergey Poznyakoff <gray@Mirddin.farlep.net>
525 * Makefile.am: Added headers to SUBDIRS.
526 * configure.ac: Check for AC_SYS_LARGEFILE.
527 Use AC_CONFIG_LINKS to provide for fnmatch.h and getopt.h on
528 the systems where these are missing
529 Check for argp and replace it if necessary.
530 * src/Makefile.am: Updated
531 * src/fnmatch.h: Moved to headers/
532 * src/getopt.h: Likewise.
533 * src/main.c: Option parsing rewritten using argp. Improved
534 option consistency checking.
535 * src/rmt.c: Include getopt.h
537 * src/argp-ba.c: New file
538 * src/argp-eexst.c: New file
539 * src/argp-fmtstream.c: New file
540 * src/argp-fs-xinl.c: New file
541 * src/argp-help.c: New file
542 * src/argp-parse.c: New file
543 * src/argp-pv.c: New file
544 * src/argp-pvh.c: New file
545 * src/argp-xinl.c: New file
546 * src/pin.c: New file
548 * headers: New directory
549 * headers/Makefile.am: New file
550 * headers/getopt.h: New file
551 * headers/argp.h: New file
552 * headers/fnmatch.h: New file
553 * headers/.cvsignore: New file
555 2004-03-02 Sergey Poznyakoff <gray@Mirddin.farlep.net>
557 * src/util.c (copy_files_disk_to_disk): Bugfix. If a file
558 grew n bytes in copy-pass mode, these n bytes got prepended
559 to the contents of all subsequent files. Fix provided by
560 Holger Fleischmann <holger_fleischmann@mra.man.de>
561 * THANKS: Added Holger Fleischmann.
563 2004-02-27 Sergey Poznyakoff <gray@Mirddin.farlep.net>
565 * src/makepath.c: Remove unneded typedefs
567 * src/copyin.c: Remove __MSDOS__ conditionals
568 * src/copyout.c: Likewise
569 * src/copypass.c: Likewise
570 * src/main.c: Likewise
571 * src/tar.c: Likewise
572 * src/util.c: Likewise
574 2004-02-27 Sergey Poznyakoff <gray@Mirddin.farlep.net>
576 Changed from flat to deep package layout. Added the framework
579 * .cvsignore: Updated
580 * Makefile.am: Updated
581 * configure.ac: Updated
583 * README-alpha: Updated
586 * autogen.sh: New file
588 * alloca.c: Moved to src
589 * argmatch.c: Likewise
591 * dstring.h: Likewise
593 * copyout.c: Likewise
594 * copypass.c: Likewise
596 * cpiohdr.h: Likewise
599 * dirname.c: Likewise
600 * dstring.c: Likewise
601 * dstring.h: Likewise
604 * filemode.c: Likewise
605 * filetypes.h: Likewise
606 * fnmatch.c: Likewise
607 * fnmatch.h: Likewise
610 * getopt1.c: Likewise
612 * idcache.c: Likewise
614 * makepath.c: Likewise
619 * rtapelib.c: Likewise
620 * safe-stat.h: Likewise
622 * strerror.c: Likewise
623 * stripslash.c: Likewise
628 * userspec.c: Likewise
630 * xmalloc.c: Likewise
631 * xstrdup.c: Likewise
633 * cpio.1: Moved to doc
634 * cpio.texi: Likewise
638 * src/.cvsignore: New file
639 * src/Makefile.am: Likewise
640 * src/alloca.c: Likewise
641 * src/argmatch.c: Likewise
642 * src/bcopy.c: Likewise
643 * src/copyin.c: Likewise
644 * src/copyout.c: Likewise
645 * src/copypass.c: Likewise
646 * src/cpio.h: Likewise
647 * src/cpiohdr.h: Likewise
648 * src/defer.c: Likewise
649 * src/defer.h: Likewise
650 * src/dirname.c: Likewise
651 * src/dstring.c: Likewise
652 * src/dstring.h: Likewise
653 * src/error.c: Likewise
654 * src/extern.h: Likewise
655 * src/filemode.c: Likewise
656 * src/filetypes.h: Likewise
657 * src/fnmatch.c: Likewise
658 * src/fnmatch.h: Likewise
659 * src/getopt.c: Likewise
660 * src/getopt.h: Likewise
661 * src/getopt1.c: Likewise
662 * src/gettext.h: Likewise
663 * src/global.c: Likewise
664 * src/idcache.c: Likewise
665 * src/main.c: Likewise
666 * src/makepath.c: Likewise
667 * src/mkdir.c: Likewise
669 * src/rmt.c: Likewise
670 * src/rmt.h: Likewise
671 * src/rtapelib.c: Likewise
672 * src/safe-stat.h: Likewise
673 * src/strdup.c: Likewise
674 * src/strerror.c: Likewise
675 * src/stripslash.c: Likewise
676 * src/system.h: Likewise
677 * src/tar.c: Likewise
678 * src/tar.h: Likewise
679 * src/tarhdr.h: Likewise
680 * src/userspec.c: Likewise
681 * src/util.c: Likewise
682 * src/xmalloc.c: Likewise
683 * src/xstrdup.c: Likewise
686 * doc/.cvsignore: New file
687 * doc/Makefile.am: New file
688 * doc/cpio.1: New file
689 * doc/cpio.info: New file
690 * doc/cpio.texi: New file
694 * po/.cvsignore: New file
695 * po/LINGUAS: New file
696 * po/Makevars: New file
697 * po/POTFILES.in: New file
699 2003-11-28 Sergey Poznyakoff <gray@Mirddin.farlep.net>
701 * configure.ac: Added various checks
702 * Makefile.am (rmt_LDADD): Added.
704 * rmt.c: Removed useless private_errstring
706 * userspec.c: Changed the way of handling declared vs. undeclared
708 * strerror.c: New file. Borrowed from GNU Radius.
710 * copyin.c: Removed kludgy declaration of delayed_seek_count.
711 * copypass.c: Likewise
712 * extern.h: Declare delayed_seek_count.
713 * mkdir.c: Fixed handling of undeclared errno
716 * rtapelib.c: Likewise
718 2003-11-28 Sergey Poznyakoff <gray@Mirddin.farlep.net>
722 * README-alpha: New file
723 * Makefile.am: Require at least version 1.7.1
724 * configure.ac: Check for locale.h
725 * main.c (main): Call setlocale. Thanks
726 Mitsuru Chinen <mchinen@yamato.ibm.com> for the patch.
729 2003-11-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
731 * configure.ac: Added to the repository
732 * Makefile.am: Likewise
736 * .cvsignore: Likewise
738 * configure.in: Removed
739 * Makefile.in: Removed
740 * makefile.pc: Removed
743 * alloca.c: Added to the repository
744 * argmatch.c: Likewise
747 * cpiohdr.h: Likewise
750 * dirname.c: Likewise
751 * dstring.c: Likewise
752 * dstring.h: Likewise
754 * filemode.c: Likewise
755 * filetypes.h: Likewise
756 * fnmatch.c: Likewise
757 * fnmatch.h: Likewise
760 * getopt1.c: Likewise
761 * idcache.c: Likewise
764 * rtapelib.c: Likewise
765 * safe-stat.h: Likewise
767 * stripslash.c: Likewise
771 * xmalloc.c: Likewise
772 * xstrdup.c: Likewise
774 * makepath.c: Updated
778 * copyin.c: Likewise.
779 * copyout.c: Likewise.
780 * copypass.c: Likewise.
781 * global.c: Likewise.
784 Thu Jun 13 20:14:48 2002 John Oleynick (juo@gnu.org)
785 * copyin.c: Strip leading / on absolute filenames after
786 comparing to the list of files specified on the command line
787 (instead of before). Problem reported by Jeff Holt.
788 * Version 2.5 released.
790 Thu Jun 13 00:20:30 2002 John Oleynick (juo@gnu.org)
791 * Makefile.in: Fixed problem of looking in srcdir for info files.
792 Bug reported by Mike Castle.
793 * cpio.texi: Fixed typo. Problem reported by Fabrice Bauzac.
795 Sun Jan 13 18:45:02 2002 John Oleynick (juo@gnu.org)
796 * copyin.c: Fixed a problem skipping files with multiple links
797 in a newc or CRC format archive. If the file with the shared copy
798 of the data was skipped, but other links were not skipped, the
799 other links were created as empty files. Bug reported by
800 Hendrik-Jan Thomassen.
802 Thu Dec 6 20:05:10 2001 John Oleynick (juo@gnu.org)
803 * mt.c, mt.1: Merged Debian --rsh-command option and -V fix.
804 * copyout.c, copypass.c, util.c, extern.h: Modified to warn
805 if a file grows or its mtime is changed while it is being
808 Wed Dec 6 00:02:04 2001 John Oleynick (juo@gnu.org)
809 * Many files: Updated FSF's address in copyright notices.
811 Wed Aug 29 23:57:05 2001 John Oleynick (juo@gnu.org)
812 * Many files: Numerous fixes from Debian, Red Hat and SuSE
813 GNU/Linux distributions.
815 Tue Jan 16 19:03:05 1996 John Oleynick (juo@wombat.gnu.ai.mit.edu)
816 * util.c: An I/O error reading a file would cause the last byte
817 of the next file to be corrupted in the archive. Thanks to a
818 buggy NT NFS server for pointing out this problem.
819 * Version 2.4.2 released.
821 Tue Jan 9 23:19:37 1996 John Oleynick (juo@wombat.gnu.ai.mit.edu)
822 * copyout.c: missed 1 part of last bug fix.
824 Mon Jan 8 16:49:01 1996 John Oleynick (juo@wombat.gnu.ai.mit.edu)
825 * copyout.c, copypass.c: Use result of readlink() as length
826 of link name instead of size from lstat(). On some OS's lstat()
827 doesn't return the true length in size. Bug reported by
828 Robert Joop (rj@rainbow.IN-berlin.DE).
830 Wed Dec 20 10:52:56 1995 John Oleynick (juo@wombat.gnu.ai.mit.edu)
831 * rmt.c: Added temporary kludge so make rmt will work on Linux.
832 * configure.in: Only define HAVE_UTIME_H if utime.h declares
834 * Makefile.in: Change prefix, exec_prefix and bindir to get their
835 values from configure. Added cpio.info to DISTFILES.
836 * cpio.texi: Added INFO-DIR-ENTRY.
837 * Version 2.4.1 released.
839 Wed Nov 22 19:37:05 1995 John Oleynick (juo@wombat.gnu.ai.mit.edu)
840 * cpio.texi: Updated release date and FSF's address.
841 * NEWS: Listed major new features for 2.4.
842 * mt.c, mt.1: Added seek and fsfm commands.
843 * Version 2.4 released.
845 Tue Jun 27 19:14:27 1995 John Oleynick (juo@wombat.gnu.ai.mit.edu)
846 * configure.in: fixed for new autoconf. Added check to make
847 sure fnmatch() works.
848 * Makefile.in: changed realclean to maintainer-clean. Added
849 support to handle fnmatch separate from other LIBOBJS.
850 * cpio.texi: More changes for 2.4.
852 Wed Dec 14 16:14:27 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
853 * copypass.h: When given the -a option, set the access time of
854 the copy to be the access time of the original (instead of the
855 modification time of the original). Reported by
856 karney@pppl.gov (Charles Karney).
857 * cpio.texi: Updated with changes for 2.4.
859 Wed Nov 3 18:18:07 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
860 * safe-stat.h, Makefile.in: New file used by mkdir.c. This will go
861 away when we get the real safe-xstat.[ch]in for mkdir.c.
862 * main.c: Don't mention [--null] twice in -p's usage message.
863 Changed --no-absolute-paths to --no-absolute-filenames.
864 * cpio.1: Updated man page with new features.
865 * cpio.texi, texinfo.tex, Makefile.in: Added texi documentation
866 from Robert Carleton (rbc@gnu.ai.mit.edu).
868 Mon Oct 3 00:46:30 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
869 * makefile.pc, system.h: Changes to compile with Borland C++ 4.0.
871 Thu Sep 29 22:15:50 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
872 * makepath.c: Don't #define index if it is already #defined.
874 * mt.c: Check for __hpux defined instead of __hpux__. Reported
875 by ericb@lsid.hp.com (Eric Backus).
877 Thu Sep 29 11:21:31 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
878 * extern.h, util.c, copyout.c, copypass.c, main.c, global.c:
879 Never mind --ignore-disk-input-errors flag, we'll just always
882 * global.c, extern.h, main.c, copyin.c, copyout.c, copypass.c:
883 Added --quiet flag to supress printing number of blocks copied.
885 * global.c, extern.h: If compiled with gcc, make input_bytes
886 and output_bytes `long long' instead of `long'. We need more
887 than 32 bits to keep track of the number of bytes copied to
888 and from tape drives that hold more than 4Gbytes.
890 * util.c, copyin.c, main.c, global.c, extern.h: Added
891 --only-verify-crc flag to read a CRC format archive and verify
894 * copyout.c: Fixed problem with creating oldc format archives
895 on machines with 16 bit ints. Reported by mpoole@cix.compulink.co.uk
898 * mt.c: Need to open tape WR_ONLY for erase command (and probably
899 others?). Reported by robert@hst.e.technik.uni-kl.de (Robert
900 Vogelgesan). Accept `eject' as a synonym for `offline'. Accept
901 `-t' as a synonym for `-f' (to be compatible with HPUX mt, which
904 Wed Sep 28 12:01:55 1994 John Oleynick (juo@wombat.gnu.ai.mit.edu)
905 * extern.h, global.c, main.c, util.c: only write sparse files
906 when given --sparse flag.
907 * extern.h, util.c, copyout.c, copypass.c, main.c, global.c:
908 Added support for --ignore-disk-input-errors flag.
910 Wed Aug 24 12:55:38 1994 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
912 * configure.in: Replace calls to AC_REMOTE_TAPE and AC_RSH
913 with equivalent code, since those macros are going away.
915 Sun Feb 13 00:56:48 1994 John Oleynick (juo@goldman.gnu.ai.mit.edu)
916 * extern.h, global.c, main.c, util.c: Added code to
917 tape_buffered_peek() to properly handle large, corrutped
918 archives, without overrunning the allocated buffer and
919 dumping core. Also changed the way the input and output
920 buffers are allocated in initialize_buffers().
922 Tue Jan 25 01:04:32 1994 John Oleynick (juo@goldman.gnu.ai.mit.edu)
923 * copyin.c, copyout.c, copypass.c, extern.h, main.c, tar.c, util.c:
924 Redid i/o buffer code. Previously, the same routines buffered input and
925 output for accessing the archive and the filesystem. Now there are
926 separate routines for buffering input and output and for buffering the
927 archive and the filesystem. This simplifies much of the buffer code
928 (e.g., only input from the archive has to check for end of tape and
929 allow the tape to be changed, only output to the filesystem has to
930 handle byte and word swapping, etc.; previously one routine had to
931 handle all of these special cases) This is how the routines got split
932 and renamed (old name -> new name):
934 clear_rest_of_block -> tape_clear_rest_of_block
935 copy_files -> copy_files_tape_to_disk
936 " -> copy_files_disk_to_disk
937 " -> copy_files_disk_to_tape
938 copy_buf_out -> disk_buffered_write
939 " -> tape_buffered_write
940 copy_in_buf -> tape_buffered_read
941 empty_output_buffer -> tape_empty_output_buffer
942 " -> disk_empty_output_buffer
943 fill_input_buffer -> tape_fill_input_buffer
944 " -> disk_fill_input_buffer
945 pad_output -> tape_pad_output
946 peek_in_buf -> tape_buffered_peek
947 skip_padding -> tape_skip_padding
948 toss_input -> tape_toss_input
950 * extern.h, global.c, main.c, util.c: Added support for
951 writing sparse files.
953 Tue Dec 28 23:01:36 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
954 * util.c, system.h, makepath.c, extern.h: don't define chown()
955 and don't typedef uid_t and gid_t if we are being compiled
958 * copyin.c, extern.h, global.c, main.c: Added support for
961 * copyin.c, copyout.c, extern.h: Cleaned up to pass gcc -Wall.
963 Wed Dec 22 02:17:44 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
965 * makepath.c, copypass.c, copyin.c: If cpio was creating a
966 directory that contained `.' in the pathname (e.g. `foo/./bar'),
967 it would complain that it could not create `.', since it already
968 exists. From schwab@issan.informatik.uni-dortmund.de (Andreas
971 * mt.c: Added "eject" as a synonym for "offline".
973 * util.c: Slight modification to when we lseek with
974 BROKEN_LONG_TAPE_DRIVER (do it every 1Gb, instead
977 * copyin.c, global.c, extern.h: Added --no-absolute-paths option,
978 to ignore absolute paths in archives.
980 Tue Dec 21 01:30:59 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
982 * util.c: Fix for copying new_media_message_after_number. From
983 Christian.Kuehnke@arbi.informatik.uni-oldenburg.de (Christian
986 Thu Jul 29 20:35:57 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
988 * Makefile.in (config.status): Run config.status --recheck, not
989 configure, to get the right args passed.
991 Mon Jul 19 23:01:00 1993 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
993 * Makefile.in (libdir): Use standard GNU value --
994 $(exec_prefix)/lib, not /etc.
995 (.c.o): Put CFLAGS last.
997 Thu Jul 8 19:43:39 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
999 * Makefile.in: Add rules for remaking Makefile, configure,
1002 Mon Jul 5 14:54:08 1993 John Oleynick (juo@spiff.gnu.ai.mit.edu)
1004 * cpio.1: Updated man page for 2.3.
1005 * Makefile.in: Create distribution with .gz extension, instead of .z.
1007 Tue Jun 29 18:54:37 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1009 * Makefile.in: Added installdirs target (using mkinstalldirs).
1010 * Added mkinstalldirs script.
1011 * main.c, mt.c: Added --help option. Changed usage() to
1012 take a stream and exit value (so --help can print on stdout
1013 and return a 0 exit status).
1014 * extern.h: Removed usage()'s prototype (it was out of date,
1015 and only used in main.c).
1017 Thu May 6 00:22:22 1993 John Oleynick (juo@hal.gnu.ai.mit.edu)
1019 * cpio.1: Added hpbin and hpodc.
1021 Tue May 4 00:32:29 1993 John Oleynick (juo@hal.gnu.ai.mit.edu)
1023 * copyin.c (process_copy_in), copypass.c (process_copy_pass): When
1024 deleting an existing file, if the file is a directory, use rmdir()
1025 instead of unlink().
1027 Thu Apr 29 14:43:56 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1029 * tar.c (read_in_tar_header): Clear non-protection bits from
1030 mode, in case tar has left some device bits in there.
1032 Wed Apr 28 10:36:53 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1034 * util.c: Added code to try and work around broken tape drivers
1035 that have problems with tapes > 2Gb.
1037 * copyout.c (process_copy_out): Pass file_hdr to
1038 writeout_other_defers() and add_link_defer() by reference,
1041 * copyin.c (process_copy_in): Pass file_hdr to defer_copyin()
1042 and create_defered_links() by reference, not by value.
1044 * defer.c: include <sys/types.h> (to build on BSD 4.3 on HP300)
1046 Fri Apr 16 18:01:17 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1048 * mt.c, util.c: Include <sys/mtio.h> if HAVE_SYS_MTIO_H is
1049 defined, not HAVE_MTIO_H.
1051 Wed Apr 14 17:37:46 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1053 * util.c: Include <sys/io/trioctl.h> if HAVE_SYS_IO_TRIOCTL_H
1056 * mt.c: Only include <sys/mtio.h> if HAVE_SYS_MTIO_H is defined.
1058 Fri Apr 2 13:09:11 1993 John Oleynick (juo@goldman.gnu.ai.mit.edu)
1060 * configure.in: Added fnmatch to AC_REPLACE_FUNCS. Added
1061 sys/io/trioctl.h to AC_HAVE_HEADERS.
1063 * Makefile.in: Removed fnmatch.o from OBJS.
1065 * copyin.c: Only include "fnmatch.h" if FNM_PATHNAME isn't
1068 * mt.c: Include <sys/io/trioctl.h> if HAVE_SYS_IO_TRIOCTL_H is
1071 Mon Mar 29 17:04:06 1993 John Oleynick (juo@hal.gnu.ai.mit.edu)
1073 * Many changes for supporting HPUX Context Dependent Files;
1074 also some bug fixes to fix problems with multiply (hard) linked
1075 device files; minor changes to support HPUX format archives
1076 (slightly broken?) System V.4 posix tar archives and HPUX
1079 * Makefile.in: New files defer.o, defer,c and defer.h; added
1080 -DSYMLINK_USES_UMASK and -DHPUX_CDF comments; changed dist rule
1081 to use gzip with tar, instead of compress.
1083 * copyin.c: changes for new arf_hpbinary and arf_hpascii formats;
1084 HPUX CDF's; DEBUG_CPIO; fixes to properly handle multiple
1085 links in newc and crc format archives (new routines defer_copyin(),
1086 create_defered_links(), create_final_defers()); move most
1087 multiple (hard) link code to new routines link_name() and
1088 link_to_maj_min_ino(); use new macro UMASKED_SYMLINK instead of
1091 * copyout.c: fixes to properly handle multiple links in newc
1092 and crc format archives (new routines last_link(),
1093 count_defered_links_to_dev_ino(), add_link_defer(),
1094 writeout_other_defers(), writeout_final_defers(),
1095 writeout_defered_file()); support for new arf_hpbinary and
1096 arf_hpascii formats; support for HPUX CDF's.
1098 * copypass.c: move most multiple link code to new routines
1099 link_name() and link_to_maj_min_ino(); use new macro UMASKED_SYMLINK
1100 instead of symlink(); support for HPUX CDF's.
1102 * extern.h: added arf_hpascii and arf_hpbinary archive enum types;
1105 * global.c: added debug_flag.
1107 * main.c: added debug_flag; support for hpodc and hpbin formats.
1109 * makepath.c: split from standard makpath.c to add support
1112 * mt.c: added !defined(__osf__) (from Andrew Marquis
1113 <amarquis@genome.wi.mit.edu>).
1115 * system.h: new macro UMASKED_SYMLINK
1117 * tar.c: minor changes to read (slightly broken?) System V.4 posix
1118 tar archives and HPUX posix tar archives.
1120 * util.c: HPUX CDF support (including new routines
1121 add_cdf_double_slashes() and islasparentcdf()); new routine
1124 Sun Mar 14 23:00:14 1993 Jim Meyering (meyering@comco.com)
1126 * copypass.c (process_copy_pass): Use <=, not just <, when comparing
1127 mtimes. From Pieter Bowman <bowman@math.utah.edu>.
1129 Fri Jan 15 14:35:37 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
1131 * copyin.c: Move include of fnmatch.h to get right FNM* macros.
1133 Tue Nov 24 08:45:32 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
1137 * copyout.c (process_copy_out): Add parens for gcc -Wall.
1140 * system.h: Use HAVE_FCNTL_H, not USG.
1142 * dstring.c, mt.c, system.h: Use HAVE_STRING_H, not USG.
1144 Fri Nov 20 22:47:18 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
1146 * copyin.c (read_in_binary): Copy the dev and ino that are
1147 already in `file_hdr' into `short_hdr'.
1148 From dao@abars.att.com (David A Oshinsky).
1150 * system.h [!_POSIX_VERSION]: Declare lseek as off_t, not long.
1153 Wed Oct 14 13:53:41 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
1157 Tue Oct 13 22:51:34 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
1159 * main.c: Add --swap equivalent to -b.
1161 * mt.c: Add f_force_local variable and -V --version option.
1163 Fri Oct 2 18:42:27 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
1165 * main.c (long_opts, usage): Add --force-local option.
1167 Thu Oct 1 23:23:43 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
1169 * main.c (process_args) [__MSDOS__]: Don't call geteuid.
1171 * copyin.c (read_in_{old,new}_ascii): Use `l' for sscanf into longs.
1172 * copyout.c (write_out_header): Ditto for sprintf.
1173 * global.c, extern.h: Make input_size and output_size long.
1175 Thu Sep 10 23:39:30 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1177 * global.c, extern.h: Add new var f_force_local to work with
1178 rmt.h change from tar.
1180 Sun Aug 23 00:18:20 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
1184 * tar.c (otoa): Compute value in an unsigned long, not an int.
1185 * copyout.c (write_out_header) [__MSDOS__]: Don't use dev_t.
1187 * main.c (process_args): By default, don't chown for non-root users.
1189 Sat Aug 22 14:17:54 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1191 * global.c, extern.h: Use uid_t and gid_t.
1193 * main.c (main) [__EMX__]: Expand wildcards.
1194 * system.h [__EMX__]: Alias some error names. From Kai Uwe Rommel.
1196 * extern.h [__STDC__]: Use prototypes.
1198 * copyin.c (process_copy_in), copyout.c (process_copy_out),
1199 copypass.c (process_copy_pass): Open all files with O_BINARY.
1200 Add cast to chmod call.
1201 * util.c: Add cast to bcopy calls. Make hash_insert static.
1202 From Kai Uwe Rommel.
1204 Thu Aug 20 22:03:49 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1206 * util.c (peek_in_buf): Don't print "end of file" before
1207 getting the next reel of medium.
1209 * copyin.c (read_in_old_ascii): Allocate space for NUL terminator.
1210 Print newline for dot line when done, even if appending.
1212 Thu Jul 23 16:34:53 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1214 * tar.c (write_out_tar_header, read_in_tar_header)
1215 [__MSDOS__]: Don't try to get user and group names.
1216 * extern.h: Don't declare the functions to do it (need uid_t).
1218 * main.c [__MSDOS__]: Ignore the -R option.
1220 * system.h: Define makedev if defining major and minor.
1222 * copyin.c, copyout.c [__MSDOS__]: setmode on archive_des, not
1225 Sat Jul 18 14:30:55 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1227 * tar.c, stripslash.c, userspec.c, cpiohdr.h, tar.h, tarhdr.h,
1228 system.h: New files.
1229 * Move portability stuff from various files to system.h.
1230 * cpio.h: Rename header structure and members, and add
1231 new structure for SVR4 format.
1232 * copyin.c, copyout.c: Use the new structure internally, the
1233 old one only for I/O in the old formats.
1234 * copyin.c (read_in_header): Recognize the new archive formats.
1235 (read_in_new_ascii, read_pattern_file, skip_padding): New functions.
1236 (swab_array): Do the swapping using char pointers instead of
1238 (process_copy_in): Handle byte and halfword swapping and new formats.
1239 Ok if a directory we want to make already exists, but set its perms.
1240 Do chmod after chown to fix any set[ug]id bits.
1241 Use `struct utimbuf' instead of a long array.
1242 * copyout.c (write_out_header): Handle new formats.
1243 (process_copy_out): Use `struct utimbuf'.
1244 Handle appending and new formats.
1245 Remove any leading `./' from filenames.
1246 (read_for_checksum, clear_rest_of_block, pad_output): New functions.
1247 * copypass.c (process_copy_pass): Use `struct utimbuf'.
1248 Ok if a directory we want to make already exists, but set its perms.
1249 Do chmod after chown to fix any set[ug]id bits.
1250 Don't change perms of `.'.
1251 * extern.h, global.c: Replace the separate format flags with
1252 one variable. Add new variables for the new options.
1253 * main.c: Add new options -A --append, -H --format, -C --io-size,
1254 -M --message, --no-preserve-owner, -R --owner, -E --pattern-file,
1255 -V --dot, -s --swap-bytes, -S --swap-halfwords, -b, -I, -k, -O.
1256 (usage): Document them.
1257 (process_args): Recognize them. Use open_archive.
1258 (initialize_buffers): Allow room for tar archives and double buffers.
1259 * util.c (empty_output_buffer_swap): New function.
1260 (empty_output_buffer): Call it if swapping current file.
1261 Check additional end of media indicators.
1262 (swahw_array, peek_in_buf, prepare_append, open_archive,
1263 set_new_media_message): New functions.
1264 (fill_input_buffer): Don't print error message if end of media.
1265 (toss_input): Don't seek, always read.
1266 (copy_files): Update crc if needed.
1267 (find_inode_file, add_inode): Check major and minor numbers as
1269 (get_next_reel): Prompt user if archive name is unknown.
1270 Print fancy messages.
1271 Close the archive and reopen it.
1273 Above primarily from John Oleynick <juo@klinzhai.rutgers.edu>.
1275 * util.c (find_inode_file): Use modulus when computing initial
1277 (add_inode): Zero out new entry.
1278 From scott@sctc.com (Scott Hammond).
1280 * cpio.h, copyin.c, copyout.c: Rename `struct cpio_header'
1281 members from h_foo to c_foo.
1283 Wed May 20 00:09:26 1992 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
1285 * copyin.c: If we include a header file specifically to get
1286 major et al., assume we have them.
1288 Mon Mar 9 19:29:20 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
1290 * mt.c (main): rmtclose the tape file descriptor.
1292 * main.c (main): rmtclose the archive, if not in copy-pass mode.
1294 * util.c (create_all_directories): Don't print a message when
1295 creating a directory, for UNIX compat.
1297 * copyin.c (process_copy_in), copypass.c (process_copy_pass):
1298 Skip file if it has the same timestamp as existing file, not just
1299 if it is older than existing file, for UNIX compat.
1301 Tue Mar 3 12:06:58 1992 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
1303 * main.c, mt.c (usage): Document long options as starting with
1306 * extern.h: Only declare lseek if not _POSIX_VERSION.
1308 Tue Dec 24 00:19:45 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1310 * copyin.c: Use MAJOR_IN_MKDEV and MAJOR_IN_SYSMACROS instead
1311 of USG and _POSIX_VERSION to find major and minor macros.
1313 * mt.c: Use unistd.h and stdlib.h if available.
1315 * copyin.c, copyout.c, copypass.c, util.c, extern.h: Change
1316 POSIX ifdefs to HAVE_UNISTD_H and _POSIX_VERSION.
1318 Sun Aug 25 06:31:08 1991 David J. MacKenzie (djm at apple-gunkies)
1322 * bcopy.c: New file (moved from util.c).
1324 * mt.c (print_status): Not all hpux machines have mt_fileno
1325 and mt_blkno; rather than trying to track HP's product line,
1326 just assume none of them have them.
1328 * util.c (copy_buf_out, copy_in_buf): Use more efficient
1329 copying technique for a big speedup.
1331 Fri Aug 2 04:06:45 1991 David J. MacKenzie (djm at apple-gunkies)
1333 * configure: Support +srcdir. Create config.status.
1334 Remove it and Makefile if interrupted while creating them.
1336 Thu Jul 18 09:43:40 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1338 * Many files: use __MSDOS__ instead of MSDOS.
1340 * util.c, configure: Use NO_MTIO instead of HAVE_MTIO, to keep
1341 up with tar and rtapelib.c.
1343 Mon Jul 15 13:45:30 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1345 * configure: Also look in sys/signal.h for signal decl.
1347 Thu Jul 11 01:50:32 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1351 * configure: Remove /etc and /usr/etc from PATH to avoid
1352 finding /etc/install.
1354 Wed Jul 10 01:40:07 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1356 * makefile.pc: Rewrite for Turbo C 2.0.
1357 * util.c [__TURBOC__] (utime): New function.
1358 * alloca.c, tcexparg.c: New files.
1360 * extern.h [STDC_HEADERS]: Don't declare malloc and realloc.
1362 * main.c [MSDOS]: Make binary mode the default.
1363 * copyin.c, copyout.c: Make stdin or stdout binary mode as
1364 appropriate (so cpio archives don't get corrupted).
1366 * Many files: Use <string.h> if STDC_HEADERS as well as if USG.
1368 * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL),
1369 $(INSTALLTEXT) -> $(INSTALLDATA).
1371 Mon Jul 8 23:18:28 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu)
1373 * configure: For some library functions that might be missing,
1374 conditionally add the .o files to Makefile instead of
1375 defining func_MISSING.
1376 * mkdir.c: Renamed from mkrmdir.c.
1378 Sat Jul 6 02:27:22 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1380 * configure: echo messages to stdout, not stderr.
1381 Use a test program to see if alloca needs -lPW.
1383 Thu Jun 27 16:15:15 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1385 * copyin.c (process_copy_in), copyout.c (process_copy_out),
1386 copypass.c (process_copy_pass): Check close return value for
1387 delayed error notification because of NFS.
1389 Thu Jun 20 02:43:33 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1391 * configure: Include $DEFS when compiling test programs.
1393 * util.c: Only declare getpwuid and getgrgid if not POSIX.
1397 * copyin.c: Use time_t, not long, for time values.
1399 * mt.c (print_status): Special cases for HP-UX and Ultrix.
1401 * util.c: Compile bcopy if USG or STDC_HEADERS, not BCOPY_MISSING.
1403 Tue Jun 11 16:40:02 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1405 * copyin.c: Don't include sys/sysmacros.h if _POSIX_SOURCE.
1407 * copyin.c, copyout.c, copypass.c: Don't include sys/file.h if POSIX.
1409 * util.c: Include sys/types.h before, not after, pwd.h and grp.h.
1411 * configure: New shell script to aid configuration and create
1412 Makefile from Makefile.in.
1414 * copyin.c (process_copy_in): Use POSIX.2 fnmatch instead of
1417 Mon Jun 10 22:11:19 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1419 * global.c, extern.h: New variable, name_end.
1420 * main.c (process_args, usage): Add -0 +null option to set it.
1421 * copypass.c (process_copy_pass), copyout.c (process_copy_out):
1424 * dstring.c (ds_fgetstr): New function made from ds_fgets.
1425 (ds_fgets, ds_fgetname): Implement as front ends to ds_fgetstr.
1427 Sun Jun 2 15:45:24 1991 David J. MacKenzie (djm at wheat-chex)
1429 * most files: use GPL version 2.
1431 Sat May 18 11:39:22 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu)
1433 * copyin.c, copypass.c: Take out #ifdef MSDOS around chown.
1434 * util.c [MSDOS]: Provide dummy chown.
1436 Fri May 17 21:29:05 1991 David J. MacKenzie (djm at churchy.gnu.ai.mit.edu)
1440 * makefile.pc, cpio.cs: Update for new source and object files.
1442 Fri Mar 15 05:48:36 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
1444 * global.c, extern.h: New variable `archive_desc'.
1445 * main.c (process_args): Set it.
1446 * copyout.c (process_copy_out), copyin.c (process_copy_in):
1449 * copyout.c (process_copy_out), copyin.c (process_copy_in):
1450 Remote tapes are special and not seekable; don't fstat them.
1452 * main.c (main, usage): Add -F, +file option. Use rmtopen.
1453 (main): Exit after printing version number.
1454 * util.c (empty_output_buffer): Use rmtwrite instead of write.
1455 (fill_input_buffer): Use rmtread instead of read.
1456 (tape_offline): Use rmtioctl instead of ioctl.
1457 Test HAVE_MTIO instead of MTIO_MISSING, for tar compatibility.
1459 Thu Mar 14 17:49:57 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
1461 * util.c (create_all_directories): Use make_path to do the work.
1463 Sat Jan 12 15:32:15 1991 David J. MacKenzie (djm at geech.ai.mit.edu)
1465 * copyin.c, copyout.c, copypass.c, util.c: Only declare
1466 `errno' if not MSDOS. Some Unix errno.h do, some don't . . . .
1468 * global.c, extern.h: Make `input_size' and `output_size'
1469 unsigned, for 16 bit machines.
1471 * copyin.c (print_name_with_quoting): All non-ctrl chars are
1472 printable on MS-DOS.
1474 * util.c (empty_output_buffer): Never make sparse files;
1475 can create unrunnable executables.
1476 * copyin.c, copyout.c, copypass.c: Callers changed.
1477 * util.c (finish_output_file): Function removed.
1479 Tue Nov 6 15:47:16 1990 David J. MacKenzie (djm at apple-gunkies)
1481 * copyin.c, util.c, extern.h: Rename copystring to xstrdup.
1483 Mon Oct 29 02:24:41 1990 David J. MacKenzie (djm at apple-gunkies)
1485 * util.c (empty_output_buffer): Only make sparse files if
1486 NO_SPARSE_FILES is undefined, to accomodate dumb kernels.
1488 Wed Jul 25 18:48:35 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1490 * util.c (getuser, getgroup): Make uid and gid unsigned short,
1493 Sat Jul 21 00:44:44 1990 David J. MacKenzie (djm at apple-gunkies)
1495 * copyin.c, copyout.c, copypass.c, util.c, cpio.h: Add ifdefs
1498 Sun Jul 15 23:51:48 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1500 * copyin.c, copyout.c, copypass.c, global.c, extern.h, util.c:
1501 Use longs where appropriate, for 16 bit machines.
1503 Sun Jul 8 22:58:06 1990 David J. MacKenzie (djm at apple-gunkies)
1505 * main.c (process_args, usage): Change -b option to -O (old), to
1506 allow adding byte swapping later.
1508 Sat Jul 7 14:48:35 1990 David J. MacKenzie (dave at edfmd)
1512 * cpio.h: Make `mtime' and `filesize' unsigned long.
1513 * copyin.c (read_in_binary), copyout.c (write_out_header):
1514 High short-word of `mtime' and `filesize' always comes first.
1516 * (read_in_ascii, read_in_binary): New functions, from code in
1518 (read_in_header): Search for valid magic number, then fill in
1519 rest of header using read_in_ascii and read_in_binary.
1520 * global.c, extern.h: New variable, `binary_flag'.
1521 * main.c (process_args): Recognize new -b +binary option.
1522 * util.c [BCOPY_MISSING] (bcopy): New function.
1524 Wed Jul 4 00:40:58 1990 David J. MacKenzie (djm at apple-gunkies)
1526 * main.c (process_args): Add local pointers to functions to
1527 work around a pcc bug found on a Convex.
1529 * copyin.c (process_copy_in), util.c (toss_input,
1530 create_all_directories, add_inode): Don't use `index' as a
1533 Tue Jul 3 02:33:36 1990 David J. MacKenzie (djm at apple-gunkies)
1537 Mon Jul 2 23:18:56 1990 David J. MacKenzie (djm at twiddle)
1539 * copyin.c (process_copy_in), copyout.c (process_copy_out),
1540 copypass.c (process_copy_pass): Print "1 block", not "1 blocks".
1542 * copyin.c (process_copy_in), copypass.c (process_copy_pass):
1543 Unlink existing dest. file unless either it is newer and
1544 not unconditional, or it is a directory.
1546 Mon Jul 2 03:57:41 1990 David J. MacKenzie (dave at edfmd)
1548 * util.c (xrealloc): New function.
1549 * dstring.c (ds_resize): Use xrealloc instead of free and
1550 xmalloc. Never shrink the string.
1552 * copypass.c (process_copy_pass): More efficient
1553 string handling while constructing output filename.
1555 * global.c, extern.h, main.c, cpio.h: Change from an enum,
1556 `copy_command', to a pointer to a void function, `copy_function'.
1558 * cpio.h (struct cpio_header): Make most fields unsigned.
1559 Rename h_filesize to h_filesizes and h_mtime to h_mtimes, and
1560 add new `long' fields with the old names at the end of the
1562 * copyin.c (read_in_header): Set the long fields from the
1563 short arrays, making sure longs are aligned properly.
1564 (process_copy_in, long_format): Use the long fields.
1565 * copyout.c (write_out_header): Set the short arrays from the
1566 long fields, making sure longs are aligned properly.
1567 (process_copy_out): Use the long fields.
1569 * global.c, extern.h: New variable `output_is_seekable'.
1570 * util.c (empty_output_buffer): If output_is_seekable, use
1571 lseek to write blocks of zeros.
1572 (finish_output_file): New function.
1573 * copyin.c (process_copy_in), copyout.c (process_copy_out),
1574 copypass.c (process_copy_pass): Set `output_is_seekable'
1575 correctly and call finish_output_file.
1576 * main.c (initialize_buffers): Allocate space for sentinel in
1579 * global.c, extern.h: New variable `numeric_uid'.
1580 * main.c (process_args): Accept -n +numeric-uid-gid option, like ls.
1581 * copyin.c (long_format): Use numeric_uid.
1583 * copyin.c (process_copy_in), copyout.c (process_copy_out),
1584 copypass.c (process_copy_pass): Don't (for verbose) print the
1585 names of files that are not copied because of errors. Try to
1586 create missing directories for all file types. Free temporary
1589 Sat Jun 30 14:28:45 1990 David J. MacKenzie (djm at apple-gunkies)
1591 * version.c: New file.
1592 * main.c: Add -V, +version option.
1593 * Makefile [dist]: Extract version number from version.c.
1595 Sat Jun 30 12:44:47 1990 David J. MacKenzie (dave at edfmd)
1597 * global.c, extern.h, copyin.c, copyout.c, util.c: Rename
1598 `{input,output}_is_regular' to `{input,output}_is_special' and
1599 reverse the truth value.
1601 * global.c, extern.h: New variable `input_is_seekable' to
1602 control whether to skip data with lseek or read.
1603 * copyin.c (process_copy_in): Set it.
1604 * util.c (toss_input): Use it.
1606 * global.c, extern.h: New variable `xstat' that selects stat
1607 or lstat for input files.
1608 * main.c (process_args): New option -L, +dereference to set
1609 xstat to stat instead of lstat.
1610 (usage): Document it.
1611 * copyout.c (process_copy_out), copypass.c
1612 (process_copy_pass): Use *xstat on input file.
1614 Sat Jun 30 01:53:12 1990 David J. MacKenzie (dave at edfmd)
1616 * dstring.c (ds_init): Return void because return value was
1618 (ds_resize): Ditto, and free old value instead of new one.
1620 * util.c (empty_output_buffer, fill_input_buffer,
1621 copy_out_buf, copy_in_buf, toss_input, copy_files): Return
1622 void instead of an error value and make errors fatal
1623 immediately instead of several levels up, to prevent printing
1624 of multiple error messages by different levels of functions.
1626 * copyin.c (read_in_header): Return void, because the error
1627 handling all happens at lower levels.
1628 (print_name_with_quoting): New function.
1629 (long_format): Call print_name_with_quoting. Take additional
1630 arg for name of linked-to file, and print it if nonzero.
1631 (process_copy_in): For verbose listing of symlinks, read in
1632 the linkname and pass it to long_format.
1634 * extern.h: Declare some more functions.
1636 Thu Jun 28 16:07:15 1990 David J. MacKenzie (dave at edfmd)
1638 * copypass.c (process_copy_pass): Warn about unknown file types.
1640 * copyout.c (process_copy_out): Check fstat return for error.
1641 Record filesize of 0 for special files. Warn about unknown
1644 * copyin.c (process_copy_in): Warn about unknown file types.
1645 (read_in_header): Warn about byte-reversed binary headers.
1647 Sat Jun 23 22:50:45 1990 David J. MacKenzie (dave at edfmd)
1649 * main.c (main): Set umask to 0 so permissions of created
1650 files are preserved.
1652 * copyin.c, copyout.c, copypass.c, util.c: Pass file
1653 descriptors as ints, not pointers to ints.
1654 Cast file timestamps and sizes to long *, not int *, for 16
1656 Use lstat instead of stat, if available.
1657 Handle FIFO's, sockets, and symlinks, if supported by O.S.
1659 * copyin.c (process_copy_in), copyout.c (process_copy_out):
1660 Don't consider FIFO'S, sockets, etc. to be possible tape drives.
1662 * util.c (create_all_directories): Fix incorrect loop
1663 termination check. Only copy string if it contains slashes.
1664 Don't check whether directory "" exists.
1665 (tape_offline): Code moved from get_next_reel.
1666 (get_next_reel): Print message before taking tape offline.
1667 Read a line of arbitrary length.
1669 * copyout.c, copyin.c, copypass.c: Always use utime, not utimes.
1671 * copyin.c (swab_short): New macro.
1672 (swab_array): New function.
1673 (read_in_header): In binary mode, if a byte-swapped header is
1674 read, swap the bytes back.
1675 (process_copy_in, process_copy_pass): Don't stat each file to
1676 create unless !unconditional_flag. Create device files correctly.
1677 Don't temporarily allow files being created to be read by
1678 other users. Don't unnecessarily chmod special files.
1680 Thu May 31 20:51:43 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1682 * copyin.c (long_format): Use mode_string to format
1683 file protections instead of doing it ourselves.
1684 (protections): Function removed.
1686 Sat Apr 14 02:31:01 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1688 * cpio.h (struct cpio_header): Make inode, mode, uid, gid
1691 * util.c (getgroup): New function.
1692 * copyin.c (long_format): Print group name of files.
1693 Print file size, etc. as unsigned integers, not signed.
1695 * main.c (process_args): If -t is given and neither -i, -o, or
1696 -p is given, assume -i.
1698 * Add -f, +nonmatching option.
1699 * main.c: Rename +out to +create, +in to +extract,
1700 +modification-time to +preserve-modification-time,
1701 +pass to +pass-through.
1703 * copyin.c (process_copy_in), copypass.c (process_copy_pass):
1704 Don't complain in chown fails because the user doesn't have
1707 Fri Apr 13 13:53:20 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1709 * Add ifdefs for USG/Xenix.
1710 * util.c (cpio_error): Function removed.
1711 * Use error instead of cpio_error, so system error messages
1713 * cpio.h: Rename 'hdr_struct' to 'struct cpio_header'.
1714 * Move definition of xmalloc from dstring.c to util.c.
1715 * global.c, extern.c: Add global `program_name'.
1716 * main.c (main): Set program_name.
1717 (process_args): Rename +reset-atime to +reset-access-time,
1719 Have +block-size take an argument.
1721 Thu Apr 12 13:33:32 1990 David J. MacKenzie (djm at rice-chex)
1723 * util.c (find_inode_file): Make inode an int, not a short.
1725 * Make functions that don't return a value have type void.
1726 Add some casts to function calls.
1728 Wed Apr 11 14:55:28 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1730 * main.c (process_args): -i, -o, and -p don't take arguments.
1732 * main.c (process_args): Get the non-option args from the
1733 correct elements of argv.
1735 Tue Apr 10 00:20:26 1990 David J. MacKenzie (djm at albert.ai.mit.edu)
1737 * Indent source code and update copyrights.
1739 * cpio.c (usage): Change `collection' to `archive' in message.
1741 Thu Dec 28 03:03:55 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
1743 * dstring.c (xmalloc): Don't return a null pointer if size is 0,
1744 on the assumption that trying to allocate 0 bytes is a bug that
1747 Wed Dec 20 03:24:48 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
1749 * All files: Change from GNU CPIO General Public License to
1750 GNU General Public License.
1752 Mon Dec 18 13:18:36 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
1754 * Makefile: Add clean target and defines for CC and LDFLAGS.
1755 Add dist target and SRCS, DISTFILES macros. Add tags and TAGS targets.
1756 * dstring.c (ds_fgets): Read characters into an int, not char.
1757 (xmalloc): New function.
1758 (out_of_memory): Function removed.
1759 Global: use xmalloc instead of malloc and out_of_memory.
1760 * extern.h, global.c: Make flag variables ints instead of chars for
1761 compatibility with getopt_long.
1762 * extern.h: Declare more functions.
1763 * main.c (usage): Put the whole usage message into a single string
1765 * util.c (create_all_directories): Remove unused variable.
1766 (get_next_reel): Ditto.
1767 * dstring.h: Declare function.
1769 Sat Dec 2 13:22:37 1989 David J. MacKenzie (djm at hobbes.ai.mit.edu)
1771 * main.c: Change +copy-pass option to +pass, +copy-in to +in,
1772 +copy-out to +out, and +mkdir to +make-directories, and add null
1773 option to terminate table.
1774 (process_args): Use the same code to handle long and short named
1776 (usage): Mention long options in message.
1780 version-control: never