Reorganize listing code.
This commit is contained in:
parent
82cfbad216
commit
6fc2a7d04d
@ -564,54 +564,46 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Special treatment if the list (-t) flag is on */
|
|
||||||
if (verboseFlag == TRUE && extractFlag == FALSE) {
|
|
||||||
int len, len1;
|
|
||||||
char buf[35];
|
|
||||||
struct tm *tm = localtime (&(header.mtime));
|
|
||||||
|
|
||||||
len=printf("%s ", modeString(header.mode));
|
|
||||||
memset(buf, 0, 8*sizeof(char));
|
|
||||||
my_getpwuid(buf, header.uid);
|
|
||||||
if (! *buf)
|
|
||||||
len+=printf("%d", header.uid);
|
|
||||||
else
|
|
||||||
len+=printf("%s", buf);
|
|
||||||
memset(buf, 0, 8*sizeof(char));
|
|
||||||
my_getgrgid(buf, header.gid);
|
|
||||||
if (! *buf)
|
|
||||||
len+=printf("/%-d ", header.gid);
|
|
||||||
else
|
|
||||||
len+=printf("/%-s ", buf);
|
|
||||||
|
|
||||||
if (header.type==CHRTYPE || header.type==BLKTYPE) {
|
|
||||||
len1=snprintf(buf, sizeof(buf), "%ld,%-ld ",
|
|
||||||
header.devmajor, header.devminor);
|
|
||||||
} else {
|
|
||||||
len1=snprintf(buf, sizeof(buf), "%lu ", (long)header.size);
|
|
||||||
}
|
|
||||||
/* Jump through some hoops to make the columns match up */
|
|
||||||
for(;(len+len1)<31;len++)
|
|
||||||
printf(" ");
|
|
||||||
printf(buf);
|
|
||||||
|
|
||||||
/* Use ISO 8610 time format */
|
|
||||||
if (tm) {
|
|
||||||
printf ("%04d-%02d-%02d %02d:%02d:%02d ",
|
|
||||||
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
|
|
||||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* List contents if we are supposed to do that */
|
|
||||||
if (verboseFlag == TRUE && listFlag != TRUE) {
|
|
||||||
/* Now the normal listing */
|
|
||||||
FILE *vbFd = stdout;
|
|
||||||
if (tostdoutFlag == TRUE) // If the archive goes to stdout, verbose to stderr
|
|
||||||
vbFd = stderr;
|
|
||||||
fprintf(vbFd, "%s\n", header.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (listFlag == TRUE) {
|
if (listFlag == TRUE) {
|
||||||
|
/* Special treatment if the list (-t) flag is on */
|
||||||
|
if (verboseFlag == TRUE) {
|
||||||
|
int len, len1;
|
||||||
|
char buf[35];
|
||||||
|
struct tm *tm = localtime (&(header.mtime));
|
||||||
|
|
||||||
|
len=printf("%s ", modeString(header.mode));
|
||||||
|
memset(buf, 0, 8*sizeof(char));
|
||||||
|
my_getpwuid(buf, header.uid);
|
||||||
|
if (! *buf)
|
||||||
|
len+=printf("%d", header.uid);
|
||||||
|
else
|
||||||
|
len+=printf("%s", buf);
|
||||||
|
memset(buf, 0, 8*sizeof(char));
|
||||||
|
my_getgrgid(buf, header.gid);
|
||||||
|
if (! *buf)
|
||||||
|
len+=printf("/%-d ", header.gid);
|
||||||
|
else
|
||||||
|
len+=printf("/%-s ", buf);
|
||||||
|
|
||||||
|
if (header.type==CHRTYPE || header.type==BLKTYPE) {
|
||||||
|
len1=snprintf(buf, sizeof(buf), "%ld,%-ld ",
|
||||||
|
header.devmajor, header.devminor);
|
||||||
|
} else {
|
||||||
|
len1=snprintf(buf, sizeof(buf), "%lu ", (long)header.size);
|
||||||
|
}
|
||||||
|
/* Jump through some hoops to make the columns match up */
|
||||||
|
for(;(len+len1)<31;len++)
|
||||||
|
printf(" ");
|
||||||
|
printf(buf);
|
||||||
|
|
||||||
|
/* Use ISO 8610 time format */
|
||||||
|
if (tm) {
|
||||||
|
printf ("%04d-%02d-%02d %02d:%02d:%02d ",
|
||||||
|
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
|
||||||
|
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||||
|
}
|
||||||
|
}
|
||||||
printf("%s", header.name);
|
printf("%s", header.name);
|
||||||
if (verboseFlag == TRUE) {
|
if (verboseFlag == TRUE) {
|
||||||
if (header.type==LNKTYPE) /* If this is a link, say so */
|
if (header.type==LNKTYPE) /* If this is a link, say so */
|
||||||
@ -622,6 +614,15 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* List contents if we are supposed to do that */
|
||||||
|
if (verboseFlag == TRUE && extractFlag == TRUE) {
|
||||||
|
/* Now the normal listing */
|
||||||
|
FILE *vbFd = stdout;
|
||||||
|
if (tostdoutFlag == TRUE) // If the archive goes to stdout, verbose to stderr
|
||||||
|
vbFd = stderr;
|
||||||
|
fprintf(vbFd, "%s\n", header.name);
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove files if we would overwrite them */
|
/* Remove files if we would overwrite them */
|
||||||
if (extractFlag == TRUE && tostdoutFlag == FALSE)
|
if (extractFlag == TRUE && tostdoutFlag == FALSE)
|
||||||
unlink(header.name);
|
unlink(header.name);
|
||||||
|
93
tar.c
93
tar.c
@ -564,54 +564,46 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Special treatment if the list (-t) flag is on */
|
|
||||||
if (verboseFlag == TRUE && extractFlag == FALSE) {
|
|
||||||
int len, len1;
|
|
||||||
char buf[35];
|
|
||||||
struct tm *tm = localtime (&(header.mtime));
|
|
||||||
|
|
||||||
len=printf("%s ", modeString(header.mode));
|
|
||||||
memset(buf, 0, 8*sizeof(char));
|
|
||||||
my_getpwuid(buf, header.uid);
|
|
||||||
if (! *buf)
|
|
||||||
len+=printf("%d", header.uid);
|
|
||||||
else
|
|
||||||
len+=printf("%s", buf);
|
|
||||||
memset(buf, 0, 8*sizeof(char));
|
|
||||||
my_getgrgid(buf, header.gid);
|
|
||||||
if (! *buf)
|
|
||||||
len+=printf("/%-d ", header.gid);
|
|
||||||
else
|
|
||||||
len+=printf("/%-s ", buf);
|
|
||||||
|
|
||||||
if (header.type==CHRTYPE || header.type==BLKTYPE) {
|
|
||||||
len1=snprintf(buf, sizeof(buf), "%ld,%-ld ",
|
|
||||||
header.devmajor, header.devminor);
|
|
||||||
} else {
|
|
||||||
len1=snprintf(buf, sizeof(buf), "%lu ", (long)header.size);
|
|
||||||
}
|
|
||||||
/* Jump through some hoops to make the columns match up */
|
|
||||||
for(;(len+len1)<31;len++)
|
|
||||||
printf(" ");
|
|
||||||
printf(buf);
|
|
||||||
|
|
||||||
/* Use ISO 8610 time format */
|
|
||||||
if (tm) {
|
|
||||||
printf ("%04d-%02d-%02d %02d:%02d:%02d ",
|
|
||||||
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
|
|
||||||
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* List contents if we are supposed to do that */
|
|
||||||
if (verboseFlag == TRUE && listFlag != TRUE) {
|
|
||||||
/* Now the normal listing */
|
|
||||||
FILE *vbFd = stdout;
|
|
||||||
if (tostdoutFlag == TRUE) // If the archive goes to stdout, verbose to stderr
|
|
||||||
vbFd = stderr;
|
|
||||||
fprintf(vbFd, "%s\n", header.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (listFlag == TRUE) {
|
if (listFlag == TRUE) {
|
||||||
|
/* Special treatment if the list (-t) flag is on */
|
||||||
|
if (verboseFlag == TRUE) {
|
||||||
|
int len, len1;
|
||||||
|
char buf[35];
|
||||||
|
struct tm *tm = localtime (&(header.mtime));
|
||||||
|
|
||||||
|
len=printf("%s ", modeString(header.mode));
|
||||||
|
memset(buf, 0, 8*sizeof(char));
|
||||||
|
my_getpwuid(buf, header.uid);
|
||||||
|
if (! *buf)
|
||||||
|
len+=printf("%d", header.uid);
|
||||||
|
else
|
||||||
|
len+=printf("%s", buf);
|
||||||
|
memset(buf, 0, 8*sizeof(char));
|
||||||
|
my_getgrgid(buf, header.gid);
|
||||||
|
if (! *buf)
|
||||||
|
len+=printf("/%-d ", header.gid);
|
||||||
|
else
|
||||||
|
len+=printf("/%-s ", buf);
|
||||||
|
|
||||||
|
if (header.type==CHRTYPE || header.type==BLKTYPE) {
|
||||||
|
len1=snprintf(buf, sizeof(buf), "%ld,%-ld ",
|
||||||
|
header.devmajor, header.devminor);
|
||||||
|
} else {
|
||||||
|
len1=snprintf(buf, sizeof(buf), "%lu ", (long)header.size);
|
||||||
|
}
|
||||||
|
/* Jump through some hoops to make the columns match up */
|
||||||
|
for(;(len+len1)<31;len++)
|
||||||
|
printf(" ");
|
||||||
|
printf(buf);
|
||||||
|
|
||||||
|
/* Use ISO 8610 time format */
|
||||||
|
if (tm) {
|
||||||
|
printf ("%04d-%02d-%02d %02d:%02d:%02d ",
|
||||||
|
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
|
||||||
|
tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||||
|
}
|
||||||
|
}
|
||||||
printf("%s", header.name);
|
printf("%s", header.name);
|
||||||
if (verboseFlag == TRUE) {
|
if (verboseFlag == TRUE) {
|
||||||
if (header.type==LNKTYPE) /* If this is a link, say so */
|
if (header.type==LNKTYPE) /* If this is a link, say so */
|
||||||
@ -622,6 +614,15 @@ static int readTarFile(const char* tarName, int extractFlag, int listFlag,
|
|||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* List contents if we are supposed to do that */
|
||||||
|
if (verboseFlag == TRUE && extractFlag == TRUE) {
|
||||||
|
/* Now the normal listing */
|
||||||
|
FILE *vbFd = stdout;
|
||||||
|
if (tostdoutFlag == TRUE) // If the archive goes to stdout, verbose to stderr
|
||||||
|
vbFd = stderr;
|
||||||
|
fprintf(vbFd, "%s\n", header.name);
|
||||||
|
}
|
||||||
|
|
||||||
/* Remove files if we would overwrite them */
|
/* Remove files if we would overwrite them */
|
||||||
if (extractFlag == TRUE && tostdoutFlag == FALSE)
|
if (extractFlag == TRUE && tostdoutFlag == FALSE)
|
||||||
unlink(header.name);
|
unlink(header.name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user