summaryrefslogtreecommitdiff
path: root/src/common/strlib.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-04-28 14:36:55 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-04-28 14:36:55 +0000
commitb36751b7970a699f453da471261d258868741281 (patch)
tree3a40aa654aeedc66df3a4b16baca9301769b75e9 /src/common/strlib.c
parent48ec7a6f080c568c771c27c1ee92008174f10388 (diff)
downloadhercules-b36751b7970a699f453da471261d258868741281.tar.gz
hercules-b36751b7970a699f453da471261d258868741281.tar.bz2
hercules-b36751b7970a699f453da471261d258868741281.tar.xz
hercules-b36751b7970a699f453da471261d258868741281.zip
- Added function stristr to strlib.c, used by mob.c and item_db.c for case-insensitive seeks.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6345 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/common/strlib.c')
-rw-r--r--src/common/strlib.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/strlib.c b/src/common/strlib.c
index 94f815839..d62bf4f46 100644
--- a/src/common/strlib.c
+++ b/src/common/strlib.c
@@ -4,6 +4,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <ctype.h>
#include "strlib.h"
#include "utils.h"
@@ -137,6 +138,40 @@ char *trim(char *str, const char *delim)
return str;
}
+
+//stristr: Case insensitive version of strstr, code taken from
+//http://www.daniweb.com/code/snippet313.html, Dave Sinkula
+//
+const char *stristr(const char *haystack, const char *needle)
+{
+ if ( !*needle )
+ {
+ return haystack;
+ }
+ for ( ; *haystack; ++haystack )
+ {
+ if ( toupper(*haystack) == toupper(*needle) )
+ {
+ /*
+ * Matched starting char -- loop through remaining chars.
+ */
+ const char *h, *n;
+ for ( h = haystack, n = needle; *h && *n; ++h, ++n )
+ {
+ if ( toupper(*h) != toupper(*n) )
+ {
+ break;
+ }
+ }
+ if ( !*n ) /* matched all of 'needle' to null termination */
+ {
+ return haystack; /* return the start of the match */
+ }
+ }
+ }
+ return 0;
+}
+
#ifdef __WIN32
char *_strtok_r(char *s1, const char *s2, char **lasts)
{