diff options
author | João Valverde <j@v6e.pt> | 2022-04-11 16:07:13 +0100 |
---|---|---|
committer | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2022-04-11 21:03:06 +0000 |
commit | 2f02cd6e19ec8d0cfcb24942052ec133a183dbf3 (patch) | |
tree | f6a118243fc3b61a8f307acc9de4d0abead702df /dftest.c | |
parent | ceef8aa8eebf7d94318d315ba3782bd1aab15fce (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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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(); |