+2006-07-22 Bruno Haible <bruno@clisp.org>
+
+ * atexit.c: Update from gnulib.
+
+ * verify.h: New file, from gnulib.
+ * argmatch.h: Update from gnulib, keeping DLL_VARIABLE annotation.
+ * Makefile.am (libgettextlib_la_SOURCES): Add verify.h.
+
2006-07-21 Bruno Haible <bruno@clisp.org>
* gettext-0.15 released.
/* argmatch.c -- find a match for a string in an array
- Copyright (C) 1990, 1998-1999, 2001-2005 Free Software Foundation, Inc.
+ Copyright (C) 1990, 1998, 1999, 2001, 2002, 2003, 2004, 2005 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
\f
/* If ARG is an unambiguous match for an element of the
- null-terminated array ARGLIST, return the index in ARGLIST
+ 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).
/* argmatch.h -- definitions and prototypes for argmatch.c
- Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004 Free Software
+ Copyright (C) 1990, 1998, 1999, 2001, 2002, 2004, 2005 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
# include <stddef.h>
-# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
+# include "verify.h"
-# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
- (ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
+# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
/* Assert there are as many real arguments as there are values
- (argument list ends with a NULL guard). ARGMATCH_VERIFY is
- preferred, since it is guaranteed to be checked at compile-time.
- ARGMATCH_ASSERT is for backward compatibility only. */
-
-# define ARGMATCH_VERIFY(Arglist, Vallist) \
- struct argmatch_verify \
- { \
- char argmatch_verify[ARGMATCH_CONSTRAINT(Arglist, Vallist) ? 1 : -1]; \
- }
-
-# define ARGMATCH_ASSERT(Arglist, Vallist) \
- assert (ARGMATCH_CONSTRAINT (Arglist, Vallist))
+ (argument list ends with a NULL guard). */
+
+# define ARGMATCH_VERIFY(Arglist, Vallist) \
+ verify (ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
/* Return the index of the element of ARGLIST (NULL terminated) that
matches with ARG. If VALLIST is not NULL, then use it to resolve