diff options
author | Antony Kellermann | 2018-01-26 12:59:59 -0500 |
---|---|---|
committer | Antony Kellermann | 2018-01-26 12:59:59 -0500 |
commit | 8f46eb283957dbaea5d89dc3f7ce92c1acd65d68 (patch) | |
tree | 142b72a6f5d8dec478f84dc0fa4e5e33b9949198 | |
parent | e2bbb89a50dd62ef27bd539fd7a227c8757a2f23 (diff) | |
download | aur-8f46eb283957dbaea5d89dc3f7ce92c1acd65d68.tar.gz |
Small main updates
-rw-r--r-- | main.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -3,8 +3,8 @@ #include "portfolio.h" int main(int argc, char* argv[]) { - if (argc == 1) { - printf("No arguments used.\n"); + if (argc < 3 || argc == 4 || argc > 5) { + printf("Invalid arguments. Type \"man tick\" for help.\n"); return 0; } portfolio_file_init(); @@ -12,12 +12,16 @@ int main(int argc, char* argv[]) { if (fp == NULL) { printf("Could not open portfolio file\n"); free((void*) portfolio_file); - return 1; + return 0; } for (int i = 0; argv[2][i] != '\0'; i++) argv[2][i] = (char) toupper(argv[2][i]); if (argc == 5) { - if (strcmp(argv[1], "add") == 0) + if (strlen(argv[2]) > 16) + printf("Invalid symbol.\n"); + else if (strlen(argv[3]) > 16 || strlen(argv[4]) > 16) + printf("Value too large.\n"); + else if (strcmp(argv[1], "add") == 0) portfolio_modify(argv[2], strtod(argv[3], NULL), strtod(argv[4], NULL), fp, ADD); else if (strcmp(argv[1], "rm") == 0) portfolio_modify(argv[2], strtod(argv[3], NULL), strtod(argv[4], NULL), fp, REMOVE); @@ -29,10 +33,9 @@ int main(int argc, char* argv[]) { if (argc == 3 && strcmp(argv[1], "check") == 0) { if (strcmp(argv[2], "ALL") == 0) portfolio_print_all(fp); - else portfolio_print_stock(argv[2], fp); - } else printf("Invalid arguments\n"); + else free(portfolio_print_stock(argv[2], fp)); + } else printf("Invalid arguments.\n"); } - free((void*) portfolio_file); fclose(fp); return 0; |