X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbuffer.c;h=e0ffc2d28654d7cd4d6dc9782370b9fe41c3ab3b;hb=866799304923fff8a6f250388f697cb32fc33fb4;hp=4ff57af73d69bf227bfdc3de8cb64f856c06c154;hpb=7f91a90a9c09ef660d5c7f13a26f0bb8921c9141;p=chaz%2Ftar diff --git a/src/buffer.c b/src/buffer.c index 4ff57af..e0ffc2d 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1,5 +1,5 @@ /* Buffer management for tar. - Copyright (C) 1988, 1992 Free Software Foundation + Copyright (C) 1988, 1992, 1993 Free Software Foundation This file is part of GNU Tar. @@ -440,11 +440,12 @@ child_open () { if (err < 0) { - msg_perror ("can't write to compress"); + msg_perror ("can't write to compression program"); exit (EX_SYSTEM); } else - msg ("write to compress short %d bytes", count - err); + msg ("write to compression program short %d bytes", + count - err); count = (err < 0) ? 0 : err; } ptr += count; @@ -472,20 +473,20 @@ child_open () /* EOF */ if (err == 0) { - if (f_compress < 2) + if (!f_compress_block) blocksize -= n; else bzero (ar_block->charptr + blocksize - n, n); err = rmtwrite (archive, ar_block->charptr, blocksize); if (err != (blocksize)) writeerror (err); - if (f_compress < 2) + if (!f_compress_block) blocksize += n; break; } if (n) { - msg_perror ("can't read from compress"); + msg_perror ("can't read from compression program"); exit (EX_SYSTEM); } err = rmtwrite (archive, ar_block->charptr, (int) blocksize); @@ -500,10 +501,10 @@ child_open () } /* So we should exec compress (-d) */ if (ar_reading) - execlp ("compress", "compress", "-d", (char *) 0); + execlp (f_compressprog, f_compressprog, "-d", (char *) 0); else - execlp ("compress", "compress", (char *) 0); - msg_perror ("can't exec compress"); + execlp (f_compressprog, f_compressprog, (char *) 0); + msg_perror ("can't exec %s", f_compressprog); _exit (EX_SYSTEM); } @@ -573,7 +574,7 @@ open_archive (reading) exit (EX_ARGSBAD); } - if (f_compress) + if (f_compressprog) { if (reading == 2 || f_verify) { @@ -697,6 +698,7 @@ open_archive (reading) sprintf (ar_block->header.arch_name, "%s Volume 1", f_volhdr); else strcpy (ar_block->header.arch_name, f_volhdr); + current_file_name = ar_block->header.arch_name; ar_block->header.linkflag = LF_VOLHDR; to_oct (time (0), 1 + 12, ar_block->header.mtime); finish_header (ar_block); @@ -1431,7 +1433,10 @@ tryagain: { /* We have to prompt from now on. */ if (f_run_script_at_end) - system (info_script); + { + closeout_volume_number (); + system (info_script); + } else for (;;) {