#include #include #include #include "util.h" char *ltrim(char *str, const char *seps) { size_t totrim; if (seps == NULL) { seps = "\t\n\v\f\r "; } totrim = strspn(str, seps); if (totrim > 0) { size_t len = strlen(str); if (totrim == len) { str[0] = '\0'; } else { memmove(str, str + totrim, len + 1 - totrim); } } return str; } char *rtrim(char *str, const char *seps) { int i; if (seps == NULL) { seps = "\t\n\v\f\r "; } i = strlen(str) - 1; while (i >= 0 && strchr(seps, str[i]) != NULL) { str[i] = '\0'; i--; } return str; } char *trim(char *str, const char *seps) { return ltrim(rtrim(str, seps), seps); } int indexOf(char *s,const char **array,int length_array) { int index = -1,i,continuar = 1; for(i = 0; i current < t->n) { t->current++; return t->tokens[t->current-1]; } else { return NULL; } } int hasMoreTokens(Tokenizer *t) { return (t->current < t->n); } void stringtokenizer(char *data,Tokenizer *t) { char *token; t->tokens = NULL; t->n = 0; t->current = 0; trim(data,"\t\n\r :"); token = strtok(data," \t:"); while(token != NULL) { t->n++; t->tokens = (char**) realloc(t->tokens,sizeof(char*)*t->n); if(t->tokens == NULL) { printf("Out of memory\n"); exit(0); } t->tokens[t->n - 1] = token; token = strtok(NULL," \t"); } } void freetokenizer(Tokenizer *t) { if(t->n > 0) { free(t->tokens); } memset(t,0,sizeof(Tokenizer)); } /* Aux function to get the hexvalues of the data */ char *tohex(char *ptr,int length){ char *buffer; int offset = 0; unsigned char c; buffer = (char *) malloc((length * 2)+1); for (int i = 0; i = '0' && hex <= '9') { *out = hex - '0'; } else if (hex >= 'A' && hex <= 'F') { *out = hex - 'A' + 10; } else if (hex >= 'a' && hex <= 'f') { *out = hex - 'a' + 10; } else { return 0; } return 1; } void addItemList(char *data, List *l) { l->data = (char**) realloc(l->data,sizeof(char*)* (l->n +1)); l->data[l->n] = data; l->n++; } int isValidHex(char *data) { char c; int len,i,valid = 1; len = strlen(data); for(i = 0 ; i < len && valid ;i++ ) { c = data[i]; valid = ( (c >= '0' && c <='9') || (c >= 'A' && c <='F' ) || (c >= 'a' && c <='f' ) ); } return valid; }