diff options
Diffstat (limited to 'dfilter-scanner.l')
-rw-r--r-- | dfilter-scanner.l | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/dfilter-scanner.l b/dfilter-scanner.l index b6bab0d9e2..1bf22ac53b 100644 --- a/dfilter-scanner.l +++ b/dfilter-scanner.l @@ -3,7 +3,7 @@ /* dfilter-scanner.l * Scanner for display filters * - * $Id: dfilter-scanner.l,v 1.18 1999/10/11 17:04:33 deniel Exp $ + * $Id: dfilter-scanner.l,v 1.19 1999/10/12 04:21:10 gram Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@zing.org> @@ -132,6 +132,25 @@ le|\<\= { dfilter_lval.operand = TOK_LE; return TOK_LE; } return T_VAL_BYTE_RANGE; } +\[{whitespace}*-?[0-9]+{whitespace}*\] { /* range [ x ] */ + + char *byterange_string = g_strdup(yytext); + char *s = byterange_string + 1; /* I don't want the first '[' */ + char *p; + + /* Get the offset from the string */ + if ((p = strtok(s, "]"))) { + dfilter_lval.byte_range.offset = strtol(p, NULL, 10); + } + else { + g_free(byterange_string); + return 0; + } + + dfilter_lval.byte_range.length = 0; + g_free(byterange_string); + return T_VAL_BYTE_RANGE; +} {hex}({hexsep}{hex})+ { /* byte string, any length */ dfilter_lval.string = g_strdup(yytext); |