60 |
BUILTIN(errprint, FALSE, FALSE, 0, -1 ) \ |
BUILTIN(errprint, FALSE, FALSE, 0, -1 ) \ |
61 |
BUILTIN(eval, FALSE, TRUE, 2, 4 ) \ |
BUILTIN(eval, FALSE, TRUE, 2, 4 ) \ |
62 |
BUILTIN(ifdef, FALSE, TRUE, 3, 4 ) \ |
BUILTIN(ifdef, FALSE, TRUE, 3, 4 ) \ |
63 |
BUILTIN(ifelse, FALSE, TRUE, 4, -1 ) \ |
BUILTIN(ifelse, FALSE, TRUE, -1, -1 ) \ |
64 |
BUILTIN(include, FALSE, TRUE, 2, 2 ) \ |
BUILTIN(include, FALSE, TRUE, 2, 2 ) \ |
65 |
BUILTIN(incr, FALSE, TRUE, 2, 2 ) \ |
BUILTIN(incr, FALSE, TRUE, 2, 2 ) \ |
66 |
BUILTIN(index, FALSE, TRUE, 3, 3 ) \ |
BUILTIN(index, FALSE, TRUE, 3, 3 ) \ |
252 |
{ |
{ |
253 |
const char *result; |
const char *result; |
254 |
|
|
255 |
|
/* The valid ranges of argc for ifelse is discontinuous, we cannot |
256 |
|
rely on the regular mechanisms. */ |
257 |
if (argc == 2) |
if (argc == 2) |
258 |
return; |
return; |
259 |
|
|
260 |
|
if (m4_bad_argc (argv[0], argc, 4, -1)) |
261 |
|
return; |
262 |
else |
else |
263 |
/* Diagnose excess arguments if 5, 8, 11, etc., actual arguments. */ |
/* Diagnose excess arguments if 5, 8, 11, etc., actual arguments. */ |
264 |
m4_bad_argc (argv[0], (argc + 2) % 3, -1, 1); |
m4_bad_argc (argv[0], (argc + 2) % 3, -1, 1); |