aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntony Kellermann2018-01-26 12:59:59 -0500
committerAntony Kellermann2018-01-26 12:59:59 -0500
commit8f46eb283957dbaea5d89dc3f7ce92c1acd65d68 (patch)
tree142b72a6f5d8dec478f84dc0fa4e5e33b9949198
parente2bbb89a50dd62ef27bd539fd7a227c8757a2f23 (diff)
downloadaur-8f46eb283957dbaea5d89dc3f7ce92c1acd65d68.tar.gz
Small main updates
-rw-r--r--main.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/main.c b/main.c
index a300742d60a3..1c469e585d51 100644
--- a/main.c
+++ b/main.c
@@ -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;