diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2003-07-08 03:18:57 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2003-07-08 03:18:57 +0800 |
commit | 8bbe0f34af2bd9906012106d8ee27187f05b6a15 (patch) | |
tree | 5cfa51a91191b20ef2f1f765df6f99611041cae5 /camel/camel-string-utils.c | |
parent | 26709642fa1a39108690aa5295e1726a0861c58c (diff) | |
download | gsoc2013-evolution-8bbe0f34af2bd9906012106d8ee27187f05b6a15.tar.gz gsoc2013-evolution-8bbe0f34af2bd9906012106d8ee27187f05b6a15.tar.zst gsoc2013-evolution-8bbe0f34af2bd9906012106d8ee27187f05b6a15.zip |
Updated for string-utils namespace changes.
2003-07-07 Jeffrey Stedfast <fejj@ximian.com>
* camel-session.c (camel_session_init): Updated for string-utils
namespace changes.
* camel-provider.c: Updated for string-utils namespace changes.
* camel-mime-part.c (init_header_name_table): Updated for
string-utils namespace changes.
* camel-mime-message.c (camel_mime_message_class_init): Updated
for string-utils namespace changes.
(camel_mime_message_init): Same.
* camel-mime-filter-enriched.c
(camel_mime_filter_enriched_class_init): Updated for string-utils
namespace changes.
* camel-folder-summary.c (camel_folder_summary_init): Updated for
string-utils namespace changes.
* camel-string-utils.[c,h]: Renamed from string-utils.[c,h] and
also namespaced all functions.
svn path=/trunk/; revision=21751
Diffstat (limited to 'camel/camel-string-utils.c')
-rw-r--r-- | camel/camel-string-utils.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/camel/camel-string-utils.c b/camel/camel-string-utils.c new file mode 100644 index 0000000000..d9927d629a --- /dev/null +++ b/camel/camel-string-utils.c @@ -0,0 +1,110 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Authors: Jeffrey Stedfast <fejj@ximian.com> + * + * Copyright 2002 Ximian, Inc. (www.ximian.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. + * + */ + + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <string.h> + +#include "camel-string-utils.h" + + +int +camel_strcase_equal (gconstpointer a, gconstpointer b) +{ + return (g_ascii_strcasecmp ((const char *) a, (const char *) b) == 0); +} + +guint +camel_strcase_hash (gconstpointer v) +{ + const char *p = (char *) v; + guint h = 0, g; + + for ( ; *p != '\0'; p++) { + h = (h << 4) + g_ascii_toupper (*p); + if ((g = h & 0xf0000000)) { + h = h ^ (g >> 24); + h = h ^ g; + } + } + + return h; +} + + +static void +free_string (gpointer string, gpointer user_data) +{ + g_free (string); +} + +void +camel_string_list_free (GList *string_list) +{ + if (string_list == NULL) + return; + + g_list_foreach (string_list, free_string, NULL); + g_list_free (string_list); +} + +char * +camel_strstrcase (const char *haystack, const char *needle) +{ + /* find the needle in the haystack neglecting case */ + const char *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 (char *) haystack; + + for (ptr = haystack; *(ptr + len - 1) != '\0'; ptr++) + if (!strncasecmp (ptr, needle, len)) + return (char *) ptr; + + return NULL; +} + + +const char * +camel_strdown (char *str) +{ + register char *s = str; + + while (*s) { + if (*s >= 'A' && *s <= 'Z') + *s += 0x20; + s++; + } + + return str; +} |