4
0
Эх сурвалжийг харах

(BACKUP_OPTION, DELETE_OPTION, EXCLUDE_OPTION, GROUP_OPTION,
MODE_OPTION, NEWER_MTIME_OPTION, NO_RECURSE_OPTION, NULL_OPTION,
OWNER_OPTION, POSIX_OPTION, PRESERVE_OPTION, RECORD_SIZE_OPTION,
RSH_COMMAND_OPTION, SUFFIX_OPTION, USE_COMPRESS_PROGRAM_OPTION,
VOLNO_FILE_OPTION, OBSOLETE_ABSOLUTE_NAMES, OBSOLETE_BLOCK_COMPRESS,
OBSOLETE_BLOCKING_FACTOR, OBSOLETE_BLOCK_NUMBER,
OBSOLETE_READ_FULL_RECORDS, OBSOLETE_TOUCH, OBSOLETE_VERSION_CONTROL):
Make sure they can't be valid chars, so they don't overlap with char codes.
Use an enum instead of a lot of #defines.
(long_options, main, usage): Remove --ending-file option.
(OPTION_STRING): Remove -E.

Paul Eggert 26 жил өмнө
parent
commit
6f1783ad43
1 өөрчлөгдсөн 36 нэмэгдсэн , 41 устгасан
  1. 36 41
      src/tar.c

+ 36 - 41
src/tar.c

@@ -106,39 +106,40 @@ confirm (const char *message_action, const char *message_name)
    do it.  For the others, we share the code for the equivalent short
    do it.  For the others, we share the code for the equivalent short
    named option, the name of which is stored in the otherwise-unused `val'
    named option, the name of which is stored in the otherwise-unused `val'
    field of the `struct option'; for long options that have no equivalent
    field of the `struct option'; for long options that have no equivalent
-   short option, we use nongraphic characters as pseudo short option
-   characters, starting at 2 and going upwards.  */
-
-#define BACKUP_OPTION			2
-#define DELETE_OPTION			3
-#define EXCLUDE_OPTION			4
-#define GROUP_OPTION			5
-#define MODE_OPTION			6
-#define NEWER_MTIME_OPTION		7
-#define NO_RECURSE_OPTION		8
-#define NULL_OPTION			9
-#define OWNER_OPTION			10
-#define POSIX_OPTION			11
-#define PRESERVE_OPTION			12
-#define RECORD_SIZE_OPTION		13
-#define RSH_COMMAND_OPTION		14
-#define SUFFIX_OPTION			15
-#define USE_COMPRESS_PROGRAM_OPTION	16
-#define VOLNO_FILE_OPTION		17
-
-/* Some cleanup is being made in GNU tar long options.  Using old names is
-   allowed for a while, but will also send a warning to stderr.  Take old
-   names out in 1.14, or in summer 1997, whichever happens last.  We use
-   nongraphic characters as pseudo short option characters, starting at 31
-   and going downwards.  */
-
-#define OBSOLETE_ABSOLUTE_NAMES		31
-#define OBSOLETE_BLOCK_COMPRESS		30
-#define OBSOLETE_BLOCKING_FACTOR	29
-#define OBSOLETE_BLOCK_NUMBER		28
-#define OBSOLETE_READ_FULL_RECORDS	27
-#define OBSOLETE_TOUCH			26
-#define OBSOLETE_VERSION_CONTROL	25
+   short option, we use non-characters as pseudo short options,
+   starting at CHAR_MAX + 1 and going upwards.  */
+
+enum
+{
+  BACKUP_OPTION = CHAR_MAX + 1,
+  DELETE_OPTION,
+  EXCLUDE_OPTION,
+  GROUP_OPTION,
+  MODE_OPTION,
+  NEWER_MTIME_OPTION,
+  NO_RECURSE_OPTION,
+  NULL_OPTION,
+  OWNER_OPTION,
+  POSIX_OPTION,
+  PRESERVE_OPTION,
+  RECORD_SIZE_OPTION,
+  RSH_COMMAND_OPTION,
+  SUFFIX_OPTION,
+  USE_COMPRESS_PROGRAM_OPTION,
+  VOLNO_FILE_OPTION,
+
+  /* Some cleanup is being made in GNU tar long options.  Using old names is
+     allowed for a while, but will also send a warning to stderr.  Take old
+     names out in 1.14, or in summer 1997, whichever happens last.  */
+
+  OBSOLETE_ABSOLUTE_NAMES,
+  OBSOLETE_BLOCK_COMPRESS,
+  OBSOLETE_BLOCKING_FACTOR,
+  OBSOLETE_BLOCK_NUMBER,
+  OBSOLETE_READ_FULL_RECORDS,
+  OBSOLETE_TOUCH,
+  OBSOLETE_VERSION_CONTROL
+};
 
 
 /* If nonzero, display usage information and exit.  */
 /* If nonzero, display usage information and exit.  */
 static int show_help = 0;
 static int show_help = 0;
