summaryrefslogtreecommitdiff
path: root/noncore/todayplugins/stockticker/libstocks/stocks.c
Side-by-side diff
Diffstat (limited to 'noncore/todayplugins/stockticker/libstocks/stocks.c') (more/less context) (show whitespace changes)
-rw-r--r--noncore/todayplugins/stockticker/libstocks/stocks.c23
1 files changed, 12 insertions, 11 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
@@ -228,120 +228,121 @@ libstocks_return_code get_stocks(const char *stocks, stock **stock_datas)
while( (symbol = strtok(tok_ptr, "+"))!=0)
{
/* clear tok_ptr for next strtok */
tok_ptr = NULL;
/* look for "." in the symbol */
source = find_yahoo_source(symbol);
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__);
+ 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__);
+ 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__);
+ 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__);
+ fprintf(stderr,"Memory allocating error (%s line %d)\n",
+ __FILE__, __LINE__);
exit(1);
}
strcpy(eu_quotes, symbol);
}
break;
}
}
free(tok_ptr);
if (us_quotes)
{
/* Gets us quotes */
error = download_stocks(us_quotes, &stocks_tmp, YAHOO_US);
+ free(us_quotes);
if (error) return error;
}
if (eu_quotes)
{
/* Gets european quotes */
error = download_stocks(eu_quotes, &stocks_getted, YAHOO_EUROPE);
+ free(eu_quotes);
if (error) return error;
/* concats lists if needed */
if (stocks_tmp)
{
stocks_tmp2 = stocks_tmp;
while(stocks_tmp2 != NULL)
{
last_stock = stocks_tmp2;
stocks_tmp2 = next_stock(stocks_tmp2);
}
last_stock->NextStock = stocks_getted;
stocks_getted->PreviousStock = last_stock;
}
- else (stocks_tmp = stocks_getted);
+ else
+ (stocks_tmp = stocks_getted);
}
*stock_datas = stocks_tmp;
return(0);
}