31 if(lst->
tok[i]!=NULL) free(lst->
tok[i]);
32 if(lst->
tok!=NULL) free(lst->
tok);
51 if(lst==NULL || new_item==NULL || strlen(new_item)<1)
return(1);
54 if(lst->
tok==NULL)
return(2);
55 for(i=lst->
list_size; i<lst->list_size+add_nr; i++) lst->
tok[i]=NULL;
77 if(lst==NULL || item<1 || item>lst->
token_nr)
return(1);
78 if(lst->
tok[item-1]!=NULL) free(lst->
tok[item-1]);
79 for(
int i=item; i<lst->
token_nr; i++) {
81 lst->
tok[i-1]=lst->
tok[i]; lst->
tok[i]=NULL;
100 char *allfile, *cptr;
103 if(lst==NULL || filename==NULL || strlen(filename)<1)
return(1);
107 fp=fopen(filename,
"r");
if(fp==NULL)
return(2);
109 nr=0;
while((ret=fgetc(fp))!=EOF) nr++; rewind(fp);
110 if(nr<1) {fclose(fp);
return(0);}
112 allfile=(
char*)malloc((nr+1)*
sizeof(
char));
113 if(allfile==NULL) {fclose(fp);
return(3);}
115 i=0;
while((ret=fgetc(fp))!=EOF && i<nr) allfile[i++]=(char)ret;
116 fclose(fp); allfile[i]=(char)0;
118 cptr=strtok(allfile,
" ;,|\t\n\r");
119 if(cptr==NULL) {free(allfile);
return(4);}
122 cptr=strtok(NULL,
" ;,|\t\n\r");
138 const char *filename,
143 char *allfile, *cptr, *line;
146 if(lst==NULL || filename==NULL || strlen(filename)<1)
return(1);
150 fp=fopen(filename,
"r");
if(fp==NULL)
return(2);
152 nr=0;
while((ret=fgetc(fp))!=EOF) nr++; rewind(fp);
153 if(nr<1) {fclose(fp);
return(0);}
155 allfile=(
char*)malloc((nr+1)*
sizeof(
char));
156 if(allfile==NULL) {fclose(fp);
return(3);}
158 i=0;
while((ret=fgetc(fp))!=EOF && i<nr) allfile[i++]=(char)ret;
159 fclose(fp); allfile[i]=(char)0;
161 int npos=0; cptr=allfile;
163 if(line==NULL) {free(allfile);
return(4);}
167 free(line);
if(npos==0)
break; cptr=cptr+npos;
183 const char *filename,
188 char *allfile, *cptr;
193 if(strlen(filename)<1)
return(-1);
195 fp=fopen(filename,
"r");
if(fp==NULL)
return(-2);
197 nr=0;
while((ret=fgetc(fp))!=EOF) nr++; rewind(fp);
198 if(nr<1) {fclose(fp);
return(0);}
200 allfile=(
char*)malloc((nr+1)*
sizeof(
char));
201 if(allfile==NULL) {fclose(fp);
return(-4);}
203 i=0;
while((ret=fgetc(fp))!=EOF && i<nr) allfile[i++]=(char)ret;
204 fclose(fp); allfile[i]=(char)0;
208 i=strspn(cptr,
" ;,|\t\n\r"); cptr+=i;
209 i=strcspn(cptr,
" ;,|\t\n\r"); cptr+=i;
210 if(i==0 || *cptr==0)
break;
else nr++;
214 list=(
char**)malloc(nr*
sizeof(
char*));
215 if(list==NULL) {free(allfile);
return(-5);}
217 cptr=strtok(allfile,
" ;,|\t\n\r");
218 for(i=0; i<nr; i++) {
220 for(--i; i>=0; i--) free(list[i]);
221 free(list); free(allfile);
224 list[i]=(
char*)malloc( (strlen(cptr)+1)*
sizeof(
char) );
226 for(--i; i>=0; i--) free(list[i]);
227 free(list); free(allfile);
230 strcpy(list[i], cptr);
231 cptr=strtok(NULL,
" ;,|\t\n\r");
256 if(cont!=NULL) *cont=0;
257 if(line==NULL)
return 0;
258 char *cptr=(
char*)line;
259 int i=strspn(cptr,
" \t"); cptr+=i;
if(cont!=NULL) *cont=i;
260 if(*cptr!=
'#')
return 0;
261 if(cont==NULL)
return 1;
262 cptr++; i=strspn(cptr,
" \t"); *cont+=(i+1);
Header file for libtpcmisc.
char * strTokenDup(const char *s1, const char *s2, int *next)
void str_token_list_empty(STR_TOKEN_LIST *lst)
int str_token_list_del(STR_TOKEN_LIST *lst, int item)
int textfileReadLines(const char *filename, STR_TOKEN_LIST *lst)
void str_token_list_init(STR_TOKEN_LIST *lst)
int str_token_list_add(STR_TOKEN_LIST *lst, char *new_item)
int str_token_list_read(const char *filename, STR_TOKEN_LIST *lst)
int asciiCommentLine(const char *line, int *cont)
int readStrtokens(const char *filename, char ***toklist)