From 08e164ce10fa25a47fffe0cd32948b5ee2cd27aa Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Tue, 9 Oct 2012 15:14:24 +0000 Subject: [PATCH] casestartswith() macro to help strncasecmp() with static comparison. SVN revision: 77654 --- src/bin/termiolink.c | 4 ++-- src/bin/utils.c | 12 ++++++------ src/bin/utils.h | 3 +++ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/bin/termiolink.c b/src/bin/termiolink.c index 4fd1302..47fcfae 100644 --- a/src/bin/termiolink.c +++ b/src/bin/termiolink.c @@ -83,8 +83,8 @@ _termio_link_find(Evas_Object *obj, int cx, int cy, int *x1r, int *y1r, int *x2r else if (s[0] == '\'') endmatch = '\''; else if (s[0] == '`') endmatch = '\''; else if (s[0] == '<') endmatch = '>'; - if ((!strncasecmp((s + 1), "www.", 4)) || - (!strncasecmp((s + 1), "ftp.", 4)) || + if ((casestartswith((s + 1), "www.")) || + (casestartswith((s + 1), "ftp.")) || (s[1] == '/')) { goback = EINA_FALSE; diff --git a/src/bin/utils.c b/src/bin/utils.c index 5a39d22..0e735fa 100644 --- a/src/bin/utils.c +++ b/src/bin/utils.c @@ -54,10 +54,10 @@ theme_auto_reload_enable(Evas_Object *edje) Eina_Bool link_is_protocol(const char *str) { - if ((!strncasecmp(str, "http://", 7))|| - (!strncasecmp(str, "https://", 8)) || - (!strncasecmp(str, "ftp://", 6)) || - (!strncasecmp(str, "file://", 7))) + if (casestartswith(str, "http://") || + casestartswith(str, "https://") || + casestartswith(str, "ftp://") || + casestartswith(str, "file://")) return EINA_TRUE; return EINA_FALSE; } @@ -66,8 +66,8 @@ Eina_Bool link_is_url(const char *str) { if (link_is_protocol(str) || - (!strncasecmp(str, "www.", 4)) || - (!strncasecmp(str, "ftp.", 4))) + casestartswith(str, "www.") || + casestartswith(str, "ftp.")) return EINA_TRUE; return EINA_FALSE; } diff --git a/src/bin/utils.h b/src/bin/utils.h index 52e9dbf..e26c403 100644 --- a/src/bin/utils.h +++ b/src/bin/utils.h @@ -12,4 +12,7 @@ Eina_Bool link_is_protocol(const char *str); Eina_Bool link_is_url(const char *str); Eina_Bool link_is_email(const char *str); +#define casestartswith(str, constref) \ + (!strncasecmp(str, constref, sizeof(constref) - 1)) + #endif