X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fstrcmpi.c;h=c45ce9dc555bca09df076bc581a36c566328da59;hb=6db7b4e474eae4e4113ce4f6e8bdad4ad44e94fd;hp=8c5ad454a779968f5f3c36f1244a6778e3331ad7;hpb=ccc1f449ac9245bfb35a9d0c23945bcecf1d8555;p=fw%2Fsdcc diff --git a/as/strcmpi.c b/as/strcmpi.c index 8c5ad454..c45ce9dc 100644 --- a/as/strcmpi.c +++ b/as/strcmpi.c @@ -10,6 +10,7 @@ */ #include +#include int as_strcmpi (const char *s1, const char *s2) { @@ -32,3 +33,23 @@ int as_strcmpi (const char *s1, const char *s2) return c1 - c2; } +int as_strncmpi (const char *s1, const char *s2, size_t n) +{ + const unsigned char *p1 = (const unsigned char *) s1; + const unsigned char *p2 = (const unsigned char *) s2; + unsigned char c1, c2; + + if ((p1 == p2) || (n == 0)) + return 0; + + do + { + c1 = tolower (*p1++); + c2 = tolower (*p2++); + if (c1 == '\0') + break; + } + while ((c1 == c2) && --n); + + return c1 - c2; +}