diff options
Diffstat (limited to 'tar.c')
-rw-r--r-- | tar.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -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 | } |