static void parse_parameters(char *options, int *num_parameters, char ***parameters, char *delimiters) { int i=0,j=0,temp=0,num=0, len_options=strlen(options); char *options_temp; while (i<len_options) { while ((i<len_options) && is_delimeter(delimiters,options[i])) i++; temp=i; while ((i<len_options) && !is_delimeter(delimiters,options[i])) i++; if (i!=temp) num++; } (*parameters) = (char **) malloc(num*sizeof(char * )); i=0; while (i<len_options) { while ((i<len_options) && is_delimeter(delimiters,options[i])) i++; temp=i; while ((i<len_options) && !is_delimeter(delimiters,options[i])) i++; if (i!=temp) { (*parameters)[j]=(char *) malloc((i-temp+1)*sizeof(char)); options_temp = options+temp; strncpy((*parameters)[j], options_temp, i-temp); ((*parameters)[j])[i-temp] = '\0'; j++; } } *num_parameters = num; }
static int line_is_valid(char* line) { char c = 0; while(c = *line++, c) { int ret = is_delimeter(c) || is_valid_char(c) || is_space_char(c); if(!ret){ err("line contain invalid chars!! ascii val(0x%x)\n", c); return 0; } } return 1;//line is valid }