Run through indent, use /* */ style comments, change extern to static

This commit is contained in:
Glenn L McGrath 2002-08-22 13:44:08 +00:00
parent 4176972db5
commit a0ee881ba4

View File

@ -70,8 +70,7 @@ static const int TAR_VERSION_LEN = 2;
/* POSIX tar Header Block, from POSIX 1003.1-1990 */
enum { NAME_SIZE = 100 }; /* because gcc won't let me use 'static const int' */
struct TarHeader
{ /* byte offset */
struct TarHeader { /* byte offset */
char name[NAME_SIZE]; /* 0-99 */
char mode[8]; /* 100-107 */
char uid[8]; /* 108-115 */
@ -98,8 +97,7 @@ typedef struct TarHeader TarHeader;
** Even these functions use the xxxHardLinkInfo() functions.
*/
typedef struct HardLinkInfo HardLinkInfo;
struct HardLinkInfo
{
struct HardLinkInfo {
HardLinkInfo *next; /* Next entry in list */
dev_t dev; /* Device number */
ino_t ino; /* Inode number */
@ -108,8 +106,7 @@ struct HardLinkInfo
};
/* Some info to be carried along when creating a new tarball */
struct TarBallInfo
{
struct TarBallInfo {
char *fileName; /* File name of the tarball */
int tarFd; /* Open-for-write file descriptor
for the tarball */
@ -125,8 +122,7 @@ struct TarBallInfo
typedef struct TarBallInfo TarBallInfo;
/* A nice enum with all the possible tar file content types */
enum TarFileType
{
enum TarFileType {
REGTYPE = '0', /* regular file */
REGTYPE0 = '\0', /* regular file (ancient bug compat) */
LNKTYPE = '1', /* hard link */
@ -142,14 +138,15 @@ enum TarFileType
typedef enum TarFileType TarFileType;
/* Might be faster (and bigger) if the dev/ino were stored in numeric order;) */
extern inline void
addHardLinkInfo (HardLinkInfo **hlInfoHeadPtr, dev_t dev, ino_t ino,
short linkCount, const char *name)
static inline void addHardLinkInfo(HardLinkInfo ** hlInfoHeadPtr, dev_t dev,
ino_t ino, short linkCount,
const char *name)
{
/* Note: hlInfoHeadPtr can never be NULL! */
HardLinkInfo *hlInfo;
hlInfo = (HardLinkInfo *)xmalloc(sizeof(HardLinkInfo)+strlen(name)+1);
hlInfo =
(HardLinkInfo *) xmalloc(sizeof(HardLinkInfo) + strlen(name) + 1);
if (hlInfo) {
hlInfo->next = *hlInfoHeadPtr;
*hlInfoHeadPtr = hlInfo;
@ -161,8 +158,7 @@ addHardLinkInfo (HardLinkInfo **hlInfoHeadPtr, dev_t dev, ino_t ino,
return;
}
static void
freeHardLinkInfo (HardLinkInfo **hlInfoHeadPtr)
static void freeHardLinkInfo(HardLinkInfo ** hlInfoHeadPtr)
{
HardLinkInfo *hlInfo = NULL;
HardLinkInfo *hlInfoNext = NULL;
@ -180,8 +176,8 @@ freeHardLinkInfo (HardLinkInfo **hlInfoHeadPtr)
}
/* Might be faster (and bigger) if the dev/ino were stored in numeric order;) */
extern inline HardLinkInfo *
findHardLinkInfo (HardLinkInfo *hlInfo, dev_t dev, ino_t ino)
static inline HardLinkInfo *findHardLinkInfo(HardLinkInfo * hlInfo, dev_t dev,
ino_t ino)
{
while (hlInfo) {
if ((ino == hlInfo->ino) && (dev == hlInfo->dev))
@ -226,8 +222,8 @@ static int putOctal (char *cp, int len, long value)
}
/* Write out a tar header for the specified file/directory/whatever */
extern inline int
writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
static inline int writeTarHeader(struct TarBallInfo *tbInfo,
const char *header_name,
const char *real_name, struct stat *statbuf)
{
long chksum = 0;
@ -258,9 +254,11 @@ writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
if (tbInfo->hlInfo) {
/* This is a hard link */
header.typeflag = LNKTYPE;
strncpy(header.linkname, tbInfo->hlInfo->name, sizeof(header.linkname));
strncpy(header.linkname, tbInfo->hlInfo->name,
sizeof(header.linkname));
} else if (S_ISLNK(statbuf->st_mode)) {
char *lpath = xreadlink(real_name);
if (!lpath) /* Already printed err msg inside xreadlink() */
return (FALSE);
header.typeflag = SYMTYPE;
@ -271,12 +269,16 @@ writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
strncat(header.name, "/", sizeof(header.name));
} else if (S_ISCHR(statbuf->st_mode)) {
header.typeflag = CHRTYPE;
putOctal(header.devmajor, sizeof(header.devmajor), MAJOR(statbuf->st_rdev));
putOctal(header.devminor, sizeof(header.devminor), MINOR(statbuf->st_rdev));
putOctal(header.devmajor, sizeof(header.devmajor),
MAJOR(statbuf->st_rdev));
putOctal(header.devminor, sizeof(header.devminor),
MINOR(statbuf->st_rdev));
} else if (S_ISBLK(statbuf->st_mode)) {
header.typeflag = BLKTYPE;
putOctal(header.devmajor, sizeof(header.devmajor), MAJOR(statbuf->st_rdev));
putOctal(header.devminor, sizeof(header.devminor), MINOR(statbuf->st_rdev));
putOctal(header.devmajor, sizeof(header.devmajor),
MAJOR(statbuf->st_rdev));
putOctal(header.devminor, sizeof(header.devminor),
MINOR(statbuf->st_rdev));
} else if (S_ISFIFO(statbuf->st_mode)) {
header.typeflag = FIFOTYPE;
} else if (S_ISREG(statbuf->st_mode)) {
@ -299,7 +301,9 @@ writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
putOctal(header.chksum, 7, chksum);
/* Now write the header out to disk */
if ((size=full_write(tbInfo->tarFd, (char*)&header, sizeof(struct TarHeader))) < 0) {
if ((size =
full_write(tbInfo->tarFd, (char *) &header,
sizeof(struct TarHeader))) < 0) {
error_msg(io_error, real_name, strerror(errno));
return (FALSE);
}
@ -311,7 +315,8 @@ writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
if (tbInfo->verboseFlag) {
FILE *vbFd = stdout;
if (tbInfo->verboseFlag == 2) // If the archive goes to stdout, verbose to stderr
if (tbInfo->verboseFlag == 2) /* If the archive goes to stdout, verbose to stderr */
vbFd = stderr;
fprintf(vbFd, "%s\n", header.name);
}
@ -320,7 +325,7 @@ writeTarHeader(struct TarBallInfo *tbInfo, const char *header_name,
}
# if defined CONFIG_FEATURE_TAR_EXCLUDE
extern inline int exclude_file(char **excluded_files, const char *file)
static inline int exclude_file(char **excluded_files, const char *file)
{
int i;
@ -348,7 +353,8 @@ extern inline int exclude_file(char **excluded_files, const char *file)
}
#endif
static int writeFileToTarball(const char *fileName, struct stat *statbuf, void* userData)
static int writeFileToTarball(const char *fileName, struct stat *statbuf,
void *userData)
{
struct TarBallInfo *tbInfo = (struct TarBallInfo *) userData;
const char *header_name;
@ -387,6 +393,7 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
header_name = fileName;
while (header_name[0] == '/') {
static int alreadyWarned = FALSE;
if (alreadyWarned == FALSE) {
error_msg("Removing leading '/' from member names");
alreadyWarned = TRUE;
@ -406,7 +413,7 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
if (exclude_file(tbInfo->excludeList, header_name)) {
return SKIP;
}
# endif //CONFIG_FEATURE_TAR_EXCLUDE
# endif /* CONFIG_FEATURE_TAR_EXCLUDE */
if (writeTarHeader(tbInfo, header_name, fileName, statbuf) == FALSE) {
return (FALSE);
@ -448,8 +455,8 @@ static int writeFileToTarball(const char *fileName, struct stat *statbuf, void*
return (TRUE);
}
extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv,
char** excludeList, int gzip)
static inline int writeTarFile(const char *tarName, int verboseFlag,
char **argv, char **excludeList, int gzip)
{
#ifdef CONFIG_FEATURE_TAR_GZIP
int gzipDataPipe[2] = { -1, -1 };
@ -460,6 +467,7 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
int errorFlag = FALSE;
ssize_t size;
struct TarBallInfo tbInfo;
tbInfo.hlInfoHead = NULL;
/* Make sure there is at least one file to tar up. */
@ -470,8 +478,7 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
if (tarName == NULL) {
tbInfo.tarFd = fileno(stdout);
tbInfo.verboseFlag = verboseFlag ? 2 : 0;
}
else {
} else {
tbInfo.tarFd = open(tarName, O_WRONLY | O_CREAT | O_TRUNC, 0644);
tbInfo.verboseFlag = verboseFlag ? 1 : 0;
}
@ -489,10 +496,11 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
#ifdef CONFIG_FEATURE_TAR_GZIP
if (gzip) {
if ( socketpair ( AF_UNIX, SOCK_STREAM, 0, gzipDataPipe ) < 0 || pipe ( gzipStatusPipe ) < 0 )
if (socketpair(AF_UNIX, SOCK_STREAM, 0, gzipDataPipe) < 0
|| pipe(gzipStatusPipe) < 0)
perror_msg_and_die("Failed to create gzip pipe");
signal ( SIGPIPE, SIG_IGN ); // we only want EPIPE on errors
signal(SIGPIPE, SIG_IGN); /* we only want EPIPE on errors */
gzipPid = fork();
@ -504,7 +512,7 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
dup2(tbInfo.tarFd, 1);
close(gzipStatusPipe[0]);
fcntl( gzipStatusPipe [1], F_SETFD, FD_CLOEXEC ); // close on exec shows sucess
fcntl(gzipStatusPipe[1], F_SETFD, FD_CLOEXEC); /* close on exec shows sucess */
execl("/bin/gzip", "gzip", "-f", 0);
@ -512,8 +520,7 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
close(gzipStatusPipe[1]);
exit(-1);
}
else if ( gzipPid > 0 ) {
} else if (gzipPid > 0) {
close(gzipDataPipe[0]);
close(gzipStatusPipe[1]);
@ -521,17 +528,17 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
char buf;
int n = read(gzipStatusPipe[0], &buf, 1);
if (n == 1)
error_msg_and_die ( "Could not exec gzip process" ); // socket was not closed => error
error_msg_and_die("Could not exec gzip process"); /* socket was not closed => error */
else if ((n < 0) && (errno == EAGAIN || errno == EINTR))
continue; // try it again
continue; /* try it again */
break;
}
close(gzipStatusPipe[0]);
tbInfo.tarFd = gzipDataPipe[1];
}
else {
} else {
perror_msg_and_die("Failed to fork gzip process");
}
}
@ -573,7 +580,7 @@ extern inline int writeTarFile(const char* tarName, int verboseFlag, char **argv
return !errorFlag;
}
#endif //tar_create
#endif /* tar_create */
void append_file_to_list(const char *new_name, char ***list, int *list_count)
{
@ -583,7 +590,8 @@ void append_file_to_list(const char *new_name, char ***list, int *list_count)
(*list)[*list_count] = NULL;
}
void append_file_list_to_list(char *filename, char ***name_list, int *num_of_entries)
void append_file_list_to_list(char *filename, char ***name_list,
int *num_of_entries)
{
FILE *src_stream;
char *line;
@ -597,48 +605,6 @@ void append_file_list_to_list(char *filename, char ***name_list, int *num_of_ent
fclose(src_stream);
}
#ifdef CONFIG_FEATURE_TAR_EXCLUDE
/*
* Create a list of names that are in the include list AND NOT in the exclude lists
*/
#if 0 /* this is unused */
char **list_and_not_list(char **include_list, char **exclude_list)
{
char **new_include_list = NULL;
int new_include_count = 0;
int include_count = 0;
int exclude_count;
if (include_list == NULL) {
return(NULL);
}
while (include_list[include_count] != NULL) {
int found = FALSE;
exclude_count = 0;
while (exclude_list[exclude_count] != NULL) {
if (strcmp(include_list[include_count], exclude_list[exclude_count]) == 0) {
found = TRUE;
break;
}
exclude_count++;
}
if (! found) {
new_include_list = realloc(new_include_list, sizeof(char *) * (include_count + 2));
new_include_list[new_include_count] = include_list[include_count];
new_include_count++;
} else {
free(include_list[include_count]);
}
include_count++;
}
new_include_list[new_include_count] = NULL;
return(new_include_list);
}
#endif
#endif
int tar_main(int argc, char **argv)
{
enum untar_funct_e {
@ -661,6 +627,7 @@ int tar_main(int argc, char **argv)
unsigned short untar_funct_required = 0;
unsigned short extract_function = 0;
int include_list_count = 0;
#ifdef CONFIG_FEATURE_TAR_EXCLUDE
int exclude_list_count = 0;
#endif
@ -676,6 +643,7 @@ int tar_main(int argc, char **argv)
/* Prepend '-' to the first argument if required */
if (argv[1][0] != '-') {
char *tmp = xmalloc(strlen(argv[1]) + 2);
tmp[0] = '-';
strcpy(tmp + 1, argv[1]);
argv[1] = tmp;
@ -694,26 +662,30 @@ int tar_main(int argc, char **argv)
break;
case 'x':
untar_funct_required |= untar_extract;
extract_function |= (extract_all_to_fs | extract_unconditional | extract_create_leading_dirs);
extract_function |=
(extract_all_to_fs | extract_unconditional |
extract_create_leading_dirs);
break;
/* These are optional */
/* Exclude or Include files listed in <filename> */
#ifdef CONFIG_FEATURE_TAR_EXCLUDE
case 'X':
append_file_list_to_list(optarg, &exclude_list, &exclude_list_count);
append_file_list_to_list(optarg, &exclude_list,
&exclude_list_count);
break;
#endif
case 'T':
// by default a list is an include list
append_file_list_to_list(optarg, &include_list, &include_list_count);
/* by default a list is an include list */
append_file_list_to_list(optarg, &include_list,
&include_list_count);
break;
case 'C': // Change to dir <optarg>
case 'C': /* Change to dir <optarg> */
/* Make sure dst_prefix ends in a '/' */
dst_prefix = concat_path_file(optarg, "/");
break;
case 'f': // archive filename
case 'f': /* archive filename */
if (strcmp(optarg, "-") == 0) {
src_filename = NULL;
} else {
@ -770,11 +742,12 @@ int tar_main(int argc, char **argv)
if (untar_funct & untar_unzip) {
uncompressed_stream = gz_open(src_stream, &gunzip_pid);
} else
#endif // CONFIG_FEATURE_TAR_GZIP
#endif /* CONFIG_FEATURE_TAR_GZIP */
uncompressed_stream = src_stream;
/* extract or list archive */
unarchive(uncompressed_stream, stdout, &get_header_tar, extract_function, dst_prefix, include_list, exclude_list);
unarchive(uncompressed_stream, stdout, &get_header_tar,
extract_function, dst_prefix, include_list, exclude_list);
fclose(uncompressed_stream);
}
#ifdef CONFIG_FEATURE_TAR_CREATE
@ -787,13 +760,14 @@ int tar_main(int argc, char **argv)
if (untar_funct & untar_unzip)
gzipFlag = TRUE;
#endif // CONFIG_FEATURE_TAR_GZIP
#endif /* CONFIG_FEATURE_TAR_GZIP */
if (extract_function & extract_verbose_list)
verboseFlag = TRUE;
writeTarFile(src_filename, verboseFlag, include_list, exclude_list, gzipFlag);
writeTarFile(src_filename, verboseFlag, include_list, exclude_list,
gzipFlag);
}
#endif // CONFIG_FEATURE_TAR_CREATE
#endif /* CONFIG_FEATURE_TAR_CREATE */
/* Cleanups */
#ifdef CONFIG_FEATURE_TAR_GZIP
@ -802,7 +776,7 @@ int tar_main(int argc, char **argv)
close(gz_fd);
gz_close(gunzip_pid);
}
#endif // CONFIG_FEATURE_TAR_GZIP
#endif /* CONFIG_FEATURE_TAR_GZIP */
#ifdef CONFIG_FEATURE_CLEAN_UP
if (src_filename) {
free(src_filename);