aboutsummaryrefslogtreecommitdiff
path: root/tar.c
diff options
context:
space:
mode:
Diffstat (limited to 'tar.c')
-rw-r--r--tar.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/tar.c b/tar.c
index 826ab9665..01997e464 100644
--- a/tar.c
+++ b/tar.c
@@ -156,6 +156,7 @@ extern int tar_main(int argc, char **argv)
156 int tostdoutFlag = FALSE; 156 int tostdoutFlag = FALSE;
157 int firstOpt = TRUE; 157 int firstOpt = TRUE;
158 int stopIt; 158 int stopIt;
159 int status;
159 160
160 161
161 if (argc <= 1) 162 if (argc <= 1)
@@ -227,16 +228,21 @@ extern int tar_main(int argc, char **argv)
227#ifndef BB_FEATURE_TAR_CREATE 228#ifndef BB_FEATURE_TAR_CREATE
228 fatalError( "This version of tar was not compiled with tar creation support.\n"); 229 fatalError( "This version of tar was not compiled with tar creation support.\n");
229#else 230#else
230 exit(writeTarFile(tarName, verboseFlag, argv, excludeList)); 231 status = writeTarFile(tarName, verboseFlag, argv, excludeList);
231#endif 232#endif
232 } 233 }
233 if (listFlag == TRUE || extractFlag == TRUE) { 234 if (listFlag == TRUE || extractFlag == TRUE) {
234 if (*argv) 235 if (*argv)
235 extractList = argv; 236 extractList = argv;
236 exit(readTarFile(tarName, extractFlag, listFlag, tostdoutFlag, 237 status = readTarFile(tarName, extractFlag, listFlag, tostdoutFlag,
237 verboseFlag, extractList, excludeList)); 238 verboseFlag, extractList, excludeList);
238 } 239 }
239 240
241 if (status == TRUE)
242 return EXIT_SUCCESS;
243 else
244 return EXIT_FAILURE;
245
240 flagError: 246 flagError:
241 fatalError( "Exactly one of 'c', 'x' or 't' must be specified\n"); 247 fatalError( "Exactly one of 'c', 'x' or 't' must be specified\n");
242} 248}