summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-10-31 20:39:13 (UTC)
committer llornkcor <llornkcor>2002-10-31 20:39:13 (UTC)
commit00a211621ea11ed73d803a3e52c09ce1e76864eb (patch) (side-by-side diff)
tree01b54261103785b7eaa46471809494807291494b
parent88310c7207b84c79dbb11ab3c3afeded1874c10b (diff)
downloadopie-00a211621ea11ed73d803a3e52c09ce1e76864eb.zip
opie-00a211621ea11ed73d803a3e52c09ce1e76864eb.tar.gz
opie-00a211621ea11ed73d803a3e52c09ce1e76864eb.tar.bz2
better fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/todayplugins/stockticker/libstocks/csv.c2
-rw-r--r--noncore/todayplugins/stockticker/libstocks/http.c2
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;