5#include "tpcclibConfig.h"
33 if(s1==NULL || s2==NULL ||
strnlen(s1, 1)==0 ||
strnlen(s2, 1)==0)
return(0);
38 i=strspn(cptr, s2); cptr+=i;
40 i=strcspn(cptr, s2); cptr+=i;
if(i>0) n++;
67 if(s3!=NULL && count>0) s3[0]=(char)0;
68 if(s1==NULL || s2==NULL || strlen(s1)==0 || strlen(s2)==0)
return(0);
69 if(i<1 || s3==NULL || count<2)
return(0);
74 j=strspn(cptr, s2); cptr+=j;
76 j=strcspn(cptr, s2);
if(j>0) n++;
79 if(j>count-1) j=count-1;
85 if(n>i) {s3[0]=(char)0;
return(0);}
104 unsigned int n=0, i, j;
105 if(s1==NULL || s2==NULL || strlen(s1)==0 || strlen(s2)==0)
return (
int)n;
106 for(i=0; i<strlen(s1); i++)
107 for(j=0; j<strlen(s2); j++)
108 if(s1[i]==s2[j]) n++;
123 if(s==NULL || strlen(s)==0)
return (
int)n;
124 for(i=0; i<strlen(s); i++)
if(isupper(s[i])) n++;
143 if(s==NULL || strlen(s)==0)
return;
144 while((cptr=strchr(s, c1))!=NULL) *cptr=c2;
150#ifndef HAVE_STRCASESTR
157 const char *haystack,
161 if(!haystack || !*haystack || !needle || !*needle)
return 0;
163 const char *s=haystack, *p=needle;
165 if(!*p)
return(
char*)haystack;
166 if((*p==*s) || (tolower(*p)==tolower(*s))) {
169 p=needle;
if(!*s)
return(NULL);
173 return *p ? NULL : (
char*)haystack;
189 if(s==NULL)
return NULL;
190 size_t length=strlen(s)+1;
192 r=calloc(length,
sizeof(
char));
if(r==NULL)
return NULL;
193 return (
char*)memcpy(r, s, length);
212 void *r; r=calloc(length+1,
sizeof(
char));
if(r==NULL)
return NULL;
213 return (
char*)memcpy(r, s, length);
227 const char *haystack,
231 if(haystack==NULL)
return((
char*)NULL);
232 if(needle==NULL)
return((
char*)haystack);
235 int single_quotation=0;
236 int double_quotation=0;
239 test_len=strlen(needle);
if(test_len<1)
return((
char*)haystack);
240 for(i=0, cptr=(
char*)haystack; i<strlen(haystack); i++, cptr++) {
242 if(single_quotation==0 && strchr(cptr+1,
'\'')!=NULL) single_quotation=1;
243 else single_quotation=0;
247 if(double_quotation==0 && strchr(cptr+1,
'\"')!=NULL) double_quotation=1;
248 else double_quotation=0;
251 if(single_quotation==1 || double_quotation==1)
continue;
252 if(strncmp(cptr, needle, test_len)==0)
return(cptr);
274 if(s1==NULL)
return(0);
275 s1[0]=(char)0;
if(maxlen<1)
return(0);
276 if(maxlen<2) {strcpy(s1,
"");
return(0);}
277 if(s2==NULL || strlen(s2)<1)
return(0);
282 cptr=(
char*)s2; cptr+=strspn(s2,
"\t\n\r ");
283 strlcpy(s1, cptr, maxlen); i=strlen(s1);
if(i<1)
return(0);
286 if(*cptr!=
'\t' && *cptr!=
'\n' && *cptr!=
'\r' && *cptr!=
' ')
break;
287 i--; s1[i]=(char)0; cptr--;
304 if(s==NULL)
return 0;
305 int len=strlen(s);
if(len<0)
return 0;
306 char *s2; s2=
strdup(s);
if(s2==NULL)
return(1);
308 if(n<1) strcpy(s,
"");
else strcpy(s, s2);
330 if(s1==NULL)
return(0);
331 s1[0]=(char)0;
if(maxlen<1)
return(0);
332 if(maxlen<2) {strcpy(s1,
"");
return(0);}
333 if(s2==NULL || strlen(s2)<1)
return(0);
339 tmp=calloc(strlen(s2)+1,
sizeof(
char));
343 if(i<1) {strcpy(s1,
""); free(tmp);
return(0);}
352 if(sqn==0 && dqn==0) {i=0;
break;}
354 if(dqn>=2 && tmp[0]==
'\"' && tmp[strlen(tmp)-1]==
'\"') {
355 tmp[0]=
' '; tmp[strlen(tmp)-1]=(char)0; dqn-=2; m+=2;
357 if(sqn>=2 && tmp[0]==
'\'' && tmp[strlen(tmp)-1]==
'\'') {
358 tmp[0]=
' '; tmp[strlen(tmp)-1]=(char)0; sqn-=2; m+=2;
362 if(tmp[0]==
'\'') {tmp[0]=
' '; sqn--; m++;}
363 else if(tmp[strlen(tmp)-1]==
'\'') {tmp[strlen(tmp)-1]=(char)0; sqn--; m++;}
366 if(tmp[0]==
'\"') {tmp[0]=
' '; dqn--; m++;}
367 else if(tmp[strlen(tmp)-1]==
'\"') {tmp[strlen(tmp)-1]=(char)0; dqn--; m++;}
370 if(m==0) {i=0;
break;}
393 if(s==NULL)
return 0;
394 int len=strlen(s);
if(len<0)
return 0;
395 char *s2; s2=calloc(len+1,
sizeof(
char));
if(s2==NULL)
return(1);
397 if(n<1) strcpy(s,
"");
else strcpy(s, s2);
421 if(next!=NULL) *next=0;
422 if(s1==NULL)
return NULL;
424 char *s3=NULL, *cptr;
428 if(s2==NULL || strlen(s2)<1) {
429 s3=
strdup(s1);
if(next!=NULL) *next=strlen(s1);
433 cptr=(
char*)s1; j=strspn(cptr, s2); cptr+=j;
if(next!=NULL) *next=j;
435 j=strcspn(cptr, s2);
if(j==0) {
return NULL;}
436 if(next!=NULL) *next+=j;
438 s3=calloc(j+1,
sizeof(
char));
if(s3==NULL)
return NULL;
457 if(s==NULL)
return 0;
458 int len=strlen(s);
if(len<2)
return 0;
459 if(s[0]==
'(' && s[len-1]==
')')
return 1;
460 if(s[0]==
'{' && s[len-1]==
'}')
return 1;
461 if(s[0]==
'[' && s[len-1]==
']')
return 1;
483 for(
int i=1; i<=len; i++) s[i-1]=s[i];
505 char tmp[128]; sprintf(tmp,
"%d", n);
506 return strncat(str1, tmp, count);
527 char tmp[128]; sprintf(tmp,
"%g", d);
528 return strncat(str1, tmp, count);
551 if(n<0) strncat(str1,
"-", count);
552 char tmp[128]; sprintf(tmp,
"%d", abs(maxn));
554 sprintf(tmp,
"%0*d", len, abs(n));
555 return strncat(str1, tmp, count);
573 if(s==NULL)
return(0);
576 while(i<n && *ps!=
'\0') {i++; ps++;}
608 if(s==NULL)
return(dlen);
610 if(n==0)
return(dlen+strlen(s));
613 if(n!=1) {*d=*s; d++; n--;}
617 return(dlen+(s-src));
642 if(dstsize>0) dst[0]=
'\0';
643 if(strlen(src)==0)
return(0);
651 if(n!=0)
while(--n!=0) {*d=*s;
if(*d==
'\0') {d++; s++;
break;} d++; s++;}
653 if(dstsize!=0) *d=
'\0';
675 if(s==NULL)
return(1);
676 int len=strlen(s);
if(len<1)
return(1);
677 for(
int i=0; i<len; i++)
if(!isspace(s[i]))
return(0);
694 if(s1==NULL || s2==NULL)
return(s1);
695 int n=strlen(s2);
if(n<1)
return(s1);
698 if(cptr==NULL || *cptr==(
char)0)
return(s1);
700 while(*cptr) {*cptr=cptr[n]; cptr++;}
716 if(s==NULL || t==0)
return(s);
717 size_t len=strlen(s);
if(len<1)
return(s);
718 if(t>=len) {s[0]=(char)0;
return(s);}
719 memmove(s, s+t, 1+len-t);
735 if(s==NULL)
return(NULL);
738 for(
size_t i=0; i<strlen(s); i++) {
739 if(s[i]==
'&') {n++;
continue;}
740 if(s[i]==
'\'') {n++;
continue;}
741 if(s[i]==
'\"') {n++;
continue;}
742 if(s[i]==
'<') {n++;
continue;}
743 if(s[i]==
'>') {n++;
continue;}
745 if(n==0)
return(NULL);
747 n*=5; n+=strlen(s)+1;
748 char *ns=(
char*)malloc(n*
sizeof(
char));
749 if(ns==NULL)
return(NULL);
751 for(
int i=0; i<n; i++) ns[i]=(
char)0;
752 for(
size_t i=0; i<strlen(s); i++) {
753 if(s[i]==
'&') {strcat(ns,
"&");
continue;}
754 if(s[i]==
'\'') {strcat(ns,
"'");
continue;}
755 if(s[i]==
'\"') {strcat(ns,
""");
continue;}
756 if(s[i]==
'<') {strcat(ns,
"<");
continue;}
757 if(s[i]==
'>') {strcat(ns,
">");
continue;}
773 if(s==NULL || *s==
'\0')
return;
int strTokenNr(const char *s1, const char *s2)
void strReplaceChar(char *s, char c1, char c2)
void strCleanForXML(char *s)
char * strstrNoQuotation(const char *haystack, const char *needle)
char * strdup(const char *s)
char * strncatIntZ(char *str1, const int n, const int maxn, size_t count)
int strCleanSpaces(char *s)
char * strncatDouble(char *str1, const double d, size_t count)
void strCleanPars(char *s)
char * strEncodeForXML(const char *s)
char * strTrimLeft(char *s, const size_t t)
size_t strnlen(const char *s, size_t n)
int strncpyCleanSpaces(char *s1, const char *s2, int maxlen)
char * strncatInt(char *str1, const int n, size_t count)
int strTokenNCpy(const char *s1, const char *s2, int i, char *s3, int count)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
int strncpyClean(char *s1, const char *s2, int maxlen)
int strIsSpaceOnly(char *s)
int strChrCount(const char *s1, const char *s2)
char * strTokenDup(const char *s1, const char *s2, int *next)
char * strdelstr(char *s1, const char *s2)
int strUppercaseCount(const char *s)
char * strcasestr(const char *haystack, const char *needle)
size_t strlcat(char *dst, const char *src, size_t dstsize)
char * strndup(const char *s, size_t n)
Header file for library libtpcextensions.