summaryrefslogtreecommitdiff
authorerik <erik>2007-01-24 19:57:51 (UTC)
committer erik <erik>2007-01-24 19:57:51 (UTC)
commit48d9219a96096cf44df8ac24413b36d1b718b1d5 (patch) (side-by-side diff)
treeef49f0d2b778283221ebbb8634f1a59710ddd108
parent89e81059e832ff77c2f0ac8b9db12f80eafa03fc (diff)
downloadopie-48d9219a96096cf44df8ac24413b36d1b718b1d5.zip
opie-48d9219a96096cf44df8ac24413b36d1b718b1d5.tar.gz
opie-48d9219a96096cf44df8ac24413b36d1b718b1d5.tar.bz2
Each file in this commit has the issue where a function can return a
negative result but the result is used in a context that can only be positive.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/games/kpacman/score.cpp4
-rw-r--r--noncore/todayplugins/stockticker/libstocks/http.c19
2 files changed, 11 insertions, 12 deletions
diff --git a/noncore/games/kpacman/score.cpp b/noncore/games/kpacman/score.cpp
index 6878b81..737f03b 100644
--- a/noncore/games/kpacman/score.cpp
+++ b/noncore/games/kpacman/score.cpp
@@ -194,101 +194,101 @@ void Score::keyPressEvent(QKeyEvent *k)
if (key != Key_Return) {
if (key == RightKey || key == Key_Right)
if (++cursor.x > 16)
cursor.x = 14;
if (key == LeftKey || key == Key_Left)
if (--cursor.x < 14)
cursor.x = 16;
if (key == UpKey || key == Key_Up)
if (cursor.chr.unicode() < bitfont->lastChar())
cursor.chr = cursor.chr.unicode()+1;
else
cursor.chr = bitfont->firstChar();
if (key == DownKey || key == Key_Down)
if (cursor.chr.unicode() > bitfont->firstChar())
cursor.chr = cursor.chr.unicode()-1;
else
cursor.chr = bitfont->lastChar();
if (cursor.x == x && cursor.y == y &&
cursor.chr == hallOfFame[lastScore].name.at(cursor.x-14)) {
uint ascii = k->ascii();
if (ascii < bitfont->firstChar() || ascii > bitfont->lastChar())
ascii = toupper(ascii);
if (ascii >= bitfont->firstChar() && ascii <= bitfont->lastChar()) {
cursor.chr = ascii;
hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr;
if (++cursor.x > 16)
cursor.x = 14;
}
}
}
if (key == Key_Return) {
playerName[lastPlayer] = hallOfFame[lastScore].name;
write();
read();
lastScore = -1;
cursor.x = -1;
cursor.y = -1;
// killTimers();
emit toggleNew();
end();
}
if (x != cursor.x || y != cursor.y) {
- if (cursor.x != -1)
+ if (cursor.x != -1 && lastScore >= 0)
cursor.chr = hallOfFame[lastScore].name.at(cursor.x-14);
scrollRepeat = FALSE;
repaint(rect(x, y*1.25, cursor.chr), FALSE);
- } else
+ } else if (lastScore >= 0)
hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr;
if (key == UpKey || key == Key_Up || key == DownKey || key == Key_Down)
scrollRepeat = TRUE;
else
repaint(rect(cursor.x, cursor.y*1.25, cursor.chr), FALSE);
}
void Score::initKeys()
{
APP_CONFIG_BEGIN( cfg );
QString up("Up");
up = cfg->readEntry("upKey", (const char*) up);
UpKey = KAccel::stringToKey(up);
QString down("Down");
down = cfg->readEntry("downKey", (const char*) down);
DownKey = KAccel::stringToKey(down);
QString left("Left");
left = cfg->readEntry("leftKey", (const char*) left);
LeftKey = KAccel::stringToKey(left);
QString right("Right");
right = cfg->readEntry("rightKey", (const char*) right);
RightKey = KAccel::stringToKey(right);
APP_CONFIG_END( cfg );
}
void Score::confTiming(bool defGroup)
{
APP_CONFIG_BEGIN( cfg );
if (defGroup || cfg->hasKey("CursorBlinkMS"))
cursorBlinkMS = cfg->readNumEntry("CursorBlinkMS", 250);
if (defGroup || cfg->hasKey("HallOfFameMS"))
hallOfFameMS = cfg->readNumEntry("HallOfFameMS", 7000);
if (defGroup || cfg->hasKey("AfterPauseMS"))
afterPauseMS = cfg->readNumEntry("AfterPauseMS", 1000);
APP_CONFIG_END( cfg );
}
void Score::confScheme()
{
APP_CONFIG_BEGIN( cfg );
SAVE_CONFIG_GROUP( cfg, oldgroup );
QString newgroup;
// if not set, read mode and scheme from the configfile
diff --git a/noncore/todayplugins/stockticker/libstocks/http.c b/noncore/todayplugins/stockticker/libstocks/http.c
index cc78ab7..155ce4b 100644
--- a/noncore/todayplugins/stockticker/libstocks/http.c
+++ b/noncore/todayplugins/stockticker/libstocks/http.c
@@ -39,254 +39,253 @@
#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
+ }
+ 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;
}
/* create header */
if (http_proxy_server)
{
sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012",
http_server, http_file);
}
else
{
sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file);
}
hlg=strlen(header);
/* send header */
#ifdef __UNIX__
if (write(s,header,hlg)!=hlg)
#elif __WINDOWS__
if (send(s,header,hlg, 0)!=hlg)
#endif
{
#ifdef DEBUG
printf(" send header : NOK\n");
#endif
return ERRWHEA;
}
data_lgr = 0;
r=1;
while(r)
{
/* Clear Buffer */
memset(buf,0,BUF_SIZE+1);
#ifdef __UNIX__
r=read(s,buf,BUF_SIZE);
#elif __WINDOWS__
r=recv(s,buf,BUF_SIZE,0);
#endif
- if (r)
+ if (r > 0)
{
if(!data_lgr)
{
if((data = malloc(r+1))==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);
}
memcpy(data,buf,r);
data_lgr = r;
data[r]=0;
}
else
{
if((temp = malloc(r+data_lgr+1))==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);
}
memcpy(temp, data, data_lgr);
memcpy(temp+data_lgr, buf, r);
temp[r+data_lgr]=0;
data_lgr += r;
free(data);
data = temp;
}
}
}
/* close socket */
#ifdef __UNIX__
close(s);
#elif __WINDOWS__
closesocket(s);
#endif
#ifdef DEBUG
printf("%s\n", data);
#endif
/* get headers to test status line */
/* and to split headers and content */
temp = data;
header_founded = 0;
while( !header_founded )
{
if (!temp || *temp==0) return ERRRHEA;
if( *temp==0x0A )
{
/* test if it is the header end */
temp ++;
if (*temp == 0x0D) temp++;
if (*temp == 0x0A) header_founded = 1;
}
else
temp++;
}
*temp = 0;
temp++;
sscanf(data,"HTTP/1.%*d %03d",&error_code);
if (error_code != 200)
{
#ifdef DEBUG
printf(" HTTP error code : %d\n", error_code);
#endif
free(data);
return ERRPAHD;
}
if ((csv_ptr = malloc(strlen(temp)+1))==NULL)
{
free(data);
- fprintf(stderr,"Memory allocating error (%s line %d)\n"
- ,__FILE__, __LINE__);
+ fprintf(stderr,"Memory allocating error (%s line %d)\n",
+ __FILE__, __LINE__);
exit(1);
}
memcpy(csv_ptr, temp, strlen(temp)+1);
free(data);
#ifdef DEBUG
printf(" CSV\n");
printf("%s,\n", csv_ptr);
#endif
*pdata = csv_ptr;
return 0;
}
/******************************************************************************/
/* Set the proxy server to use */
/******************************************************************************/
libstocks_return_code set_proxy(char *proxy)
{
char *ptr;
char c;
#ifdef DEBUG
printf("*set_proxy\n");
#endif
/* Parse the proxy URL - It must start with http:// */
#ifdef __UNIX__
if (strncasecmp("http://",proxy,7)) return ERRPROX;
#elif __WINDOWS__
if (_mbsnbicmp("http://",proxy,7)) return ERRPROX;
#endif
proxy+=7;
/* find ":" in the proxy url */
ptr = proxy;
for (c=*ptr; (c && c!=':');) c=*ptr++;
/* ptr points just after the ":" or at the end of proxy if : not founded */
*(ptr-1)=0; /* clear the ":" */
http_proxy_server=strdup(proxy);
#ifdef DEBUG
printf("http_proxy_server : %s\n", http_proxy_server);