Commenting, fixed Ctrl-C not working, Fixed a segfault in the server,
[tpg/opendispense2.git] / src / client / main.c
index 80b160f..95fd74e 100644 (file)
@@ -182,11 +182,7 @@ int main(int argc, char *argv[])
                        case 'n':       // Dry Run / read-only
                                gbDryRun = 1;
                                break;
-                       case '0':       case '1':
-                       case '2':       case '3':
-                       case '4':       case '5':
-                       case '6':       case '7':
-                       case '8':       case '9':
+                       default:
                                if( text_argc + 1 ==  MAX_TXT_ARGS )
                                {
                                        fprintf(stderr, "ERROR: Too many arguments\n");
@@ -217,11 +213,11 @@ int main(int argc, char *argv[])
                // Connect to server
                sock = OpenConnection(gsDispenseServer, giDispensePort);
                if( sock < 0 )  return -1;
-                       // List accounts?
+               // List accounts?
                if( text_argc == 1 ) {
-                       Dispense_EnumUsers(sock);
+                       ret = Dispense_EnumUsers(sock);
                        close(sock);
-                       return 0;
+                       return ret;
                }
                        
                // text_args[1]: Username
@@ -244,19 +240,20 @@ int main(int argc, char *argv[])
                                        exit(1);
                                }
                                
-                               Dispense_SetBalance(sock, text_args[1], atoi(text_args[2]+1), text_args[3]);
+                               ret = Dispense_SetBalance(sock, text_args[1], atoi(text_args[2]+1), text_args[3]);
                        }
                        else {
                                // Alter balance
-                               Dispense_AlterBalance(sock, text_args[1], atoi(text_args[2]), text_args[3]);
+                               ret = Dispense_AlterBalance(sock, text_args[1], atoi(text_args[2]), text_args[3]);
                        }
                }
+               // TODO: Preserve ret if non-zero
                
                // Show user information
-               Dispense_ShowUser(sock, text_args[1]);
+               ret = Dispense_ShowUser(sock, text_args[1]);
                
                close(sock);
-               return 0;
+               return ret;
        }
        //
        // `dispense give`
@@ -281,11 +278,11 @@ int main(int argc, char *argv[])
                if( Authenticate(sock) )
                        return -1;
                
-               Dispense_Give(sock, text_args[1], atoi(text_args[2]), text_args[3]);
+               ret = Dispense_Give(sock, text_args[1], atoi(text_args[2]), text_args[3]);
 
                close(sock);
        
-               return 0;
+               return ret;
        }
        // 
        // `dispense user`
@@ -316,7 +313,7 @@ int main(int argc, char *argv[])
                                exit(1);
                        }
                        
-                       Dispense_AddUser(sock, text_args[2]);
+                       ret = Dispense_AddUser(sock, text_args[2]);
                }
                // Update a user
                else if( strcmp(text_args[1], "type") == 0 || strcmp(text_args[1], "flags") == 0 )
@@ -327,7 +324,7 @@ int main(int argc, char *argv[])
                                exit(1);
                        }
                        
-                       Dispense_SetUserType(sock, text_args[2], text_args[3]);
+                       ret = Dispense_SetUserType(sock, text_args[2], text_args[3]);
                }
                else
                {
@@ -336,7 +333,7 @@ int main(int argc, char *argv[])
                        exit(1);
                }
                close(sock);
-               return 0;
+               return ret;
        }
        // Donation!
        else if( strcmp(text_args[0], "donate") == 0 )
@@ -357,11 +354,11 @@ int main(int argc, char *argv[])
                        return -1;
                
                // Do donation
-               Dispense_Donate(sock, atoi(text_args[1]), text_args[2]);
+               ret =Dispense_Donate(sock, atoi(text_args[1]), text_args[2]);
                                
                close(sock);
 
-               return 0;
+               return ret;
        }
        // Query an item price
        else if( strcmp(text_args[0], "iteminfo") == 0 )
@@ -386,9 +383,9 @@ int main(int argc, char *argv[])
 
                sock = OpenConnection(gsDispenseServer, giDispensePort);
                if( sock < 0 )  return -1;
-               Dispense_ItemInfo(sock, type, id);
+               ret = Dispense_ItemInfo(sock, type, id);
                close(sock);
-               return 0;
+               return ret;
        }
        // Item name / pattern
        else {
@@ -418,9 +415,9 @@ int main(int argc, char *argv[])
                        sock = OpenConnection(gsDispenseServer, giDispensePort);
                        if( sock < 0 )  return -1;
                        Authenticate(sock);
-                       DispenseItem(sock, "door", 0);
+                       ret = DispenseItem(sock, "door", 0);
                        close(sock);
-                       return 0;
+                       return ret;
                }
                // Item id (<type>:<num>)
                else if( RunRegex(&gUserItemIdentRegex, gsItemPattern, 3, matches, NULL) == 0 )
@@ -441,9 +438,9 @@ int main(int argc, char *argv[])
                        Dispense_ItemInfo(sock, ident, id);
                        
                        Authenticate(sock);
-                       DispenseItem(sock, ident, id);
+                       ret = DispenseItem(sock, ident, id);
                        close(sock);
-                       return 0;
+                       return ret;
                }
                // Item number (6 = coke)
                else if( strcmp(gsItemPattern, "0") == 0 || atoi(gsItemPattern) > 0 )
@@ -640,7 +637,7 @@ int ShowNCursesUI(void)
        
        // Enter curses mode
        initscr();
-       raw(); noecho();
+       cbreak(); noecho();
        
        // Get max index
        maxItemIndex = ShowItemAt(0, 0, 0, -1, 0);

UCC git Repository :: git.ucc.asn.au