aboutsummaryrefslogtreecommitdiffstats
path: root/dftest.c
diff options
context:
space:
mode:
authorJoão Valverde <j@v6e.pt>2022-04-11 16:07:13 +0100
committerJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2022-04-11 21:03:06 +0000
commit2f02cd6e19ec8d0cfcb24942052ec133a183dbf3 (patch)
treef6a118243fc3b61a8f307acc9de4d0abead702df /dftest.c
parentceef8aa8eebf7d94318d315ba3782bd1aab15fce (diff)
dfilter: Handle missing error location more gracefully
If we don't have an offset, don't print anything with underline. Also it can underline filters using macros correctly now. $ tshark -Y 'ip and ${private_ipv4:ip.sr}' -r /dev/null tshark: Left side of "==" expression must be a field or function, not "ip.sr". ip and ip.sr == 192.168.0.0/16 or ip.sr == 172.16.0.0/12 or ip.sr == 10.0.0.0/8 ^~~~~
Diffstat (limited to 'dftest.c')
-rw-r--r--dftest.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/dftest.c b/dftest.c
index 6a495e9b82..331a0f9e4b 100644
--- a/dftest.c
+++ b/dftest.c
@@ -167,9 +167,11 @@ main(int argc, char **argv)
if (!dfilter_compile_real(expanded_text, &df, &err_msg, &err_loc,
"dftest", TRUE, FALSE)) {
fprintf(stderr, "dftest: %s\n", err_msg);
- fprintf(stderr, "\t%s\n", expanded_text);
- fputc('\t', stderr);
- putloc(stderr, err_loc.col_start, err_loc.col_len);
+ if (err_loc.col_start >= 0) {
+ fprintf(stderr, "\t%s\n", expanded_text);
+ fputc('\t', stderr);
+ putloc(stderr, err_loc.col_start, err_loc.col_len);
+ }
g_free(err_msg);
g_free(expanded_text);
epan_cleanup();