Add epicsStrnCaseCmp().

This commit is contained in:
W. Eric Norum
2004-01-13 23:07:11 +00:00
parent ca87b50a5a
commit 4dc47cc3c7
4 changed files with 44 additions and 17 deletions
+3
View File
@@ -16,6 +16,9 @@
<h2>Changes since 3.14.4</h2>
</center>
<h4>New epicsString.h function</h4>
<p>A new function epicsStrnCaseCmp has been added. It is like strncmp except
that it ignores case.</p>
<h4>R3.13 compatability files</h4>
+16
View File
@@ -88,6 +88,22 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from)
}
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
const char *s1, const char *s2)
{
int nexts1,nexts2;
while(1) {
nexts1 = toupper(*s1++);
nexts2 = toupper(*s2++);
if(nexts1==0) return( (nexts2==0) ? 0 : 1 );
if(nexts2==0) return(-1);
if(nexts1<nexts2) return(-1);
if(nexts1>nexts2) return(1);
}
return(0);
}
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(
const char *s1, const char *s2, int n)
{
size_t ind = 0;
+2 -2
View File
@@ -23,8 +23,8 @@ extern "C" {
#endif
epicsShareFunc int epicsShareAPI dbTranslateEscape(char *s,const char *ct);
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
const char *s1, const char *s2, int n);
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(const char *s1,const char *s2);
epicsShareFunc int epicsShareAPI epicsStrnCaseCmp(const char *s1,const char *s2, int n);
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s);
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
FILE *fp, const char *s, int n);
+23 -15
View File
@@ -23,20 +23,28 @@
int epicsStringTest()
{
if(epicsStrCaseCmp("","",0)!=0) printf("case 1 failed\n");
if(epicsStrCaseCmp("","",1)!=0) printf("case 2 failed\n");
if(epicsStrCaseCmp(" ","",1)!=-1) printf("case 3 failed\n");
if(epicsStrCaseCmp(""," ",1)!=1) printf("case 4 failed\n");
if(epicsStrCaseCmp("a","A",1)!=0) printf("case 5 failed\n");
if(epicsStrCaseCmp("a","A",2)!=0) printf("case 6 failed\n");
if(epicsStrCaseCmp("abcd","ABCD",2)!=0) printf("case 7 failed\n");
if(epicsStrCaseCmp("abcd","ABCD",4)!=0) printf("case 8 failed\n");
if(epicsStrCaseCmp("abcd","ABCD",1000)!=0) printf("case 9 failed\n");
if(epicsStrCaseCmp("abcd","ABCDE",2)!=0) printf("case 10 failed\n");
if(epicsStrCaseCmp("abcd","ABCDE",4)!=0) printf("case 11 failed\n");
if(epicsStrCaseCmp("abcd","ABCDE",1000)!=1) printf("case 12 failed\n");
if(epicsStrCaseCmp("abcde","ABCD",2)!=0) printf("case 13 failed\n");
if(epicsStrCaseCmp("abcde","ABCD",4)!=0) printf("case 14 failed\n");
if(epicsStrCaseCmp("abcde","ABCD",1000)!=-1) printf("case 15 failed\n");
if(epicsStrnCaseCmp("","",0)!=0) printf("case 1 failed\n");
if(epicsStrnCaseCmp("","",1)!=0) printf("case 2 failed\n");
if(epicsStrnCaseCmp(" ","",1)!=-1) printf("case 3 failed\n");
if(epicsStrnCaseCmp(""," ",1)!=1) printf("case 4 failed\n");
if(epicsStrnCaseCmp("a","A",1)!=0) printf("case 5 failed\n");
if(epicsStrnCaseCmp("a","A",2)!=0) printf("case 6 failed\n");
if(epicsStrnCaseCmp("abcd","ABCD",2)!=0) printf("case 7 failed\n");
if(epicsStrnCaseCmp("abcd","ABCD",4)!=0) printf("case 8 failed\n");
if(epicsStrnCaseCmp("abcd","ABCD",1000)!=0) printf("case 9 failed\n");
if(epicsStrnCaseCmp("abcd","ABCDE",2)!=0) printf("case 10 failed\n");
if(epicsStrnCaseCmp("abcd","ABCDE",4)!=0) printf("case 11 failed\n");
if(epicsStrnCaseCmp("abcd","ABCDE",1000)!=1) printf("case 12 failed\n");
if(epicsStrnCaseCmp("abcde","ABCD",2)!=0) printf("case 13 failed\n");
if(epicsStrnCaseCmp("abcde","ABCD",4)!=0) printf("case 14 failed\n");
if(epicsStrnCaseCmp("abcde","ABCD",1000)!=-1) printf("case 15 failed\n");
if(epicsStrCaseCmp("","")!=0) printf("case 16 failed\n");
if(epicsStrCaseCmp("a","A")!=0) printf("case 17 failed\n");
if(epicsStrCaseCmp("abcd","ABCD")!=0) printf("case 18 failed\n");
if(epicsStrCaseCmp("abcd","ABCDE")==0) printf("case 19 failed\n");
if(epicsStrCaseCmp("abcde","ABCD")==0) printf("case 20 failed\n");
if(epicsStrCaseCmp("abcde","ABCDF")==0) printf("case 21 failed\n");
return(0);
}