7#include "tpcclibConfig.h"
28 if(s==NULL)
return(2);
30 len=strlen(s);
if(len<2 || len>10)
return(1);
31 for(i=0; i<len; i++)
if(!isalnum((
int)s[i]))
return(1);
32 for(i=0; i<len; i++)
if(!isalpha((
int)s[i]))
break;
33 if(i<1 || i>5)
return(1);
34 if(zero_ok==0 && s[i]==
'0')
return(1);
35 for(j=0; (i+j)<len; j++)
if(!isdigit((
int)s[i+j]))
return(1);
36 if(j<1 || j>5)
return(1);
51 if(s==NULL)
return(1);
53 len=strlen(s);
if(len<2)
return(1);
54 if(isdigit((
int)s[0]))
return(2);
55 if(!isdigit((
int)s[len-1]))
return(3);
57 for(i=0; i<len; i++) {
58 if(isdigit((
int)s[i]))
break;
59 s[i]=(char)tolower((
int)s[i]);
62 for(i=1; i<len; i++)
if(isdigit((
int)s[i]))
break;
63 for(j=i; j<len; j++)
if(s[j]!=
'0')
break;
65 for(;j<=len; i++, j++) s[i]=s[j];
88 if(studynr==NULL)
return(1);
90 if(fname==NULL ||
strnlen(fname, 2)<2)
return(1);
98 len=strlen(temp);
if(len<1) {free(temp);
return(2);}
99 for(i=1; i<len; i++)
if(isalpha(temp[i-1]) && isdigit(temp[i])) {
100 j=i-1;
while(j>0 && isalpha(temp[j-1])) j--;
101 k=i;
while(k<len-1 && isdigit(temp[k+1])) k++;
102 n=k-j+1;
if(n>=2 && n<=10) {
104 if(force==1) {ret=1;
break;}
109 if(ret) {free(temp);
return 0;}
110 if(force==0) {free(temp);
return 3;}
112 for(j=0; j<(int)len; j++)
if(isalpha(temp[j]) || isdigit(temp[j]))
break;
113 for(k=j; k<len-1; k++)
if(!isalpha(temp[k+1]) && !isdigit(temp[k+1]))
break;
114 n=k-j+1;
if(n<1) {free(temp);
return 4;}
void filenameRmPath(char *s)
void filenameRmExtensions(char *s)
char * strdup(const char *s)
size_t strnlen(const char *s, size_t n)
size_t strlcpy(char *dst, const char *src, size_t dstsize)
int studynrFromFilename(const char *fname, char *studynr, int force)
int studynrStandardize(char *s)
int studynrVerify(const char *s, int zero_ok)
Header file for library libtpcextensions.