1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-08-13 05:32:19 +02:00

(GL_CONCAT): Remove.

Include "verify.h" instead.
(ARGMATCH_CONSTRAINT, ARGMATCH_ASSERT): Remove.
(ARGMATCH_VERIFY): Rewrite in terms of new verify macros.
This commit is contained in:
Paul Eggert
2005-09-22 06:39:14 +00:00
parent 99eda9943e
commit 75b92233d8
+3 -22
View File
@@ -25,34 +25,15 @@
# include <stddef.h>
# ifndef verify_dcl
# define GL_CONCAT0(x, y) x##y
# define GL_CONCAT(x, y) GL_CONCAT0 (x, y)
/* Verify requirement, R, at compile-time, as a declaration.
The implementation uses a struct declaration whose name includes the
expansion of __LINE__, so there is a small chance that two uses of
verify_dcl from different files will end up colliding (for example,
f.c includes f.h and verify_dcl is used on the same line in each). */
# define verify_dcl(R) \
struct GL_CONCAT (ct_assert_, __LINE__) { char a[(R) ? 1 : -1]; }
# endif
# include "verify.h"
# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
# define ARGMATCH_CONSTRAINT(Arglist, Vallist) \
(ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
/* 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. */
(argument list ends with a NULL guard). */
# define ARGMATCH_VERIFY(Arglist, Vallist) \
verify_dcl (ARGMATCH_CONSTRAINT (Arglist, Vallist))
# define ARGMATCH_ASSERT(Arglist, Vallist) \
assert (ARGMATCH_CONSTRAINT (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