-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/csv.c | 2 | ||||
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/http.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/csv.c b/noncore/todayplugins/stockticker/libstocks/csv.c index f45af52..6170bed 100644 --- a/noncore/todayplugins/stockticker/libstocks/csv.c +++ b/noncore/todayplugins/stockticker/libstocks/csv.c @@ -1,118 +1,120 @@ /* libstocks - Library to get current stock quotes from Yahoo Finance * * Copyright (C) 2000 Eric Laeuffer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define __CSV_C__ +#ifndef __UNIX__ #define __UNIX__ +#endif #include <string.h> #include <stdlib.h> #include <stdio.h> #ifdef __WINDOWS__ #include <mbstring.h> #endif #include "csv.h" #include "stocks.h" #include "lists.h" #define DATE_LENGTH 7 /*YYMMDD*/ const char *months[12]= { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; /*****************************************************************************/ /* Replacement of the strtok function. This one forgets "delim" when it is */ /* between two commas. */ /* Thanks to Julio Lucas who has told me the bug and has proposed me a patch */ /*****************************************************************************/ char *csv_strtok(char *s, char *delim) { static char *next=NULL; char *temp, *first; int comma=0; if (s!=NULL) first=s; else first=next; temp=first; if (*temp=='\0') return NULL; while (*temp!='\0' && ((*temp!=*delim) || comma)) { if (*temp=='"') comma ^= 1; temp++; } if (*temp=='\0') next=temp; else { *temp='\0'; next=temp+1; } return first; } /*****************************************************************************/ /* Parses the csv file and return a list of stocks structure. */ /* *csv points on the csv file in memory */ /* count defines the country, because csv depends on the country */ /*****************************************************************************/ stock *parse_csv_file(char *csv) { char *line; char *end_line; char *ptr; char *date; char *time; char *name; char *symbol; stock *StockPtr=NULL; stock *LastStockPtr=NULL; /* Used to return the pointer to the list */ stock *FirstStockPtr=NULL; /* used to see if symbol is valid */ int valid; char *test; line = csv; end_line = csv; while ((end_line = strstr(line, "\n"))) { diff --git a/noncore/todayplugins/stockticker/libstocks/http.c b/noncore/todayplugins/stockticker/libstocks/http.c index 3078746..2f38f8a 100644 --- a/noncore/todayplugins/stockticker/libstocks/http.c +++ b/noncore/todayplugins/stockticker/libstocks/http.c @@ -1,118 +1,120 @@ /* libstocks - Library to get current stock quotes from Yahoo Finance * * Copyright (C) 2000 Eric Laeuffer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define __HTTP_C__ +#ifndef __UNIX__ #define __UNIX__ +#endif #ifdef __UNIX__ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <unistd.h> #elif __WINDOWS__ #include <winsock.h> #include <mbstring.h> #endif #include <sys/types.h> #include <ctype.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include "http.h" #include "stocks.h" #define BUF_SIZE 1024 #define HEADER_MAXBUF 512 /* pointer to proxy server name or NULL */ char *http_proxy_server=NULL; /* proxy server port number or 0 */ int http_proxy_port=0; /*****************************************************************************/ /* Gets the file from http://http_server/http_file */ /* This function is used to get quotes csv file from yahoo. */ /* It allocates memory for the file and defines *pdata (the pointer of datas)*/ /*****************************************************************************/ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) { struct hostent *host; /* structs needed by socket */ struct sockaddr_in server; int s; /* socket descriptor */ char header[HEADER_MAXBUF]; /* request header */ int hlg; /* header length */ char buf[BUF_SIZE+1]; /* tempory buffer from socket read */ int r; /* number of bytes read by read function */ char *data=NULL; /* http server response */ int data_lgr; /* http server response length */ char *temp; /* pointer used to split header and csv */ int error_code; /* error code returned by http server */ char *csv_ptr; /* pointer to the csv content */ int header_founded; /* test if header is founded */ #ifdef DEBUG printf("*http_get\n"); #endif /* get host info by name :*/ if ((host = gethostbyname( http_proxy_server ? http_proxy_server : http_server))) { memset((char *) &server,0, sizeof(server)); memmove((char *) &server.sin_addr, host->h_addr, host->h_length); server.sin_family = host->h_addrtype; server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); } else { #ifdef DEBUG printf(" gethostbyname : NOK\n"); #endif return ERRHOST; } /* create socket */ if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { #ifdef DEBUG printf(" create socket : NOK\n"); #endif return ERRSOCK; } setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, 0, 0); /* connect to server */ if (connect(s, &server, sizeof(server)) < 0) { #ifdef DEBUG printf(" connect to server : NOK\n"); #endif #ifdef __UNIX__ close(s); #elif __WINDOWS__ closesocket(s); #endif return ERRCONN; |