mirror of
https://git.savannah.gnu.org/git/tar.git
synced 2026-05-31 03:56:45 +00:00
*** empty log message ***
This commit is contained in:
47
src/buffer.c
47
src/buffer.c
@@ -1130,30 +1130,31 @@ close_archive()
|
||||
;
|
||||
|
||||
if (child != -1) {
|
||||
switch (WTERMSIG(status)) {
|
||||
case 0:
|
||||
/* Child voluntarily terminated -- but why? */
|
||||
if (WEXITSTATUS(status) == MAGIC_STAT) {
|
||||
exit(EX_SYSTEM);/* Child had trouble */
|
||||
}
|
||||
if (WEXITSTATUS(status) == (SIGPIPE + 128)) {
|
||||
/*
|
||||
* /bin/sh returns this if its child
|
||||
* dies with SIGPIPE. 'Sok.
|
||||
*/
|
||||
break;
|
||||
} else if (WEXITSTATUS(status))
|
||||
msg("child returned status %d",
|
||||
WEXITSTATUS(status));
|
||||
case SIGPIPE:
|
||||
break; /* This is OK. */
|
||||
|
||||
default:
|
||||
msg("child died with signal %d%s",
|
||||
WTERMSIG(status),
|
||||
WIFCOREDUMPED(status)? " (core dumped)": "");
|
||||
{
|
||||
if (WIFSIGNALED(status))
|
||||
{
|
||||
/* SIGPIPE is OK, everything else is a problem. */
|
||||
if (WTERMSIG (status) != SIGPIPE)
|
||||
msg("child died with signal %d%s", WTERMSIG(status),
|
||||
WIFCOREDUMPED(status)? " (core dumped)": "");
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Child voluntarily terminated -- but why? */
|
||||
if (WEXITSTATUS(status) == MAGIC_STAT) {
|
||||
exit(EX_SYSTEM);/* Child had trouble */
|
||||
}
|
||||
}
|
||||
if (WEXITSTATUS(status) == (SIGPIPE + 128)) {
|
||||
/*
|
||||
* /bin/sh returns this if its child
|
||||
* dies with SIGPIPE. 'Sok.
|
||||
*/
|
||||
break;
|
||||
} else if (WEXITSTATUS(status))
|
||||
msg("child returned status %d",
|
||||
WEXITSTATUS(status));
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif /* __MSDOS__ */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user