Because the rules are more legible this way. Also, the parser doesn't accept strings on ranges, so, printing ranges numerically better match the rules definition. Fixes(Bug 1046 - mobility header with range gives illegible rule). Signed-off-by: Elise Lennion <elise.lennion@xxxxxxxxx> --- v2: Replace ternary operator with if statements. Remove the new NUMERIC_CONSTANT, now uses a value bigger than NUMERIC_ALL to print symbolic constants as numbers, this case is only met during expr_range_print. src/datatype.c | 8 +++++++- src/expression.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/datatype.c b/src/datatype.c index 1518606..d697a07 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -175,9 +175,15 @@ void symbolic_constant_print(const struct symbol_table *tbl, return expr_basetype(expr)->print(expr); if (quotes) - printf("\"%s\"", s->identifier); + printf("\""); + + if (numeric_output > NUMERIC_ALL) + printf("%lu", val); else printf("%s", s->identifier); + + if (quotes) + printf("\""); } static void switch_byteorder(void *data, unsigned int len) diff --git a/src/expression.c b/src/expression.c index 1567870..da94b79 100644 --- a/src/expression.c +++ b/src/expression.c @@ -597,9 +597,11 @@ struct expr *relational_expr_alloc(const struct location *loc, enum ops op, static void range_expr_print(const struct expr *expr) { + numeric_output += NUMERIC_ALL + 1; expr_print(expr->left); printf("-"); expr_print(expr->right); + numeric_output -= NUMERIC_ALL + 1; } static void range_expr_clone(struct expr *new, const struct expr *expr) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html