瀏覽代碼

*** empty log message ***

François Pinard 31 年之前
父節點
當前提交
cbe5f6dce0
共有 1 個文件被更改,包括 172 次插入164 次删除
  1. 172 164
      src/tar.h

+ 172 - 164
src/tar.h

@@ -49,53 +49,60 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define SPARSE_EXT_HDR  21
 #define SPARSE_EXT_HDR  21
 #define SPARSE_IN_HDR	4
 #define SPARSE_IN_HDR	4
 
 
-struct sparse {
-	char offset[12];
-	char numbytes[12];
-};
+struct sparse
+  {
+    char offset[12];
+    char numbytes[12];
+  };
 
 
-struct sp_array {
-	int offset;
-	int numbytes;
-};
+struct sp_array
+  {
+    int offset;
+    int numbytes;
+  };
 
 
-union record {
-	char		charptr[RECORDSIZE];
-	struct header {
-		char	arch_name[NAMSIZ];
-		char	mode[8];
-		char	uid[8];
-		char	gid[8];
-		char	size[12];
-		char	mtime[12];
-		char	chksum[8];
-		char	linkflag;
-		char	arch_linkname[NAMSIZ];
-		char	magic[8];
-		char	uname[TUNMLEN];
-		char	gname[TGNMLEN];
-		char	devmajor[8];
-		char	devminor[8];
-		/* these following fields were added by JF for gnu */
-		/* and are NOT standard */
-		char	atime[12];
-		char	ctime[12];
-		char	offset[12];
-		char	longnames[4];
+union record
+  {
+    char charptr[RECORDSIZE];
+    struct header
+      {
+	char arch_name[NAMSIZ];
+	char mode[8];
+	char uid[8];
+	char gid[8];
+	char size[12];
+	char mtime[12];
+	char chksum[8];
+	char linkflag;
+	char arch_linkname[NAMSIZ];
+	char magic[8];
+	char uname[TUNMLEN];
+	char gname[TGNMLEN];
+	char devmajor[8];
+	char devminor[8];
+	/* these following fields were added by JF for gnu */
+	/* and are NOT standard */
+	char atime[12];
+	char ctime[12];
+	char offset[12];
+	char longnames[4];
 #ifdef NEEDPAD
 #ifdef NEEDPAD
-		char    pad;
+	char pad;
 #endif
 #endif
-		struct	sparse sp[SPARSE_IN_HDR];
-		char	isextended;
-		char	realsize[12];		/* true size of the sparse file */
-/*		char	ending_blanks[12];*/	/* number of nulls at the
+	struct sparse sp[SPARSE_IN_HDR];
+	char isextended;
+	char realsize[12];	/* true size of the sparse file */
+	/*		char	ending_blanks[12];*//* number of nulls at the
 						   end of the file, if any */
 						   end of the file, if any */
-	} header;
-	struct extended_header {
-		struct sparse sp[21];
-		char isextended;
-	} ext_hdr;
-};
+      }
+    header;
+    struct extended_header
+      {
+	struct sparse sp[21];
+	char isextended;
+      }
+    ext_hdr;
+  };
 
 
 /* The checksum field is filled with this while the checksum is computed. */
 /* The checksum field is filled with this while the checksum is computed. */
 #define	CHKBLANKS	"        "	/* 8 blanks, no null */
 #define	CHKBLANKS	"        "	/* 8 blanks, no null */
