}
static xlat_arg_parser_t const xlat_redundant_args[] = {
- { .type = FR_TYPE_VOID },
+ { .type = FR_TYPE_VOID, .variadic = XLAT_ARG_VARIADIC_EMPTY_KEEP },
XLAT_ARG_PARSER_TERMINATOR
};
if (comma) {
fr_assert(p_rules && p_rules->terminals);
- if (fr_sbuff_next_if_char(&our_in, ',')) {
- continue;
- }
+ if (fr_sbuff_next_if_char(&our_in, ',')) goto next;
if (fr_sbuff_is_char(&our_in, ')')) break;
fr_strerror_const("Unexpected text after argument");
goto error;
}
-
+ next:
if (!arg->variadic) {
arg++;
if (arg->type == FR_TYPE_NULL) {
- fr_strerror_printf("Too many arguments, expected %u", argc - 1);
+ fr_strerror_printf("Too many arguments, expected %u additional", argc - 1);
goto error;
}
}
test_fail
}
-result_string := "%urlunquote(%%E,123)"
+result_string := "%urlunquote('%%E, 123')"
# Test decoding invalid encoded string
if !(result_string == "") {