Add epicsStrnCaseCmp().
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user