summaryrefslogtreecommitdiff
path: root/noncore/todayplugins/stockticker/libstocks/csv.c
Side-by-side diff
Diffstat (limited to 'noncore/todayplugins/stockticker/libstocks/csv.c') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/stockticker/libstocks/csv.c140
1 files changed, 107 insertions, 33 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/csv.c b/noncore/todayplugins/stockticker/libstocks/csv.c
index 86d8607..110df7c 100644
--- a/noncore/todayplugins/stockticker/libstocks/csv.c
+++ b/noncore/todayplugins/stockticker/libstocks/csv.c
@@ -143,3 +143,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(line, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
@@ -156,3 +160,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
@@ -169,3 +177,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->CurrentPrice));
@@ -173,3 +185,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
@@ -186,3 +202,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
@@ -199,3 +219,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->Variation));
@@ -208,3 +232,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->OpenPrice));
@@ -212,3 +240,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->MaxPrice));
@@ -216,3 +248,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->MinPrice));
@@ -220,3 +256,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
StockPtr->Volume = atoi(ptr);
@@ -249,3 +289,7 @@ stock *parse_csv_file(char *csv)
ptr = csv_strtok(line, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ return 0;
+ }
@@ -330,3 +374,9 @@ stock *parse_csv_history_file(char *csv_file)
ptr = strtok(line, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ free_stock(FirstStockPtr);
+ free_stock(LastStockPtr);
+ return 0;
+ }
@@ -346,7 +396,7 @@ stock *parse_csv_history_file(char *csv_file)
if (date==NULL)
- {
- fprintf(stderr,"Memory allocating error (%s line %d)\n"
- ,__FILE__, __LINE__);
- exit(1);
- }
+ {
+ fprintf(stderr,"Memory allocating error (%s line %d)\n"
+ ,__FILE__, __LINE__);
+ exit(1);
+ }
sprintf(date,"%.2d%.2d%.2d", year, month, day);
@@ -356,3 +406,9 @@ stock *parse_csv_history_file(char *csv_file)
ptr = strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ free_stock(FirstStockPtr);
+ free_stock(LastStockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->OpenPrice));
@@ -361,3 +417,9 @@ stock *parse_csv_history_file(char *csv_file)
ptr = strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ free_stock(FirstStockPtr);
+ free_stock(LastStockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->MaxPrice));
@@ -366,3 +428,9 @@ stock *parse_csv_history_file(char *csv_file)
ptr = strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ free_stock(FirstStockPtr);
+ free_stock(LastStockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->MinPrice));
@@ -371,3 +439,9 @@ stock *parse_csv_history_file(char *csv_file)
ptr = strtok(NULL, ",");
- if (!ptr) return 0;
+ if (!ptr)
+ {
+ free_stock(StockPtr);
+ free_stock(FirstStockPtr);
+ free_stock(LastStockPtr);
+ return 0;
+ }
sscanf(ptr,"%f",&(StockPtr->LastPrice));
@@ -378,13 +452,13 @@ stock *parse_csv_history_file(char *csv_file)
if (!ptr)
- /* It seems to be an indice */
- /* No volume for indices */
- StockPtr->Volume = 0;
+ /* It seems to be an indice */
+ /* No volume for indices */
+ StockPtr->Volume = 0;
else
- StockPtr->Volume = atoi(ptr);
+ StockPtr->Volume = atoi(ptr);
if( !FirstStockPtr )
- {
- FirstStockPtr = StockPtr;
- StockPtr->PreviousStock = 0;
- }
+ {
+ FirstStockPtr = StockPtr;
+ StockPtr->PreviousStock = 0;
+ }
@@ -393,6 +467,6 @@ stock *parse_csv_history_file(char *csv_file)
if (LastStockPtr)
- {
- LastStockPtr->NextStock = StockPtr;
- StockPtr->PreviousStock = LastStockPtr;
- }
+ {
+ LastStockPtr->NextStock = StockPtr;
+ StockPtr->PreviousStock = LastStockPtr;
+ }