#include "util.h"
|
|
|
|
void list_shift(KCLIST* list, char** next){
|
|
size_t size;
|
|
const char* results = kclistget(list, 0, &size);
|
|
*next = malloc((size * sizeof(char)) + 1);
|
|
strcpy(*next, results);
|
|
(*next)[size] = 0;
|
|
kclistshift(list);
|
|
}
|
|
|
|
|
|
void lower(char* word){
|
|
int length = strlen(word);
|
|
int i;
|
|
for(i = 0; i < length; ++i){
|
|
word[i] = tolower(word[i]);
|
|
}
|
|
}
|
|
|
|
void tokenize(KCLIST* tokens, char* base, char* delimiter){
|
|
char* remainder;
|
|
char* token;
|
|
char* ptr = base;
|
|
while((token = strtok_r(ptr, delimiter, &remainder))){
|
|
int last;
|
|
int len = strlen(token);
|
|
for(last = len - 1; last >= 0; --last){
|
|
if(token[last] == '\n' || token[last] == '\r'){
|
|
token[last] = 0;
|
|
break;
|
|
}
|
|
}
|
|
lower(token);
|
|
char new_token[1024];
|
|
strcpy(new_token, token);
|
|
new_token[strlen(token)] = 0;
|
|
kclistpush(tokens, new_token, strlen(new_token) + 1);
|
|
ptr = remainder;
|
|
}
|
|
free(token);
|
|
}
|