Merge minor changes from coreutils.
[gnulib.git] / lib / argmatch.h
index 4b65ca4..ea0f468 100644 (file)
@@ -1,5 +1,7 @@
 /* argmatch.h -- definitions and prototypes for argmatch.c
-   Copyright (C) 1990, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+
+   Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004 Free Software
+   Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -13,7 +15,7 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* Written by David MacKenzie <djm@ai.mit.edu>
    Modified by Akim Demaille <demaille@inf.enst.fr> */
    false ambiguities (i.e., different matches of ARG but corresponding
    to the same values in VALLIST).  */
 
-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);
+ptrdiff_t argmatch (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)'.  */
+   in turn defaults to `exit (exit_failure)'.  */
 typedef void (*argmatch_exit_fn) (void);
 extern argmatch_exit_fn argmatch_die;
 
 /* Report on stderr why argmatch failed.  Report correct values. */
 
-void argmatch_invalid (char const *context, char const *value, int problem);
+void argmatch_invalid (char const *context, char const *value,
+                      ptrdiff_t problem);
 
 /* Left for compatibility with the old name invalid_arg */
 
@@ -88,10 +86,10 @@ void argmatch_valid (char const *const *arglist,
 /* Same as argmatch, but upon failure, reports a explanation on the
    failure, and exits using the function EXIT_FN. */
 
-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);
+ptrdiff_t __xargmatch_internal (char const *context,
+                               char const *arg, char const *const *arglist,
+                               char const *vallist, size_t valsize,
+                               argmatch_exit_fn exit_fn);
 
 /* Programmer friendly interface to __xargmatch_internal. */
 
@@ -99,13 +97,7 @@ int __xargmatch_internal (char const *context,
   ((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. */