X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Fsrc%2Fitemdb.c;h=01f801e0c8ada66557443ab2d1e2b4e6ffc47a06;hb=5a97bf48f2507ac7e8c3765959c25a9d4f9b74c3;hp=cf8e7f1cbdcac91a5c197854c26f311f9013b32f;hpb=e5b57935abf86799d97140f2cfa36a10ae8e0526;p=tpg%2Fopendispense2.git diff --git a/server/src/itemdb.c b/server/src/itemdb.c index cf8e7f1..01f801e 100644 --- a/server/src/itemdb.c +++ b/server/src/itemdb.c @@ -9,6 +9,8 @@ */ #include #include +#include +#include #include "common.h" // === GLOBALS === @@ -17,6 +19,10 @@ tItem *gaItems = NULL; tHandler *gaHandlers = NULL; char *gsItemListFile = DEFAULT_ITEM_FILE; +// === PROTOTYPES === +void Load_Itemlist(void); +char *trim(char *__str); + // === CODE === /** * \brief Read the item list from disk @@ -26,6 +32,7 @@ void Load_Itemlist(void) FILE *fp = fopen(gsItemListFile, "r"); char buffer[BUFSIZ]; char *line; + int lineNum = 0; // Error check if(!fp) { @@ -37,6 +44,9 @@ void Load_Itemlist(void) { char *tmp; char *type, *num, *price, *desc; + + lineNum ++; + // Remove comments tmp = strchr(buffer, '#'); if(tmp) *tmp = '\0'; @@ -51,13 +61,41 @@ void Load_Itemlist(void) type = line; // - Number num = strchr(type, ' '); - if(num) while(*num == ' ' || *num == '\t'); - if(!num) { + if(num) { + while(*num == ' ' || *num == '\t') num ++; + } + else { fprintf(stderr, "Syntax error on line %i of item file\n", lineNum); continue; } // - Price price = strchr(num, ' '); + if( price ) { + while(*num == ' ' || *num == '\t') num ++; + } + else { + fprintf(stderr, "Syntax error on line %i of item file\n", lineNum); + continue; + } + // - Name/Description + desc = strchr(price, ' '); } } + +char *trim(char *__str) +{ + char *ret; + int i; + + while( isspace(*__str) ) + __str++; + ret = __str; + + i = strlen(ret); + while( i-- && isspace(__str[i]) ) { + __str[i] = '\0'; + } + + return ret; +}