00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <string.h>
00025 #include <ctype.h>
00026
00027 #include "debug.h"
00028 #include "Memory.h"
00029 #include "Common.h"
00030
00031
00032 int common_stricmp(const char *s1, const char *s2)
00033 {
00034 register const unsigned char *p1 = (const unsigned char *) s1;
00035 register const unsigned char *p2 = (const unsigned char *) s2;
00036 register int ret;
00037 unsigned char c1;
00038
00039 if (p1 == p2) return 0;
00040
00041 for (; !(ret = (c1 = tolower(*p1)) - tolower(*p2)); p1++, p2++)
00042 if (c1 == '\0') break;
00043 return ret;
00044 }
00045
00046 char *common_GetAttr(const char **atts, char *attname)
00047 {
00048 int i;
00049 char *ret=NULL;
00050
00051 if(atts!=NULL&&attname!=NULL)
00052 {
00053 for(i=0;atts[i]!=NULL;i+=2) if(strcmp(atts[i],attname)==0) { ret=(char *)atts[i+1]; break; }
00054 }
00055
00056 return(ret);
00057 }
00058
00059
00060 char *common_strdup(const char *s)
00061 {
00062 char *ret=NULL;
00063
00064 if(s!=NULL&&NULL!=(ret=mem_malloc(strlen(s)+1)))
00065 {
00066 strcpy(ret,s);
00067 }
00068
00069 return(ret);
00070 }