From b0cbeaf5f6a1ae7326981989b119cce8fb37e86b Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Tue, 23 Aug 2011 10:15:56 +0900 Subject: [PATCH] [util] add strcasestr related util function Change-Id: I7e64ec774b74cf18a853f6947c9536d023d5d821 --- configure.ac | 1 + src/lib/elm_entry.c | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 59a5f8f..45c83ab 100755 --- a/configure.ac +++ b/configure.ac @@ -175,6 +175,7 @@ dnl managed by evil have_socket="yes" ;; esac +AC_CHECK_FUNCS(strcasestr, AC_DEFINE(HAVE_STRCASESTR)) AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"]) m4_ifdef([v_mic], diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 8d4f861..1c9f3b3 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -1689,6 +1689,27 @@ _entry_length_get(Evas_Object *obj) return len; } +#ifndef HAVE_STRCASESTR +char* _strcasestr(const char *s, const char *find) +{ + char c, sc; + size_t len; + + if ((c = *find++) != 0) { + c = tolower((unsigned char) c); + len = strlen(find); + do { + do { + if( (sc = *s++) == 0) + return NULL; + } while ((char)tolower((unsigned char)sc) != c); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char*) s); +} +#endif + static void _matchlist_show(void *data) { @@ -1733,7 +1754,11 @@ _matchlist_show(void *data) if (wd->matchlist_case_sensitive) str_result = strstr(str_list, text); else - str_result = strcasestr(str_list, text); +#ifdef HAVE_STRCASESTR + str_result = strcasestr(str_list, text); +#else + str_result = _strcasestr(str_list, text); +#endif if (str_result) { -- 2.7.4