changeset 4001:53129a4ff530

Remove case insensitive option matching.
author Bruno Haible <bruno@clisp.org>
date Thu, 21 Nov 2002 20:15:39 +0000
parents 592de7dbfd00
children 9fcf64c770ed
files lib/ChangeLog lib/argmatch.c lib/argmatch.h
diffstat 3 files changed, 23 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,5 +1,17 @@
 2002-11-21  Bruno Haible  <bruno@clisp.org>
 
+	Remove case insensitive option matching.
+	* argmatch.h (argcasematch): Remove declaration.
+	(ARGCASEMATCH): Remove macro.
+	(__xargmatch_internal): Remove case_sensitive argument.
+	(XARGMATCH): Update.
+	(XARGCASEMATCH): Remove macro.
+	* argmatch.c (argmatch): Renamed from __argmatch_internal. Remove
+	case_sensitive argument.
+	(argcasematch): Remove function.
+	(__xargmatch_internal): Remove case_sensitive argument.
+	(main): Use XARGMATCH instead of XARGCASEMATCH.
+
 	* xmalloc.c: Change compile-time error message. Add comment about
 	required autoconf version.
 
--- a/lib/argmatch.c
+++ b/lib/argmatch.c
@@ -68,7 +68,6 @@
    null-terminated array ARGLIST, return the index in ARGLIST
    of the matched element, else -1 if it does not match any element
    or -2 if it is ambiguous (is a prefix of more than one element).
-   If SENSITIVE, comparison is case sensitive.
 
    If VALLIST is none null, use it to resolve ambiguities limited to
    synonyms, i.e., for
@@ -76,10 +75,9 @@
      "no", "nope" -> 1
    "y" is a valid argument, for `0', and "n" for `1'.  */
 
-static int
-__argmatch_internal (const char *arg, const char *const *arglist,
-		     const char *vallist, size_t valsize,
-		     int case_sensitive)
+int
+argmatch (const char *arg, const char *const *arglist,
+	  const char *vallist, size_t valsize)
 {
   int i;			/* Temporary index in ARGLIST.  */
   size_t arglen;		/* Length of ARG.  */
@@ -91,9 +89,7 @@
   /* Test all elements for either exact match or abbreviated matches.  */
   for (i = 0; arglist[i]; i++)
     {
-      if (case_sensitive
-	  ? !strncmp (arglist[i], arg, arglen)
-	  : !strncasecmp (arglist[i], arg, arglen))
+      if (!strncmp (arglist[i], arg, arglen))
 	{
 	  if (strlen (arglist[i]) == arglen)
 	    /* Exact match found.  */
@@ -121,22 +117,6 @@
     return matchind;
 }
 
-/* argmatch - case sensitive version */
-int
-argmatch (const char *arg, const char *const *arglist,
-	  const char *vallist, size_t valsize)
-{
-  return __argmatch_internal (arg, arglist, vallist, valsize, 1);
-}
-
-/* argcasematch - case insensitive version */
-int
-argcasematch (const char *arg, const char *const *arglist,
-	      const char *vallist, size_t valsize)
-{
-  return __argmatch_internal (arg, arglist, vallist, valsize, 0);
-}
-
 /* Error reporting for argmatch.
    CONTEXT is a description of the type of entity that was being matched.
    VALUE is the invalid value that was given.
@@ -191,12 +171,9 @@
 __xargmatch_internal (const char *context,
 		      const char *arg, const char *const *arglist,
 		      const char *vallist, size_t valsize,
-		      int case_sensitive,
 		      argmatch_exit_fn exit_fn)
 {
-  int res = __argmatch_internal (arg, arglist,
-				 vallist, valsize,
-				 case_sensitive);
+  int res = argmatch (arg, arglist, vallist, valsize);
   if (res >= 0)
     /* Success. */
     return res;
@@ -282,12 +259,12 @@
     }
 
   if ((cp = getenv ("VERSION_CONTROL")))
-    backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp,
-				 backup_args, backup_vals);
+    backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
+			     backup_args, backup_vals);
 
   if (argc == 2)
-    backup_type = XARGCASEMATCH (program_name, argv[1],
-				 backup_args, backup_vals);
+    backup_type = XARGMATCH (program_name, argv[1],
+			     backup_args, backup_vals);
 
   printf ("The version control is `%s'\n",
 	  ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
--- a/lib/argmatch.h
+++ b/lib/argmatch.h
@@ -49,15 +49,10 @@
 
 int argmatch (char const *arg, char const *const *arglist,
 	      char const *vallist, size_t valsize);
-int argcasematch (char const *arg, char const *const *arglist,
-		  char const *vallist, size_t valsize);
 
 # define ARGMATCH(Arg, Arglist, Vallist) \
   argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
 
-# define ARGCASEMATCH(Arg, Arglist, Vallist) \
-  argcasematch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
-
 /* xargmatch calls this function when it fails.  This function should not
    return.  By default, this is a function that calls ARGMATCH_DIE which
    in turn defaults to `exit (EXIT_FAILURE)'.  */
@@ -91,7 +86,7 @@
 int __xargmatch_internal (char const *context,
 			  char const *arg, char const *const *arglist,
 			  char const *vallist, size_t valsize,
-			  int case_sensitive, argmatch_exit_fn exit_fn);
+			  argmatch_exit_fn exit_fn);
 
 /* Programmer friendly interface to __xargmatch_internal. */
 
@@ -99,13 +94,7 @@
   ((Vallist) [__xargmatch_internal (Context, Arg, Arglist,	\
 				    (char const *) (Vallist),	\
 				    sizeof *(Vallist),		\
-				    1, argmatch_die)])
-
-# define XARGCASEMATCH(Context, Arg, Arglist, Vallist)		\
-  ((Vallist) [__xargmatch_internal (Context, Arg, Arglist,	\
-				    (char const *) (Vallist),	\
-				    sizeof *(Vallist),		\
-				    0, argmatch_die)])
+				    argmatch_die)])
 
 /* Convert a value into a corresponding argument. */