summaryrefslogtreecommitdiff
authorerik <erik>2007-01-24 19:57:51 (UTC)
committer erik <erik>2007-01-24 19:57:51 (UTC)
commit48d9219a96096cf44df8ac24413b36d1b718b1d5 (patch) (unidiff)
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) (ignore whitespace changes)
-rw-r--r--noncore/games/kpacman/score.cpp4
-rw-r--r--noncore/todayplugins/stockticker/libstocks/http.c95
2 files changed, 49 insertions, 50 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)
194 194
195 if (key != Key_Return) { 195 if (key != Key_Return) {
196 if (key == RightKey || key == Key_Right) 196 if (key == RightKey || key == Key_Right)
197 if (++cursor.x > 16) 197 if (++cursor.x > 16)
198 cursor.x = 14; 198 cursor.x = 14;
199 if (key == LeftKey || key == Key_Left) 199 if (key == LeftKey || key == Key_Left)
200 if (--cursor.x < 14) 200 if (--cursor.x < 14)
201 cursor.x = 16; 201 cursor.x = 16;
202 if (key == UpKey || key == Key_Up) 202 if (key == UpKey || key == Key_Up)
203 if (cursor.chr.unicode() < bitfont->lastChar()) 203 if (cursor.chr.unicode() < bitfont->lastChar())
204 cursor.chr = cursor.chr.unicode()+1; 204 cursor.chr = cursor.chr.unicode()+1;
205 else 205 else
206 cursor.chr = bitfont->firstChar(); 206 cursor.chr = bitfont->firstChar();
207 if (key == DownKey || key == Key_Down) 207 if (key == DownKey || key == Key_Down)
208 if (cursor.chr.unicode() > bitfont->firstChar()) 208 if (cursor.chr.unicode() > bitfont->firstChar())
209 cursor.chr = cursor.chr.unicode()-1; 209 cursor.chr = cursor.chr.unicode()-1;
210 else 210 else
211 cursor.chr = bitfont->lastChar(); 211 cursor.chr = bitfont->lastChar();
212 212
213 if (cursor.x == x && cursor.y == y && 213 if (cursor.x == x && cursor.y == y &&
214 cursor.chr == hallOfFame[lastScore].name.at(cursor.x-14)) { 214 cursor.chr == hallOfFame[lastScore].name.at(cursor.x-14)) {
215 uint ascii = k->ascii(); 215 uint ascii = k->ascii();
216 216
217 if (ascii < bitfont->firstChar() || ascii > bitfont->lastChar()) 217 if (ascii < bitfont->firstChar() || ascii > bitfont->lastChar())
218 ascii = toupper(ascii); 218 ascii = toupper(ascii);
219 219
220 if (ascii >= bitfont->firstChar() && ascii <= bitfont->lastChar()) { 220 if (ascii >= bitfont->firstChar() && ascii <= bitfont->lastChar()) {
221 cursor.chr = ascii; 221 cursor.chr = ascii;
222 hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr; 222 hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr;
223 if (++cursor.x > 16) 223 if (++cursor.x > 16)
224 cursor.x = 14; 224 cursor.x = 14;
225 } 225 }
226 } 226 }
227 } 227 }
228 228
229 if (key == Key_Return) { 229 if (key == Key_Return) {
230 playerName[lastPlayer] = hallOfFame[lastScore].name; 230 playerName[lastPlayer] = hallOfFame[lastScore].name;
231 write(); 231 write();
232 read(); 232 read();
233 lastScore = -1; 233 lastScore = -1;
234 cursor.x = -1; 234 cursor.x = -1;
235 cursor.y = -1; 235 cursor.y = -1;
236// killTimers(); 236// killTimers();
237 emit toggleNew(); 237 emit toggleNew();
238 end(); 238 end();
239 } 239 }
240 240
241 if (x != cursor.x || y != cursor.y) { 241 if (x != cursor.x || y != cursor.y) {
242 if (cursor.x != -1) 242 if (cursor.x != -1 && lastScore >= 0)
243 cursor.chr = hallOfFame[lastScore].name.at(cursor.x-14); 243 cursor.chr = hallOfFame[lastScore].name.at(cursor.x-14);
244 scrollRepeat = FALSE; 244 scrollRepeat = FALSE;
245 repaint(rect(x, y*1.25, cursor.chr), FALSE); 245 repaint(rect(x, y*1.25, cursor.chr), FALSE);
246 } else 246 } else if (lastScore >= 0)
247 hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr; 247 hallOfFame[lastScore].name.at(cursor.x-14) = cursor.chr;
248 248
249 if (key == UpKey || key == Key_Up || key == DownKey || key == Key_Down) 249 if (key == UpKey || key == Key_Up || key == DownKey || key == Key_Down)
250 scrollRepeat = TRUE; 250 scrollRepeat = TRUE;
251 else 251 else
252 repaint(rect(cursor.x, cursor.y*1.25, cursor.chr), FALSE); 252 repaint(rect(cursor.x, cursor.y*1.25, cursor.chr), FALSE);
253} 253}
254 254
255void Score::initKeys() 255void Score::initKeys()
256{ 256{
257 APP_CONFIG_BEGIN( cfg ); 257 APP_CONFIG_BEGIN( cfg );
258 QString up("Up"); 258 QString up("Up");
259 up = cfg->readEntry("upKey", (const char*) up); 259 up = cfg->readEntry("upKey", (const char*) up);
260 UpKey = KAccel::stringToKey(up); 260 UpKey = KAccel::stringToKey(up);
261 261
262 QString down("Down"); 262 QString down("Down");
263 down = cfg->readEntry("downKey", (const char*) down); 263 down = cfg->readEntry("downKey", (const char*) down);
264 DownKey = KAccel::stringToKey(down); 264 DownKey = KAccel::stringToKey(down);
265 265
266 QString left("Left"); 266 QString left("Left");
267 left = cfg->readEntry("leftKey", (const char*) left); 267 left = cfg->readEntry("leftKey", (const char*) left);
268 LeftKey = KAccel::stringToKey(left); 268 LeftKey = KAccel::stringToKey(left);
269 269
270 QString right("Right"); 270 QString right("Right");
271 right = cfg->readEntry("rightKey", (const char*) right); 271 right = cfg->readEntry("rightKey", (const char*) right);
272 RightKey = KAccel::stringToKey(right); 272 RightKey = KAccel::stringToKey(right);
273 APP_CONFIG_END( cfg ); 273 APP_CONFIG_END( cfg );
274} 274}
275 275
276void Score::confTiming(bool defGroup) 276void Score::confTiming(bool defGroup)
277{ 277{
278 APP_CONFIG_BEGIN( cfg ); 278 APP_CONFIG_BEGIN( cfg );
279 if (defGroup || cfg->hasKey("CursorBlinkMS")) 279 if (defGroup || cfg->hasKey("CursorBlinkMS"))
280 cursorBlinkMS = cfg->readNumEntry("CursorBlinkMS", 250); 280 cursorBlinkMS = cfg->readNumEntry("CursorBlinkMS", 250);
281 if (defGroup || cfg->hasKey("HallOfFameMS")) 281 if (defGroup || cfg->hasKey("HallOfFameMS"))
282 hallOfFameMS = cfg->readNumEntry("HallOfFameMS", 7000); 282 hallOfFameMS = cfg->readNumEntry("HallOfFameMS", 7000);
283 if (defGroup || cfg->hasKey("AfterPauseMS")) 283 if (defGroup || cfg->hasKey("AfterPauseMS"))
284 afterPauseMS = cfg->readNumEntry("AfterPauseMS", 1000); 284 afterPauseMS = cfg->readNumEntry("AfterPauseMS", 1000);
285 APP_CONFIG_END( cfg ); 285 APP_CONFIG_END( cfg );
286} 286}
287 287
288void Score::confScheme() 288void Score::confScheme()
289{ 289{
290 APP_CONFIG_BEGIN( cfg ); 290 APP_CONFIG_BEGIN( cfg );
291 SAVE_CONFIG_GROUP( cfg, oldgroup ); 291 SAVE_CONFIG_GROUP( cfg, oldgroup );
292 QString newgroup; 292 QString newgroup;
293 293
294 // if not set, read mode and scheme from the configfile 294 // 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 @@
39#include <string.h> 39#include <string.h>
40#include <stdlib.h> 40#include <stdlib.h>
41#include <stdio.h> 41#include <stdio.h>
42 42
43#include "http.h" 43#include "http.h"
44#include "stocks.h" 44#include "stocks.h"
45 45
46#define BUF_SIZE 1024 46#define BUF_SIZE 1024
47#define HEADER_MAXBUF 512 47#define HEADER_MAXBUF 512
48 48
49/* pointer to proxy server name or NULL */ 49/* pointer to proxy server name or NULL */
50char *http_proxy_server=NULL; 50char *http_proxy_server=NULL;
51/* proxy server port number or 0 */ 51/* proxy server port number or 0 */
52int http_proxy_port=0; 52int http_proxy_port=0;
53 53
54/*****************************************************************************/ 54/*****************************************************************************/
55/* Gets the file from http://http_server/http_file */ 55/* Gets the file from http://http_server/http_file */
56/* This function is used to get quotes csv file from yahoo. */ 56/* This function is used to get quotes csv file from yahoo. */
57/* It allocates memory for the file and defines *pdata (the pointer of datas)*/ 57/* It allocates memory for the file and defines *pdata (the pointer of datas)*/
58/*****************************************************************************/ 58/*****************************************************************************/
59libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) 59libstocks_return_code http_get(char *http_file, char *http_server, char **pdata)
60{ 60{
61 struct hostent *host; /* structs needed by socket */ 61 struct hostent *host; /* structs needed by socket */
62 struct sockaddr_in server; 62 struct sockaddr_in server;
63 int s; /* socket descriptor */ 63 int s; /* socket descriptor */
64 char header[HEADER_MAXBUF]; /* request header */ 64 char header[HEADER_MAXBUF]; /* request header */
65 int hlg; /* header length */ 65 int hlg; /* header length */
66 char buf[BUF_SIZE+1]; /* tempory buffer from socket read */ 66 char buf[BUF_SIZE+1]; /* tempory buffer from socket read */
67 int r; /* number of bytes read by read function */ 67 int r; /* number of bytes read by read function */
68 char *data=NULL; /* http server response */ 68 char *data=NULL; /* http server response */
69 int data_lgr; /* http server response length */ 69 int data_lgr; /* http server response length */
70 char *temp; /* pointer used to split header and csv */ 70 char *temp; /* pointer used to split header and csv */
71 int error_code; /* error code returned by http server */ 71 int error_code; /* error code returned by http server */
72 char *csv_ptr; /* pointer to the csv content */ 72 char *csv_ptr; /* pointer to the csv content */
73 int header_founded; /* test if header is founded */ 73 int header_founded; /* test if header is founded */
74 74
75#ifdef DEBUG 75#ifdef DEBUG
76 printf("*http_get\n"); 76 printf("*http_get\n");
77#endif 77#endif
78 78
79 /* get host info by name :*/ 79 /* get host info by name :*/
80 if ((host = gethostbyname( http_proxy_server ? http_proxy_server : http_server))) 80 if ((host = gethostbyname( http_proxy_server ? http_proxy_server : http_server)))
81 { 81 {
82 memset((char *) &server,0, sizeof(server)); 82 memset((char *) &server,0, sizeof(server));
83 memmove((char *) &server.sin_addr, host->h_addr, host->h_length); 83 memmove((char *) &server.sin_addr, host->h_addr, host->h_length);
84 server.sin_family = host->h_addrtype; 84 server.sin_family = host->h_addrtype;
85 server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); 85 server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 );
86 86
87 } else 87 }
88 { 88 else
89 89 {
90#ifdef DEBUG 90#ifdef DEBUG
91 printf(" gethostbyname : NOK\n"); 91 printf(" gethostbyname : NOK\n");
92#endif 92#endif
93 return ERRHOST; 93 return ERRHOST;
94 } 94 }
95 95
96 /* create socket */ 96 /* create socket */
97 if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) 97 if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0)
98 { 98 {
99
100#ifdef DEBUG 99#ifdef DEBUG
101 printf(" create socket : NOK\n"); 100 printf(" create socket : NOK\n");
102#endif 101#endif
103 return ERRSOCK; 102 return ERRSOCK;
104 } 103 }
105 104
106 setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, 0, 0); 105 setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, 0, 0);
107 106
108 /* connect to server */ 107 /* connect to server */
109 if (connect(s, &server, sizeof(server)) < 0) 108 if (connect(s, &server, sizeof(server)) < 0)
110 { 109 {
111#ifdef DEBUG 110#ifdef DEBUG
112 printf(" connect to server : NOK\n"); 111 printf(" connect to server : NOK\n");
113#endif 112#endif
114 113
115#ifdef __UNIX__ 114#ifdef __UNIX__
116 close(s); 115 close(s);
117#elif __WINDOWS__ 116#elif __WINDOWS__
118 closesocket(s); 117 closesocket(s);
119#endif 118#endif
120 return ERRCONN; 119 return ERRCONN;
121 } 120 }
122 121
123 /* create header */ 122 /* create header */
124 if (http_proxy_server) 123 if (http_proxy_server)
125 { 124 {
126 sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012", 125 sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012",
127 http_server, http_file); 126 http_server, http_file);
128 } 127 }
129 else 128 else
130 { 129 {
131 sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file); 130 sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file);
132 } 131 }
133 132
134 hlg=strlen(header); 133 hlg=strlen(header);
135 134
136 /* send header */ 135 /* send header */
137#ifdef __UNIX__ 136#ifdef __UNIX__
138 if (write(s,header,hlg)!=hlg) 137 if (write(s,header,hlg)!=hlg)
139#elif __WINDOWS__ 138#elif __WINDOWS__
140 if (send(s,header,hlg, 0)!=hlg) 139 if (send(s,header,hlg, 0)!=hlg)
141#endif 140#endif
142 { 141 {
143#ifdef DEBUG 142#ifdef DEBUG
144 printf(" send header : NOK\n"); 143 printf(" send header : NOK\n");
145#endif 144#endif
146 return ERRWHEA; 145 return ERRWHEA;
147 } 146 }
148 147
149 data_lgr = 0; 148 data_lgr = 0;
150 r=1; 149 r=1;
151 while(r) 150 while(r)
152 { 151 {
153 /* Clear Buffer */ 152 /* Clear Buffer */
154 memset(buf,0,BUF_SIZE+1); 153 memset(buf,0,BUF_SIZE+1);
155 154
156#ifdef __UNIX__ 155#ifdef __UNIX__
157 r=read(s,buf,BUF_SIZE); 156 r=read(s,buf,BUF_SIZE);
158#elif __WINDOWS__ 157#elif __WINDOWS__
159 r=recv(s,buf,BUF_SIZE,0); 158 r=recv(s,buf,BUF_SIZE,0);
160#endif 159#endif
161 160
162 if (r) 161 if (r > 0)
163 { 162 {
164 if(!data_lgr) 163 if(!data_lgr)
165 { 164 {
166 if((data = malloc(r+1))==NULL) 165 if((data = malloc(r+1))==NULL)
167 { 166 {
168 fprintf(stderr,"Memory allocating error (%s line %d)\n" 167 fprintf(stderr,"Memory allocating error (%s line %d)\n",
169 ,__FILE__, __LINE__); 168 __FILE__, __LINE__);
170 exit(1); 169 exit(1);
171 } 170 }
172 171
173 memcpy(data,buf,r); 172 memcpy(data,buf,r);
174 data_lgr = r; 173 data_lgr = r;
175 data[r]=0; 174 data[r]=0;
176 } 175 }
177 else 176 else
178 { 177 {
179 if((temp = malloc(r+data_lgr+1))==NULL) 178 if((temp = malloc(r+data_lgr+1))==NULL)
180 { 179 {
181 fprintf(stderr,"Memory allocating error (%s line %d)\n" 180 fprintf(stderr,"Memory allocating error (%s line %d)\n",
182 ,__FILE__, __LINE__); 181 __FILE__, __LINE__);
183 exit(1); 182 exit(1);
184 } 183 }
185 memcpy(temp, data, data_lgr); 184 memcpy(temp, data, data_lgr);
186 memcpy(temp+data_lgr, buf, r); 185 memcpy(temp+data_lgr, buf, r);
187 temp[r+data_lgr]=0; 186 temp[r+data_lgr]=0;
188 data_lgr += r; 187 data_lgr += r;
189 free(data); 188 free(data);
190 data = temp; 189 data = temp;
191 } 190 }
192 } 191 }
193 } 192 }
194 193
195 /* close socket */ 194 /* close socket */
196#ifdef __UNIX__ 195#ifdef __UNIX__
197 close(s); 196 close(s);
198#elif __WINDOWS__ 197#elif __WINDOWS__
199 closesocket(s); 198 closesocket(s);
200#endif 199#endif
201 200
202#ifdef DEBUG 201#ifdef DEBUG
203 printf("%s\n", data); 202 printf("%s\n", data);
204#endif 203#endif
205 204
206 /* get headers to test status line */ 205 /* get headers to test status line */
207 /* and to split headers and content */ 206 /* and to split headers and content */
208 207
209 temp = data; 208 temp = data;
210 header_founded = 0; 209 header_founded = 0;
211 while( !header_founded ) 210 while( !header_founded )
212 { 211 {
213 if (!temp || *temp==0) return ERRRHEA; 212 if (!temp || *temp==0) return ERRRHEA;
214 213
215 if( *temp==0x0A ) 214 if( *temp==0x0A )
216 { 215 {
217 /* test if it is the header end */ 216 /* test if it is the header end */
218 temp ++; 217 temp ++;
219 if (*temp == 0x0D) temp++; 218 if (*temp == 0x0D) temp++;
220 if (*temp == 0x0A) header_founded = 1; 219 if (*temp == 0x0A) header_founded = 1;
221 } 220 }
222 else 221 else
223 temp++; 222 temp++;
224 } 223 }
225 224
226 *temp = 0; 225 *temp = 0;
227 temp++; 226 temp++;
228 227
229 sscanf(data,"HTTP/1.%*d %03d",&error_code); 228 sscanf(data,"HTTP/1.%*d %03d",&error_code);
230 229
231 if (error_code != 200) 230 if (error_code != 200)
232 { 231 {
233#ifdef DEBUG 232#ifdef DEBUG
234 printf(" HTTP error code : %d\n", error_code); 233 printf(" HTTP error code : %d\n", error_code);
235#endif 234#endif
236 free(data); 235 free(data);
237 return ERRPAHD; 236 return ERRPAHD;
238 } 237 }
239 238
240 if ((csv_ptr = malloc(strlen(temp)+1))==NULL) 239 if ((csv_ptr = malloc(strlen(temp)+1))==NULL)
241 { 240 {
242 free(data); 241 free(data);
243 fprintf(stderr,"Memory allocating error (%s line %d)\n" 242 fprintf(stderr,"Memory allocating error (%s line %d)\n",
244 ,__FILE__, __LINE__); 243 __FILE__, __LINE__);
245 exit(1); 244 exit(1);
246 } 245 }
247 246
248 memcpy(csv_ptr, temp, strlen(temp)+1); 247 memcpy(csv_ptr, temp, strlen(temp)+1);
249 free(data); 248 free(data);
250 249
251#ifdef DEBUG 250#ifdef DEBUG
252 printf(" CSV\n"); 251 printf(" CSV\n");
253 printf("%s,\n", csv_ptr); 252 printf("%s,\n", csv_ptr);
254#endif 253#endif
255 254
256 *pdata = csv_ptr; 255 *pdata = csv_ptr;
257 256
258 return 0; 257 return 0;
259} 258}
260 259
261/******************************************************************************/ 260/******************************************************************************/
262/* Set the proxy server to use */ 261/* Set the proxy server to use */
263/******************************************************************************/ 262/******************************************************************************/
264libstocks_return_code set_proxy(char *proxy) 263libstocks_return_code set_proxy(char *proxy)
265{ 264{
266 char *ptr; 265 char *ptr;
267 char c; 266 char c;
268 267
269#ifdef DEBUG 268#ifdef DEBUG
270 printf("*set_proxy\n"); 269 printf("*set_proxy\n");
271#endif 270#endif
272 271
273 /* Parse the proxy URL - It must start with http:// */ 272 /* Parse the proxy URL - It must start with http:// */
274#ifdef __UNIX__ 273#ifdef __UNIX__
275 if (strncasecmp("http://",proxy,7)) return ERRPROX; 274 if (strncasecmp("http://",proxy,7)) return ERRPROX;
276#elif __WINDOWS__ 275#elif __WINDOWS__
277 if (_mbsnbicmp("http://",proxy,7)) return ERRPROX; 276 if (_mbsnbicmp("http://",proxy,7)) return ERRPROX;
278#endif 277#endif
279 278
280 proxy+=7; 279 proxy+=7;
281 280
282 /* find ":" in the proxy url */ 281 /* find ":" in the proxy url */
283 ptr = proxy; 282 ptr = proxy;
284 for (c=*ptr; (c && c!=':');) c=*ptr++; 283 for (c=*ptr; (c && c!=':');) c=*ptr++;
285 284
286 /* ptr points just after the ":" or at the end of proxy if : not founded */ 285 /* ptr points just after the ":" or at the end of proxy if : not founded */
287 *(ptr-1)=0; /* clear the ":" */ 286 *(ptr-1)=0; /* clear the ":" */
288 287
289 http_proxy_server=strdup(proxy); 288 http_proxy_server=strdup(proxy);
290 289
291#ifdef DEBUG 290#ifdef DEBUG
292 printf("http_proxy_server : %s\n", http_proxy_server); 291 printf("http_proxy_server : %s\n", http_proxy_server);