27 char *cptr, *lptr, temp[FILENAME_MAX], temp2[FILENAME_MAX];
30 if(fname==NULL || studynr==NULL)
return(1);
33 cptr=strrchr(fname,
'/');
if(cptr==NULL) cptr=strrchr(fname,
'\\');
34 if(cptr==NULL) cptr=fname;
else cptr++;
36 strlcpy(temp, cptr, FILENAME_MAX); lptr=temp;
38 cptr=strtok(lptr,
"_-+{}!~.()");
39 while(cptr!=NULL && !studynr[0]) {
42 for(i=1; i<strlen(temp2); i++)
if(!isalpha((
int)temp2[i]))
break;
43 for(; i<strlen(temp2); i++)
if(!isdigit((
int)temp2[i]))
break;
48 strcpy(studynr, temp2);
52 cptr=strtok(NULL,
"_-+{}!~.()");
54 if(!studynr[0])
return(2);
81 if(fname==NULL || studynr==NULL)
return(1);
88 cptr=strrchr(fname,
'/');
if(cptr==NULL) cptr=strrchr(fname,
'\\');
89 if(cptr==NULL) cptr=fname;
else cptr++;
92 if(force!=0)
return(0);
95 if(!isalpha((
int)studynr[0])) {strcpy(studynr,
"");
return(4);}
97 for(i=1; i<strlen(studynr); i++)
if(!isalpha((
int)studynr[i]))
break;
98 for(; i<strlen(studynr); i++)
if(!isdigit((
int)studynr[i]))
break;
101 if(strlen(studynr)<2) {strcpy(studynr,
"");
return(5);}
148 if(len1==len2 && strcmp(studynr1, studynr2)==0)
return(1);
149 if(len2>len1) cptr2=studynr2+len2-len1;
else cptr2=studynr2;
150 if(len1>len2) cptr1=studynr1+len1-len2;
else cptr1=studynr1;
151 if(strcasecmp(cptr1, cptr2)==0)
return(2);
175 for(i=0; i<len; i++)
if(!isalnum((
int)studynr[i]))
return(0);
176 for(i=0; i<len; i++)
if(!isalpha((
int)studynr[i]))
break;
177 if(i<1 || i>5)
return(0);
178 if(zero_ok==0 && studynr[i]==
'0')
return(0);
179 for(j=0; (i+j)<len; j++)
if(!isdigit((
int)studynr[i+j]))
return(0);
181 if(j<1 || (i+j)>10)
return(0);
214 len=strlen(studynr);
if(len<2)
return(1);
215 if(isdigit((
int)studynr[0]))
return(2);
216 if(!isdigit((
int)studynr[len-1]))
return(3);
217 for(i=1; i<len; i++)
if(isdigit((
int)studynr[i]))
break;
218 for(j=i; j<len; j++)
if(studynr[j]!=
'0')
break;
220 for(;j<=len; i++, j++) studynr[i]=studynr[j];
236 len=strlen(studynr);
if(len<2)
return(1);
237 if(isdigit((
int)studynr[0]))
return(2);
238 if(!isdigit((
int)studynr[len-1]))
return(3);
239 for(i=0; i<len; i++) {
240 if(isdigit((
int)studynr[i]))
break;
241 studynr[i]=(char)tolower((
int)studynr[i]);
Header file for libtpcmisc.
size_t strlcpy(char *dst, const char *src, size_t dstsize)
int studynr_from_fname2(char *fname, char *studynr, int force)
int studynr_in_fname(char *fname, char *studynr)
int studynr_to_lowercase(char *studynr)
int studynr_validity_check2(char *studynr, int zero_ok)
int studynr_match(char *studynr1, char *studynr2)
int studynr_rm_zeroes(char *studynr)
int studynr_from_fname(char *fname, char *studynr)
int studynr_validity_check(char *studynr)