aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Kraai <kraai@debian.org>2000-09-15 22:47:34 +0000
committerMatt Kraai <kraai@debian.org>2000-09-15 22:47:34 +0000
commitb2f36af1573f6599f1cd35edfd44c1c2d6048faf (patch)
tree4d3ef37ee5927dde91485605a568faeb58b681df
parent6fc2a7d04da066f40ad91e3a11b6418e76181f86 (diff)
downloadbusybox-w32-b2f36af1573f6599f1cd35edfd44c1c2d6048faf.tar.gz
busybox-w32-b2f36af1573f6599f1cd35edfd44c1c2d6048faf.tar.bz2
busybox-w32-b2f36af1573f6599f1cd35edfd44c1c2d6048faf.zip
Updated stdin/stdout treatment to match that of gnu tar.
-rw-r--r--archival/tar.c15
-rw-r--r--tar.c15
2 files changed, 12 insertions, 18 deletions
diff --git a/archival/tar.c b/archival/tar.c
index 3e1a65062..723943245 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -133,8 +133,8 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
133 133
134#ifdef BB_FEATURE_TAR_CREATE 134#ifdef BB_FEATURE_TAR_CREATE
135/* Local procedures to save files into a tar file. */ 135/* Local procedures to save files into a tar file. */
136static int writeTarFile(const char* tarName, int tostdoutFlag, 136static int writeTarFile(const char* tarName, int verboseFlag, int argc,
137 int verboseFlag, int argc, char **argv, char** excludeList); 137 char **argv, char** excludeList);
138#endif 138#endif
139 139
140static struct option longopts[] = 140static struct option longopts[] =
@@ -185,14 +185,11 @@ extern int tar_main(int argc, char **argv)
185 break; 185 break;
186 case 'O': 186 case 'O':
187 tostdoutFlag = TRUE; 187 tostdoutFlag = TRUE;
188 tarName = "-";
189 break; 188 break;
190 case 'f': 189 case 'f':
191 if (*tarName != '-') 190 if (*tarName != '-')
192 fatalError( "Only one 'f' option allowed\n"); 191 fatalError( "Only one 'f' option allowed\n");
193 tarName = optarg; 192 tarName = optarg;
194 if (!strcmp(tarName, "-") && createFlag == TRUE)
195 tostdoutFlag = TRUE;
196 break; 193 break;
197#if defined BB_FEATURE_TAR_EXCLUDE 194#if defined BB_FEATURE_TAR_EXCLUDE
198 case 'e': 195 case 'e':
@@ -218,7 +215,7 @@ extern int tar_main(int argc, char **argv)
218#ifndef BB_FEATURE_TAR_CREATE 215#ifndef BB_FEATURE_TAR_CREATE
219 fatalError( "This version of tar was not compiled with tar creation support.\n"); 216 fatalError( "This version of tar was not compiled with tar creation support.\n");
220#else 217#else
221 exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc-optind, &argv[optind], excludeList)); 218 exit(writeTarFile(tarName, verboseFlag, argc-optind, &argv[optind], excludeList));
222#endif 219#endif
223 } 220 }
224 if (listFlag == TRUE || extractFlag == TRUE) { 221 if (listFlag == TRUE || extractFlag == TRUE) {
@@ -922,8 +919,8 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
922 return( TRUE); 919 return( TRUE);
923} 920}
924 921
925static int writeTarFile(const char* tarName, int tostdoutFlag, 922static int writeTarFile(const char* tarName, int verboseFlag, int argc,
926 int verboseFlag, int argc, char **argv, char** excludeList) 923 char **argv, char** excludeList)
927{ 924{
928 int tarFd=-1; 925 int tarFd=-1;
929 int errorFlag=FALSE; 926 int errorFlag=FALSE;
@@ -936,7 +933,7 @@ static int writeTarFile(const char* tarName, int tostdoutFlag,
936 fatalError("Cowardly refusing to create an empty archive\n"); 933 fatalError("Cowardly refusing to create an empty archive\n");
937 934
938 /* Open the tar file for writing. */ 935 /* Open the tar file for writing. */
939 if (tostdoutFlag == TRUE) 936 if (strcmp(tarName, "-") == 0)
940 tbInfo.tarFd = fileno(stdout); 937 tbInfo.tarFd = fileno(stdout);
941 else 938 else
942 tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644); 939 tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);
diff --git a/tar.c b/tar.c
index 3e1a65062..723943245 100644
--- a/tar.c
+++ b/tar.c
@@ -133,8 +133,8 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
133 133
134#ifdef BB_FEATURE_TAR_CREATE 134#ifdef BB_FEATURE_TAR_CREATE
135/* Local procedures to save files into a tar file. */ 135/* Local procedures to save files into a tar file. */
136static int writeTarFile(const char* tarName, int tostdoutFlag, 136static int writeTarFile(const char* tarName, int verboseFlag, int argc,
137 int verboseFlag, int argc, char **argv, char** excludeList); 137 char **argv, char** excludeList);
138#endif 138#endif
139 139
140static struct option longopts[] = 140static struct option longopts[] =
@@ -185,14 +185,11 @@ extern int tar_main(int argc, char **argv)
185 break; 185 break;
186 case 'O': 186 case 'O':
187 tostdoutFlag = TRUE; 187 tostdoutFlag = TRUE;
188 tarName = "-";
189 break; 188 break;
190 case 'f': 189 case 'f':
191 if (*tarName != '-') 190 if (*tarName != '-')
192 fatalError( "Only one 'f' option allowed\n"); 191 fatalError( "Only one 'f' option allowed\n");
193 tarName = optarg; 192 tarName = optarg;
194 if (!strcmp(tarName, "-") && createFlag == TRUE)
195 tostdoutFlag = TRUE;
196 break; 193 break;
197#if defined BB_FEATURE_TAR_EXCLUDE 194#if defined BB_FEATURE_TAR_EXCLUDE
198 case 'e': 195 case 'e':
@@ -218,7 +215,7 @@ extern int tar_main(int argc, char **argv)
218#ifndef BB_FEATURE_TAR_CREATE 215#ifndef BB_FEATURE_TAR_CREATE
219 fatalError( "This version of tar was not compiled with tar creation support.\n"); 216 fatalError( "This version of tar was not compiled with tar creation support.\n");
220#else 217#else
221 exit(writeTarFile(tarName, tostdoutFlag, verboseFlag, argc-optind, &argv[optind], excludeList)); 218 exit(writeTarFile(tarName, verboseFlag, argc-optind, &argv[optind], excludeList));
222#endif 219#endif
223 } 220 }
224 if (listFlag == TRUE || extractFlag == TRUE) { 221 if (listFlag == TRUE || extractFlag == TRUE) {
@@ -922,8 +919,8 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
922 return( TRUE); 919 return( TRUE);
923} 920}
924 921
925static int writeTarFile(const char* tarName, int tostdoutFlag, 922static int writeTarFile(const char* tarName, int verboseFlag, int argc,
926 int verboseFlag, int argc, char **argv, char** excludeList) 923 char **argv, char** excludeList)
927{ 924{
928 int tarFd=-1; 925 int tarFd=-1;
929 int errorFlag=FALSE; 926 int errorFlag=FALSE;
@@ -936,7 +933,7 @@ static int writeTarFile(const char* tarName, int tostdoutFlag,
936 fatalError("Cowardly refusing to create an empty archive\n"); 933 fatalError("Cowardly refusing to create an empty archive\n");
937 934
938 /* Open the tar file for writing. */ 935 /* Open the tar file for writing. */
939 if (tostdoutFlag == TRUE) 936 if (strcmp(tarName, "-") == 0)
940 tbInfo.tarFd = fileno(stdout); 937 tbInfo.tarFd = fileno(stdout);
941 else 938 else
942 tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644); 939 tbInfo.tarFd = open (tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);