Do not pad compressed output if it goes to stdout.

This commit is contained in:
Sergey Poznyakoff
2005-11-10 12:59:25 +00:00
parent 9a42d94543
commit 813aa07a89

View File

@@ -332,12 +332,10 @@ sys_child_open_for_compress (void)
xclose (parent_pipe[PWRITE]);
/* Check if we need a grandchild tar. This happens only if either:
a) we are writing stdout: to force reblocking;
b) the file is to be accessed by rmt: compressor doesn't know how;
c) the file is not a plain file. */
a) the file is to be accessed by rmt: compressor doesn't know how;
b) the file is not a plain file. */
if (strcmp (archive_name_array[0], "-") != 0
&& !_remdev (archive_name_array[0])
if (!_remdev (archive_name_array[0])
&& is_regular_file (archive_name_array[0]))
{
if (backup_option)
@@ -345,20 +343,21 @@ sys_child_open_for_compress (void)
/* We don't need a grandchild tar. Open the archive and launch the
compressor. */
archive = creat (archive_name_array[0], MODE_RW);
if (archive < 0)
if (strcmp (archive_name_array[0], "-"))
{
int saved_errno = errno;
if (backup_option)
undo_last_backup ();
errno = saved_errno;
open_fatal (archive_name_array[0]);
archive = creat (archive_name_array[0], MODE_RW);
if (archive < 0)
{
int saved_errno = errno;
if (backup_option)
undo_last_backup ();
errno = saved_errno;
open_fatal (archive_name_array[0]);
}
xdup2 (archive, STDOUT_FILENO);
}
xdup2 (archive, STDOUT_FILENO);
execlp (use_compress_program_option, use_compress_program_option,
(char *) 0);
execlp (use_compress_program_option, use_compress_program_option, NULL);
exec_fatal (use_compress_program_option);
}