[w3m-dev 03207] strchr(), strcasecmp(), and strncasecmp()
* etc.c (strchr): removed (strcasecmp): removed (strncasecmp): removed * indep.c (strchr): moved, cast (strcasecmp): moved, fix the case that s1 = "" (strncasecmp): moved, fix the case that s1 is shorter than s2 * indep.h (strchr): added (strcasecmp): added (strncasecmp): added From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
This commit is contained in:
46
indep.c
46
indep.c
@@ -1,4 +1,4 @@
|
||||
/* $Id: indep.c,v 1.21 2001/12/26 17:57:57 ukai Exp $ */
|
||||
/* $Id: indep.c,v 1.22 2002/06/07 15:46:44 ukai Exp $ */
|
||||
#include "fm.h"
|
||||
#include <stdio.h>
|
||||
#include <pwd.h>
|
||||
@@ -193,6 +193,50 @@ expandPath(char *name)
|
||||
return extpath->ptr;
|
||||
}
|
||||
|
||||
#ifndef HAVE_STRCHR
|
||||
char *
|
||||
strchr(const char *s, int c)
|
||||
{
|
||||
while (*s) {
|
||||
if ((unsigned char)*s == c)
|
||||
return (char *)s;
|
||||
s++;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif /* not HAVE_STRCHR */
|
||||
|
||||
#ifndef HAVE_STRCASECMP
|
||||
int
|
||||
strcasecmp(const char *s1, const char *s2)
|
||||
{
|
||||
int x;
|
||||
while (*s1) {
|
||||
x = tolower(*s1) - tolower(*s2);
|
||||
if (x != 0)
|
||||
return x;
|
||||
s1++;
|
||||
s2++;
|
||||
}
|
||||
return -tolower(*s2);
|
||||
}
|
||||
|
||||
int
|
||||
strncasecmp(const char *s1, const char *s2, size_t n)
|
||||
{
|
||||
int x;
|
||||
while (*s1 && n) {
|
||||
x = tolower(*s1) - tolower(*s2);
|
||||
if (x != 0)
|
||||
return x;
|
||||
s1++;
|
||||
s2++;
|
||||
n--;
|
||||
}
|
||||
return n ? -tolower(*s2) : 0;
|
||||
}
|
||||
#endif /* not HAVE_STRCASECMP */
|
||||
|
||||
#ifndef HAVE_STRCASESTR
|
||||
/* string search using the simplest algorithm */
|
||||
char *
|
||||
|
Reference in New Issue
Block a user