aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2003-08-05 00:01:27 +0000
committerGuy Harris <guy@alum.mit.edu>2003-08-05 00:01:27 +0000
commitd2e2149ff9a7beafe16c9766be2c61bd4d94c58e (patch)
tree3976a9ed962743195d6f6df5a6261db88679f3cf /file.c
parenta6e6a7a36464e493a236ba1db6ed2ce6c7ef6be9 (diff)
From Greg Morris: add support for case-insensitive full-text searches.
svn path=/trunk/; revision=8132
Diffstat (limited to 'file.c')
-rw-r--r--file.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/file.c b/file.c
index f5d075e7ad..b4e921a9ff 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.300 2003/07/22 23:08:47 guy Exp $
+ * $Id: file.c,v 1.301 2003/08/05 00:01:26 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1456,7 +1456,7 @@ get_int_value(char char_val)
}
gboolean
-find_ascii(capture_file *cf, char *ascii_text, gboolean ascii_search, char *ftype)
+find_ascii(capture_file *cf, char *ascii_text, gboolean ascii_search, char *ftype, gboolean case_type)
{
frame_data *start_fd;
frame_data *fdata;
@@ -1477,6 +1477,7 @@ find_ascii(capture_file *cf, char *ascii_text, gboolean ascii_search, char *ftyp
guint8 hex_val=0;
char char_val;
guint8 num1, num2;
+ gchar *uppercase;
start_fd = cf->current_frame;
if (start_fd != NULL) {
@@ -1486,6 +1487,10 @@ find_ascii(capture_file *cf, char *ascii_text, gboolean ascii_search, char *ftyp
count = 0;
fdata = start_fd;
+ if (case_type && ascii_search) {
+ g_strup(ascii_text);
+ }
+
cf->progbar_nextstep = 0;
/* When we reach the value that triggers a progress bar update,
bump that value by this amount. */
@@ -1554,7 +1559,13 @@ find_ascii(capture_file *cf, char *ascii_text, gboolean ascii_search, char *ftyp
frame_matched = FALSE;
buf_len = fdata->pkt_len;
for (i=0;i<buf_len;i++) {
- c_char = cf->pd[i];
+ if (ascii_search && case_type) {
+ uppercase = &cf->pd[i];
+ g_strup(uppercase);
+ c_char = uppercase[0];
+ }
+ else
+ c_char = cf->pd[i];
/* Check to see if this is an String or Hex search */
if (ascii_search) {
/* Now check the String Type */