aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
Diffstat (limited to 'e-util')
-rw-r--r--e-util/ChangeLog4
-rw-r--r--e-util/e-util.c24
-rw-r--r--e-util/e-util.c-861124
-rw-r--r--e-util/e-util.h3
-rw-r--r--e-util/e-util.h-290023
5 files changed, 58 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index ba3b0abb95..bf68a708c3 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,7 @@
+2000-07-12 Christopher James Lahey <clahey@helixcode.com>
+
+ * e-util.c, e-util.h: Added e_strstrcase function.
+
2000-07-11 Christopher James Lahey <clahey@helixcode.com>
* e-canvas-vbox.c: Removed some debugging printfs.
diff --git a/e-util/e-util.c b/e-util/e-util.c
index 3dea9282c3..c8c60fe1b3 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -305,3 +305,27 @@ e_strsplit (const gchar *string,
return str_array;
}
+
+gchar *
+e_strstrcase (const gchar *haystack, const gchar *needle)
+{
+ /* find the needle in the haystack neglecting case */
+ gchar *ptr;
+ guint len;
+
+ g_return_val_if_fail (haystack != NULL, NULL);
+ g_return_val_if_fail (needle != NULL, NULL);
+
+ len = strlen(needle);
+ if (len > strlen(haystack))
+ return NULL;
+
+ if (len == 0)
+ return haystack;
+
+ for (ptr = (char *)haystack; *(ptr + len - 1) != '\0'; ptr++)
+ if (!g_strncasecmp(ptr, needle, len))
+ return ptr;
+
+ return NULL;
+}
diff --git a/e-util/e-util.c-8611 b/e-util/e-util.c-8611
index 3dea9282c3..c8c60fe1b3 100644
--- a/e-util/e-util.c-8611
+++ b/e-util/e-util.c-8611
@@ -305,3 +305,27 @@ e_strsplit (const gchar *string,
return str_array;
}
+
+gchar *
+e_strstrcase (const gchar *haystack, const gchar *needle)
+{
+ /* find the needle in the haystack neglecting case */
+ gchar *ptr;
+ guint len;
+
+ g_return_val_if_fail (haystack != NULL, NULL);
+ g_return_val_if_fail (needle != NULL, NULL);
+
+ len = strlen(needle);
+ if (len > strlen(haystack))
+ return NULL;
+
+ if (len == 0)
+ return haystack;
+
+ for (ptr = (char *)haystack; *(ptr + len - 1) != '\0'; ptr++)
+ if (!g_strncasecmp(ptr, needle, len))
+ return ptr;
+
+ return NULL;
+}
diff --git a/e-util/e-util.h b/e-util/e-util.h
index ab5325806b..25fd839e19 100644
--- a/e-util/e-util.h
+++ b/e-util/e-util.h
@@ -46,6 +46,9 @@ gchar **e_strsplit (const gchar *string,
const gchar *delimiter,
gint max_tokens);
+gchar *e_strstrcase (const gchar *haystack,
+ const gchar *needle);
+
void e_marshal_INT__INT_INT_POINTER (GtkObject * object,
GtkSignalFunc func,
gpointer func_data, GtkArg * args);
diff --git a/e-util/e-util.h-29002 b/e-util/e-util.h-29002
index ab5325806b..25fd839e19 100644
--- a/e-util/e-util.h-29002
+++ b/e-util/e-util.h-29002
@@ -46,6 +46,9 @@ gchar **e_strsplit (const gchar *string,
const gchar *delimiter,
gint max_tokens);
+gchar *e_strstrcase (const gchar *haystack,
+ const gchar *needle);
+
void e_marshal_INT__INT_INT_POINTER (GtkObject * object,
GtkSignalFunc func,
gpointer func_data, GtkArg * args);