@@ -104,137 +111,137 @@ union record {
 #define	TMAGIC		"ustar  "	/* 7 chars and a null */
 #define	TMAGIC		"ustar  "	/* 7 chars and a null */
 
 
 /* The linkflag defines the type of file */
 /* The linkflag defines the type of file */
-#define	LF_OLDNORMAL	'\0'		/* Normal disk file, Unix compat */
-#define	LF_NORMAL	'0'		/* Normal disk file */
-#define	LF_LINK		'1'		/* Link to previously dumped file */
-#define	LF_SYMLINK	'2'		/* Symbolic link */
-#define	LF_CHR		'3'		/* Character special file */
-#define	LF_BLK		'4'		/* Block special file */
-#define	LF_DIR		'5'		/* Directory */
-#define	LF_FIFO		'6'		/* FIFO special file */
-#define	LF_CONTIG	'7'		/* Contiguous file */
+#define	LF_OLDNORMAL	'\0'	/* Normal disk file, Unix compat */
+#define	LF_NORMAL	'0'	/* Normal disk file */
+#define	LF_LINK		'1'	/* Link to previously dumped file */
+#define	LF_SYMLINK	'2'	/* Symbolic link */
+#define	LF_CHR		'3'	/* Character special file */
+#define	LF_BLK		'4'	/* Block special file */
+#define	LF_DIR		'5'	/* Directory */
+#define	LF_FIFO		'6'	/* FIFO special file */
+#define	LF_CONTIG	'7'	/* Contiguous file */
 /* Further link types may be defined later. */
 /* Further link types may be defined later. */
 
 
 /* Note that the standards committee allows only capital A through
 /* Note that the standards committee allows only capital A through
    capital Z for user-defined expansion.  This means that defining something
    capital Z for user-defined expansion.  This means that defining something
    as, say '8' is a *bad* idea. */
    as, say '8' is a *bad* idea. */
-#define LF_DUMPDIR	'D'		/* This is a dir entry that contains
+#define LF_DUMPDIR	'D'	/* This is a dir entry that contains
 					   the names of files that were in
 					   the names of files that were in
 					   the dir at the time the dump
 					   the dir at the time the dump
 					   was made */
 					   was made */
-#define LF_LONGLINK	'K'		/* Identifies the NEXT file on the tape
+#define LF_LONGLINK	'K'	/* Identifies the NEXT file on the tape
 					   as having a long linkname */
 					   as having a long linkname */
-#define LF_LONGNAME	'L'		/* Identifies the NEXT file on the tape
+#define LF_LONGNAME	'L'	/* Identifies the NEXT file on the tape
 					   as having a long name. */
 					   as having a long name. */
-#define LF_MULTIVOL	'M'		/* This is the continuation
+#define LF_MULTIVOL	'M'	/* This is the continuation
 					   of a file that began on another
 					   of a file that began on another
 					   volume */
 					   volume */
-#define LF_NAMES	'N'		/* For storing filenames that didn't
+#define LF_NAMES	'N'	/* For storing filenames that didn't
 					   fit in 100 characters */
 					   fit in 100 characters */
-#define LF_SPARSE	'S'		/* This is for sparse files */
-#define LF_VOLHDR	'V'		/* This file is a tape/volume header */
-					/* Ignore it on extraction */
+#define LF_SPARSE	'S'	/* This is for sparse files */
+#define LF_VOLHDR	'V'	/* This file is a tape/volume header */
+/* Ignore it on extraction */
 
 
 /*
 /*
  * Exit codes from the "tar" program
  * Exit codes from the "tar" program
  */
  */
-#define	EX_SUCCESS	0		/* success! */
-#define	EX_ARGSBAD	1		/* invalid args */
-#define	EX_BADFILE	2		/* invalid filename */
-#define	EX_BADARCH	3		/* bad archive */
-#define	EX_SYSTEM	4		/* system gave unexpected error */
-#define EX_BADVOL	5		/* Special error code means
+#define	EX_SUCCESS	0	/* success! */
+#define	EX_ARGSBAD	1	/* invalid args */
+#define	EX_BADFILE	2	/* invalid filename */
+#define	EX_BADARCH	3	/* bad archive */
+#define	EX_SYSTEM	4	/* system gave unexpected error */
+#define EX_BADVOL	5	/* Special error code means
 					   Tape volume doesn't match the one
 					   Tape volume doesn't match the one
 					   specified on the command line */
 					   specified on the command line */
 
 
 /*
 /*
  * Global variables
  * Global variables
  */
  */
-TAR_EXTERN union record	*ar_block;	/* Start of block of archive */
-TAR_EXTERN union record	*ar_record;	/* Current record of archive */
-TAR_EXTERN union record	*ar_last;	/* Last+1 record of archive block */
-TAR_EXTERN char		ar_reading;	/* 0 writing, !0 reading archive */
-TAR_EXTERN int		blocking;	/* Size of each block, in records */
-TAR_EXTERN int		blocksize;	/* Size of each block, in bytes */
-TAR_EXTERN char		*info_script;	/* Script to run at end of each tape change */
-TAR_EXTERN char		*name_file;	/* File containing names to work on */
-TAR_EXTERN char		filename_terminator; /* \n or \0. */
-TAR_EXTERN char		*tar;		/* Name of this program */
-TAR_EXTERN struct sp_array *sparsearray;/* Pointer to the start of the scratch space */
-TAR_EXTERN int		sp_array_size;	/* Initial size of the sparsearray */
-TAR_EXTERN int 		tot_written;    /* Total written to output */
+TAR_EXTERN union record *ar_block;	/* Start of block of archive */
+TAR_EXTERN union record *ar_record;	/* Current record of archive */
+TAR_EXTERN union record *ar_last;	/* Last+1 record of archive block */
+TAR_EXTERN char ar_reading;	/* 0 writing, !0 reading archive */
+TAR_EXTERN int blocking;	/* Size of each block, in records */
+TAR_EXTERN int blocksize;	/* Size of each block, in bytes */
+TAR_EXTERN char *info_script;	/* Script to run at end of each tape change */
+TAR_EXTERN char *name_file;	/* File containing names to work on */
+TAR_EXTERN char filename_terminator;	/* \n or \0. */
+TAR_EXTERN char *tar;		/* Name of this program */
+TAR_EXTERN struct sp_array *sparsearray;	/* Pointer to the start of the scratch space */
+TAR_EXTERN int sp_array_size;	/* Initial size of the sparsearray */
+TAR_EXTERN int tot_written;	/* Total written to output */
 TAR_EXTERN struct re_pattern_buffer
 TAR_EXTERN struct re_pattern_buffer
-  			*label_pattern;	/* compiled regex for extract label */
-TAR_EXTERN char    	**ar_files;	/* list of tape drive names */
-TAR_EXTERN int		n_ar_files;	/* number of tape drive names */
-TAR_EXTERN int		cur_ar_file;	/* tape drive currently being used */
-TAR_EXTERN int		ar_files_len;	/* malloced size of ar_files */
-TAR_EXTERN char		*current_file_name, *current_link_name;
+ *label_pattern;		/* compiled regex for extract label */
+TAR_EXTERN char **ar_files;	/* list of tape drive names */
+TAR_EXTERN int n_ar_files;	/* number of tape drive names */
+TAR_EXTERN int cur_ar_file;	/* tape drive currently being used */
+TAR_EXTERN int ar_files_len;	/* malloced size of ar_files */
+TAR_EXTERN char *current_file_name, *current_link_name;
 
 
 /*
 /*
  * Flags from the command line
  * Flags from the command line
  */
  */
 TAR_EXTERN int cmd_mode;
 TAR_EXTERN int cmd_mode;
 #define CMD_NONE	0
 #define CMD_NONE	0
-#define CMD_CAT		1		/* -A */
-#define CMD_CREATE	2		/* -c */
-#define CMD_DIFF	3		/* -d */
-#define CMD_APPEND	4		/* -r */
-#define CMD_LIST	5		/* -t */
-#define CMD_UPDATE	6		/* -u */
-#define CMD_EXTRACT	7		/* -x */
-#define CMD_DELETE	8		/* -D */
-#define CMD_VERSION	9		/* --version */
+#define CMD_CAT		1	/* -A */
+#define CMD_CREATE	2	/* -c */
+#define CMD_DIFF	3	/* -d */
+#define CMD_APPEND	4	/* -r */
+#define CMD_LIST	5	/* -t */
+#define CMD_UPDATE	6	/* -u */
+#define CMD_EXTRACT	7	/* -x */
+#define CMD_DELETE	8	/* -D */
+#define CMD_VERSION	9	/* --version */
 
 
-					/* -[0-9][lmh] */
-			/* CMD_CAT	   -A */
-					/* -b */
-TAR_EXTERN int	f_reblock;		/* -B */
-			/* CMD_CREATE	   -c */
-					/* -C */
-			/* CMD_DIFF	   -d */
+/* -[0-9][lmh] */
+/* CMD_CAT	   -A */
+/* -b */
+TAR_EXTERN int f_reblock;	/* -B */
+/* CMD_CREATE	   -c */
+/* -C */
+/* CMD_DIFF	   -d */
 #if 0
 #if 0
-TAR_EXTERN char	f_dironly;		/* -D */
+TAR_EXTERN char f_dironly;	/* -D */
 #endif
 #endif
-					/* -f */
-TAR_EXTERN int	f_run_script_at_end;	/* -F */
-TAR_EXTERN int 	f_gnudump;		/* -G */
-TAR_EXTERN int	f_follow_links;		/* -h */
-TAR_EXTERN int	f_ignorez;		/* -i */
-			/* CMD_DELETE	   -J */
-TAR_EXTERN int	f_keep;			/* -k */
-TAR_EXTERN int	f_startfile;		/* -K */
-TAR_EXTERN int	f_local_filesys;	/* -l */
-TAR_EXTERN int  tape_length;		/* -L */
-TAR_EXTERN int	f_modified;		/* -m */
-TAR_EXTERN int 	f_multivol;		/* -M */
-TAR_EXTERN int	f_new_files;		/* -N */
-TAR_EXTERN int	f_oldarch;		/* -o */
-TAR_EXTERN int  f_exstdout;		/* -O */
-TAR_EXTERN int	f_use_protection;	/* -p */
-TAR_EXTERN int  f_absolute_paths;	/* -P */
-TAR_EXTERN int	f_sayblock;		/* -R */
-TAR_EXTERN int	f_sorted_names;		/* -s */
-TAR_EXTERN int	f_sparse_files;		/* -S  ... JK */
-TAR_EXTERN int	f_namefile;		/* -T */
-			/* CMD_UPDATE	   -u */
-TAR_EXTERN int	f_verbose;		/* -v */
-TAR_EXTERN char *f_volhdr;		/* -V */
-TAR_EXTERN int  f_confirm;		/* -w */
-TAR_EXTERN int  f_verify;		/* -W */
-			/* CMD_EXTRACT     -x */
-TAR_EXTERN int  f_exclude;		/* -X */
-TAR_EXTERN int 	f_compress;		/* -z */
-					/* -Z */
-TAR_EXTERN int	f_do_chown;		/* --do-chown */
-TAR_EXTERN int  f_totals;		/* --totals */
-TAR_EXTERN int	f_remove_files;		/* --remove-files */
-TAR_EXTERN int	f_ignore_failed_read;	/* --ignore-failed-read */
-TAR_EXTERN int	f_checkpoint;		/* --checkpoint */
-TAR_EXTERN int	f_show_omitted_dirs;	/* --show-omitted-dirs */
-TAR_EXTERN char *f_volno_file;		/* --volno-file */
-TAR_EXTERN int	f_force_local;		/* --force-local */
-TAR_EXTERN int	f_atime_preserve;	/* --atime-preserve */
+/* -f */
+TAR_EXTERN int f_run_script_at_end;	/* -F */
+TAR_EXTERN int f_gnudump;	/* -G */
+TAR_EXTERN int f_follow_links;	/* -h */
+TAR_EXTERN int f_ignorez;	/* -i */
+/* CMD_DELETE	   -J */
+TAR_EXTERN int f_keep;		/* -k */
+TAR_EXTERN int f_startfile;	/* -K */
+TAR_EXTERN int f_local_filesys;	/* -l */
+TAR_EXTERN int tape_length;	/* -L */
+TAR_EXTERN int f_modified;	/* -m */
+TAR_EXTERN int f_multivol;	/* -M */
+TAR_EXTERN int f_new_files;	/* -N */
+TAR_EXTERN int f_oldarch;	/* -o */
+TAR_EXTERN int f_exstdout;	/* -O */
+TAR_EXTERN int f_use_protection;/* -p */
+TAR_EXTERN int f_absolute_paths;/* -P */
+TAR_EXTERN int f_sayblock;	/* -R */
+TAR_EXTERN int f_sorted_names;	/* -s */
+TAR_EXTERN int f_sparse_files;	/* -S  ... JK */
+TAR_EXTERN int f_namefile;	/* -T */
+/* CMD_UPDATE	   -u */
+TAR_EXTERN int f_verbose;	/* -v */
+TAR_EXTERN char *f_volhdr;	/* -V */
+TAR_EXTERN int f_confirm;	/* -w */
+TAR_EXTERN int f_verify;	/* -W */
+/* CMD_EXTRACT     -x */
+TAR_EXTERN int f_exclude;	/* -X */
+TAR_EXTERN int f_compress;	/* -z */
+/* -Z */
+TAR_EXTERN int f_do_chown;	/* --do-chown */
+TAR_EXTERN int f_totals;	/* --totals */
+TAR_EXTERN int f_remove_files;	/* --remove-files */
+TAR_EXTERN int f_ignore_failed_read;	/* --ignore-failed-read */
+TAR_EXTERN int f_checkpoint;	/* --checkpoint */
+TAR_EXTERN int f_show_omitted_dirs;	/* --show-omitted-dirs */
+TAR_EXTERN char *f_volno_file;	/* --volno-file */
+TAR_EXTERN int f_force_local;	/* --force-local */
+TAR_EXTERN int f_atime_preserve;/* --atime-preserve */
 
 
 /*
 /*
  * We default to Unix Standard format rather than 4.2BSD tar format.
  * We default to Unix Standard format rather than 4.2BSD tar format.
@@ -251,44 +258,45 @@ TAR_EXTERN int	f_atime_preserve;	/* --atime-preserve */
 /*
 /*
  * Structure for keeping track of filenames and lists thereof.
  * Structure for keeping track of filenames and lists thereof.
  */
  */
-struct name {
-	struct name	*next;
-	short		length;		/* cached strlen(name) */
-	char		found;		/* A matching file has been found */
-	char		firstch;	/* First char is literally matched */
-	char		regexp;		/* This name is a regexp, not literal */
-	char		*change_dir;	/* JF set with the -C option */
-	char		*dir_contents;	/* JF for f_gnudump */
-	char		fake;		/* dummy entry */
-	char		name[1];
-};
+struct name
+  {
+    struct name *next;
+    short length;		/* cached strlen(name) */
+    char found;			/* A matching file has been found */
+    char firstch;		/* First char is literally matched */
+    char regexp;		/* This name is a regexp, not literal */
+    char *change_dir;		/* JF set with the -C option */
+    char *dir_contents;		/* JF for f_gnudump */
+    char fake;			/* dummy entry */
+    char name[1];
+  };
 
 
-TAR_EXTERN struct name	*namelist;	/* Points to first name in list */
-TAR_EXTERN struct name	*namelast;	/* Points to last name in list */
+TAR_EXTERN struct name *namelist;	/* Points to first name in list */
+TAR_EXTERN struct name *namelast;	/* Points to last name in list */
 
 
-TAR_EXTERN int		archive;	/* File descriptor for archive file */
-TAR_EXTERN int		errors;		/* # of files in error */
+TAR_EXTERN int archive;		/* File descriptor for archive file */
+TAR_EXTERN int errors;		/* # of files in error */
 
 
 TAR_EXTERN char *gnu_dumpfile;
 TAR_EXTERN char *gnu_dumpfile;
 
 
 /*
 /*
  * Error recovery stuff
  * Error recovery stuff
  */
  */
-TAR_EXTERN char		read_error_flag;
+TAR_EXTERN char read_error_flag;
 
 
 
 
 /*
 /*
  * Declarations of functions available to the world.
  * Declarations of functions available to the world.
  */
  */
-union record *findrec();
-void userec();
-union record *endofrecs();
-void anno();
+union record *findrec ();
+void userec ();
+union record *endofrecs ();
+void anno ();
 
 
 #if defined (HAVE_VPRINTF) && __STDC__
 #if defined (HAVE_VPRINTF) && __STDC__
-void msg(char *, ...);
-void msg_perror(char *, ...);
+void msg (char *,...);
+void msg_perror (char *,...);
 #else
 #else
-void msg();
-void msg_perror();
+void msg ();
+void msg_perror ();
 #endif
 #endif