X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fclient%2Fmain.c;h=204a61e0afb653e8f3a889b9fce64384c8bbbc95;hb=aab09714f5780d2d7eeb7f1f94a624e0535bdb22;hp=5601c08c653cebaf2f48ca333bec0fdf157868a7;hpb=32b161c885d90286f7d4a72b9d05e947c96069e5;p=tpg%2Fopendispense2.git diff --git a/src/client/main.c b/src/client/main.c index 5601c08..204a61e 100644 --- a/src/client/main.c +++ b/src/client/main.c @@ -23,7 +23,7 @@ #include #include #include -#include // SHA1 +//#include // SHA1 #define USE_NCURSES_INTERFACE 0 #define DEBUG_TRACE_SERVER 0 @@ -97,7 +97,7 @@ char *trim(char *string); void CompileRegex(regex_t *regex, const char *pattern, int flags); // === GLOBALS === -char *gsDispenseServer = "heathred"; +char *gsDispenseServer = "merlo.ucc.gu.uwa.edu.au"; int giDispensePort = 11020; tItem *gaItems; @@ -146,6 +146,11 @@ void ShowUsage(void) " dispense iteminfo \n" " Get the name and price for an item\n" ); +// if( giTextArgc == 0 || strcmp(gsTextArgs[0], "enumitems") == 0 ) +// printf( +// " dispense enumitems\n" +// " List avaliable items\n" +// ); if( giTextArgc == 0 ) printf(" == Coke members == \n"); if( giTextArgc == 0 || strcmp(gsTextArgs[0], "acct") == 0 ) @@ -161,6 +166,8 @@ void ShowUsage(void) printf( " dispense refund []\n" " Refund an item to a user (with optional price override)\n" + " Item IDs can be seen in the cokelog (in the brackets after the item name)\n" + " e.g. coke:6 for a coke, snack:33 for slot 33 of the snack machine\n" ); if( giTextArgc == 0 || strcmp(gsTextArgs[0], "slot") == 0 ) printf( @@ -814,10 +821,10 @@ int main(int argc, char *argv[]) if( j > 1 ) { printf("%i items dispensed\n", j); } + Dispense_ShowUser(sock, gsUserName); close(sock); - } - Dispense_ShowUser(sock, gsUserName); + } return ret; } @@ -1027,7 +1034,6 @@ int ShowNCursesUI(void) */ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) { - int _x, _y, times; char *name = NULL; int price = 0; int status = -1; @@ -1105,6 +1111,13 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) break; } + if( price > 100*100 ) { + nameWidth --; + } + if( price > 1000*100 ) { + nameWidth --; + } + printw("%-*.*s", nameWidth, nameWidth, name); // getyx(stdscr, _y, _x); @@ -1112,20 +1125,18 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) // times = Width - 5 - (_x - Col); // TODO: Better handling for large prices // while(times--) addch(' '); + // 999.99 should be enough printw(" %4i", price); } else { - printw("-- %s", name); - getyx(stdscr, _y, _x); - times = Width - 4 - (_x - Col); - while(times--) addch(' '); - printw(" "); +// int _x, _y, times; + printw("-- %-*.*s ", Width-4, Width-4, name); } } // If the item isn't availiable for sale, return -1 (so it's skipped) - if( status || price >= giUserBalance ) + if( status || price > giUserBalance ) Index = -1; return Index; @@ -2212,9 +2223,9 @@ char *ReadLine(int Socket) } else { len = recv(Socket, buf+bufPos, BUFSIZ-1-bufPos, 0); - if( len < 0 ) { + if( len <= 0 ) { free(ret); - return strdup("499 Client Connection Error\n"); + return strdup("599 Client Connection Error\n"); } } buf[bufPos+len] = '\0';