Diffstat (limited to 'noncore/todayplugins/stockticker/libstocks/stocks.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/stocks.c | 189 |
1 files changed, 95 insertions, 94 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/stocks.c b/noncore/todayplugins/stockticker/libstocks/stocks.c index eb04ba9..3a26a47 100644 --- a/noncore/todayplugins/stockticker/libstocks/stocks.c +++ b/noncore/todayplugins/stockticker/libstocks/stocks.c @@ -107,3 +107,3 @@ yahoo_source find_yahoo_source(char *symbol) } - + /* We suppose now it is a European stock */ @@ -118,4 +118,4 @@ yahoo_source find_yahoo_source(char *symbol) /*****************************************************************************/ -libstocks_return_code download_stocks(char *stocks, - stock **stock_datas, +libstocks_return_code download_stocks(char *stocks, + stock **stock_datas, yahoo_source source) @@ -140,3 +140,3 @@ libstocks_return_code download_stocks(char *stocks, break; - + case YAHOO_EUROPE: @@ -147,3 +147,3 @@ libstocks_return_code download_stocks(char *stocks, break; - + } @@ -166,5 +166,5 @@ libstocks_return_code download_stocks(char *stocks, strcat(url, url_end); - + error=http_get(url, stocks_server, &data); - + free(url); @@ -172,3 +172,3 @@ libstocks_return_code download_stocks(char *stocks, if (error) return error; - + *stock_datas = parse_csv_file(data); @@ -224,3 +224,3 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas) ,__FILE__, __LINE__); - exit(1); + exit(1); } @@ -237,73 +237,71 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas) switch (source) - { - case YAHOO_US: - - if (us_quotes) - { - lgr_us_quotes = strlen(us_quotes); - lgr_symbol = strlen(symbol); - - us_quotes_temp = malloc(lgr_us_quotes + lgr_symbol +2); - if(us_quotes_temp==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - strcpy(us_quotes_temp, us_quotes); - strcat(us_quotes_temp,"+"); - strcat(us_quotes_temp,symbol); - - free(us_quotes); - us_quotes = us_quotes_temp; - } - else - { - us_quotes = malloc(strlen(symbol)+1); - - if(us_quotes==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - strcpy(us_quotes, symbol); - } - - break; - - case YAHOO_EUROPE: - - if (eu_quotes) - { - lgr_eu_quotes = strlen(eu_quotes); - lgr_symbol = strlen(symbol); - - eu_quotes_temp = malloc(lgr_eu_quotes + lgr_symbol +2); - if(eu_quotes_temp==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - strcpy(eu_quotes_temp, eu_quotes); - strcat(eu_quotes_temp, "+"); - strcat(eu_quotes_temp, symbol); - - free(eu_quotes); - eu_quotes = eu_quotes_temp; - } - else - { - eu_quotes = malloc(strlen(symbol)+1); - if(eu_quotes==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - strcpy(eu_quotes, symbol); - } - break; - } + { + case YAHOO_US: + if (us_quotes) + { + lgr_us_quotes = strlen(us_quotes); + lgr_symbol = strlen(symbol); + + us_quotes_temp = malloc(lgr_us_quotes + lgr_symbol +2); + if(us_quotes_temp==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } + strcpy(us_quotes_temp, us_quotes); + strcat(us_quotes_temp,"+"); + strcat(us_quotes_temp,symbol); + + free(us_quotes); + us_quotes = us_quotes_temp; + } + else + { + us_quotes = malloc(strlen(symbol)+1); + + if(us_quotes==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } + strcpy(us_quotes, symbol); + } + + break; + + case YAHOO_EUROPE: + if (eu_quotes) + { + lgr_eu_quotes = strlen(eu_quotes); + lgr_symbol = strlen(symbol); + + eu_quotes_temp = malloc(lgr_eu_quotes + lgr_symbol +2); + if(eu_quotes_temp==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } + strcpy(eu_quotes_temp, eu_quotes); + strcat(eu_quotes_temp, "+"); + strcat(eu_quotes_temp, symbol); + + free(eu_quotes); + eu_quotes = eu_quotes_temp; + } + else + { + eu_quotes = malloc(strlen(symbol)+1); + if(eu_quotes==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } + strcpy(eu_quotes, symbol); + } + break; + } } @@ -316,5 +314,6 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas) error = download_stocks(us_quotes, &stocks_tmp, YAHOO_US); + free(us_quotes); if (error) return error; } - + if (eu_quotes) @@ -323,2 +322,3 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas) error = download_stocks(eu_quotes, &stocks_getted, YAHOO_EUROPE); + free(eu_quotes); if (error) return error; @@ -327,20 +327,21 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas) if (stocks_tmp) - { - stocks_tmp2 = stocks_tmp; + { + stocks_tmp2 = stocks_tmp; - while(stocks_tmp2 != NULL) - { - last_stock = stocks_tmp2; - stocks_tmp2 = next_stock(stocks_tmp2); - } + while(stocks_tmp2 != NULL) + { + last_stock = stocks_tmp2; + stocks_tmp2 = next_stock(stocks_tmp2); + } - last_stock->NextStock = stocks_getted; - stocks_getted->PreviousStock = last_stock; + last_stock->NextStock = stocks_getted; + stocks_getted->PreviousStock = last_stock; - } - else (stocks_tmp = stocks_getted); + } + else + (stocks_tmp = stocks_getted); } - *stock_datas = stocks_tmp; - + *stock_datas = stocks_tmp; + return(0); |