@@ -170,7 +171,6 @@ struct option long_options[] =
   {"dereference", no_argument, NULL, 'h'},
   {"dereference", no_argument, NULL, 'h'},
   {"diff", no_argument, NULL, 'd'},
   {"diff", no_argument, NULL, 'd'},
   {"directory", required_argument, NULL, 'C'},
   {"directory", required_argument, NULL, 'C'},
-  {"ending-file", required_argument, NULL, 'E'},
   {"exclude", required_argument, NULL, EXCLUDE_OPTION},
   {"exclude", required_argument, NULL, EXCLUDE_OPTION},
   {"exclude-from", required_argument, NULL, 'X'},
   {"exclude-from", required_argument, NULL, 'X'},
   {"extract", no_argument, NULL, 'x'},
   {"extract", no_argument, NULL, 'x'},
@@ -351,7 +351,6 @@ Local file selection:\n\
   -h, --dereference            dump instead the files symlinks point to\n\
   -h, --dereference            dump instead the files symlinks point to\n\
       --no-recursion           avoid descending automatically in directories\n\
       --no-recursion           avoid descending automatically in directories\n\
   -l, --one-file-system        stay in local file system when creating archive\n\
   -l, --one-file-system        stay in local file system when creating archive\n\
-  -E, --ending-file=NAME       end reading the archive before file NAME\n\
   -K, --starting-file=NAME     begin at file NAME in the archive\n"),
   -K, --starting-file=NAME     begin at file NAME in the archive\n"),
 	     stdout);
 	     stdout);
 #if !MSDOS
 #if !MSDOS
@@ -406,13 +405,13 @@ Report bugs to <tar-bugs@gnu.org>.\n"),
 | Parse the options for tar.  |
 | Parse the options for tar.  |
 `----------------------------*/
 `----------------------------*/
 
 
-/* Available option letters are DHIJQY and aejnqy.  Some are reserved:
+/* Available option letters are DEHIJQY and aejnqy.  Some are reserved:
 
 
    y  per-file gzip compression
    y  per-file gzip compression
    Y  per-block gzip compression */
    Y  per-block gzip compression */
 
 
 #define OPTION_STRING \
 #define OPTION_STRING \
-  "-01234567ABC:E:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
+  "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
 
 
 static void
 static void
 set_subcommand_option (enum subcommand subcommand)
 set_subcommand_option (enum subcommand subcommand)
@@ -583,10 +582,6 @@ decode_options (int argc, char *const *argv)
 	set_subcommand_option (DIFF_SUBCOMMAND);
 	set_subcommand_option (DIFF_SUBCOMMAND);
 	break;
 	break;
 
 
-      case 'E':
-	ending_file_option = optarg;
-	break;
-
       case 'f':
       case 'f':
 	if (archive_names == allocated_archive_names)
 	if (archive_names == allocated_archive_names)
 	  {
 	  {