Main Page   Modules   Compound List   File List   Compound Members   File Members   Related Pages  

rpmio/strcasecmp.c

Go to the documentation of this file.
00001 
00005 #include "system.h"
00006 #include "rpmio.h"
00007 #include "debug.h"
00008 
00009 static inline unsigned char xtolower(unsigned char c)
00010 {
00011     return ((c >= 'A' && c <= 'Z') ? (c | 0x20) : c);
00012 }
00013 
00014 int xstrcasecmp(const char *s1, const char *s2)
00015 {
00016   const unsigned char *p1 = (const unsigned char *) s1;
00017   const unsigned char *p2 = (const unsigned char *) s2;
00018   unsigned char c1, c2;
00019 
00020   if (p1 == p2)
00021     return 0;
00022 
00023   do
00024     {
00025       c1 = xtolower (*p1++);
00026       c2 = xtolower (*p2++);
00027       if (c1 == '\0')
00028         break;
00029     }
00030   while (c1 == c2);
00031 
00032   return c1 - c2;
00033 }
00034 
00035 int xstrncasecmp(const char *s1, const char *s2, size_t n)
00036 {
00037   const unsigned char *p1 = (const unsigned char *) s1;
00038   const unsigned char *p2 = (const unsigned char *) s2;
00039   unsigned char c1, c2;
00040 
00041   if (p1 == p2 || n == 0)
00042     return 0;
00043 
00044   do
00045     {
00046       c1 = xtolower (*p1++);
00047       c2 = xtolower (*p2++);
00048       if (c1 == '\0' || c1 != c2)
00049         return c1 - c2;
00050     } while (--n > 0);
00051 
00052   return c1 - c2;
00053 }

Generated at Sun Apr 8 18:43:02 2001 for rpm by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000