diff --git a/src/libCom/misc/epicsString.c b/src/libCom/misc/epicsString.c index 23b91d3cd..5b6159129 100644 --- a/src/libCom/misc/epicsString.c +++ b/src/libCom/misc/epicsString.c @@ -16,7 +16,11 @@ #include #include #include -int dbTranslateEscape(char *to, const char *from) + +#define epicsExportSharedSymbols +#include "epicsString.h" + +epicsShareFunc int epicsShareAPI dbTranslateEscape(char *to, const char *from) { const char *pfrom = from; char *pto = to; @@ -81,3 +85,21 @@ int dbTranslateEscape(char *to, const char *from) *pto = '\0'; /*NOTE that nto does not have to be incremented*/ return(nto); } + +epicsShareFunc int epicsShareAPI epicsStrCaseCmp( + const char *s1, const char *s2, int n) +{ + size_t ind = 0; + int nexts1,nexts2; + + while(1) { + if(ind++ >= n) break; + nexts1 = toupper(*s1++); + nexts2 = toupper(*s2++); + if(nexts1==0) return( (nexts2==0) ? 0 : 1 ); + if(nexts2==0) return(-1); + if(nexts1nexts2) return(1); + } + return(0); +} diff --git a/src/libCom/misc/epicsString.h b/src/libCom/misc/epicsString.h index b28a782e8..796195b40 100644 --- a/src/libCom/misc/epicsString.h +++ b/src/libCom/misc/epicsString.h @@ -16,10 +16,15 @@ * returns the length of the resultant string (may contain nulls) */ +#include + #ifdef __cplusplus extern "C" { #endif -int dbTranslateEscape(char *s,const char *ct); + +epicsShareFunc int epicsShareAPI dbTranslateEscape(char *s,const char *ct); +epicsShareFunc int epicsShareAPI epicsStrCaseCmp( + const char *s1, const char *s2, int n); #ifdef __cplusplus }