diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2016-02-23 09:30:48 +0100 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2016-02-23 18:30:48 +0000 |
commit | b5ac91399cccdf065d065497c83ca8e8ac864fe7 (patch) | |
tree | 79380a0c9d60c926463c5de9ad776191329a4f8c /file.c | |
parent | 0ef196a643daf3e9654dd118cddbec5c80f7f6ff (diff) | |
download | wireshark-b5ac91399cccdf065d065497c83ca8e8ac864fe7.tar.gz |
Qt: Select matching tree item and bytes in Find Packet
Highlight the matching tree item and matching packet bytes when
doing a Find Packet. Added cf->search_len to correctly highlight
the matching bytes when doing a regex search.
Bug: 12157
Change-Id: I84fbdb9b43be4355e24aff3cf5f8850f1119e2bf
Reviewed-on: https://code.wireshark.org/review/14086
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -3084,6 +3084,7 @@ match_narrow_and_wide(capture_file *cf, frame_data *fdata, void *criterion) result = MR_MATCHED; cf->search_pos = i; /* Save the position of the last character for highlighting the field. */ + cf->search_len = (guint32)textlen; break; } } @@ -3131,6 +3132,7 @@ match_narrow(capture_file *cf, frame_data *fdata, void *criterion) result = MR_MATCHED; cf->search_pos = i; /* Save the position of the last character for highlighting the field. */ + cf->search_len = (guint32)textlen; break; } } @@ -3178,6 +3180,7 @@ match_wide(capture_file *cf, frame_data *fdata, void *criterion) result = MR_MATCHED; cf->search_pos = i; /* Save the position of the last character for highlighting the field. */ + cf->search_len = (guint32)textlen; break; } i += 1; @@ -3221,6 +3224,7 @@ match_binary(capture_file *cf, frame_data *fdata, void *criterion) result = MR_MATCHED; cf->search_pos = i; /* Save the position of the last character for highlighting the field. */ + cf->search_len = (guint32)datalen; break; } } @@ -3251,7 +3255,8 @@ match_regex(capture_file *cf, frame_data *fdata, void *criterion _U_) { gint start_pos = 0, end_pos = 0; g_match_info_fetch_pos (match_info, 0, &start_pos, &end_pos); - cf->search_pos = end_pos; /* TODO: use start_pos to show correct length for regex */ + cf->search_pos = end_pos - 1; + cf->search_len = end_pos - start_pos; result = MR_MATCHED; } return result; @@ -3493,6 +3498,7 @@ find_packet(capture_file *cf, found = packet_list_select_row_from_data(new_fd); cf->search_in_progress = FALSE; cf->search_pos = 0; /* Reset the position */ + cf->search_len = 0; /* Reset length */ if (!found) { /* We didn't find a row corresponding to this frame. This means that the frame isn't being displayed currently, |