2001-05-21 14:11:29 +00:00

320 lines
14 KiB
Plaintext

$OpenBSD: patch-timebomb_c,v 1.3 2001/05/21 14:11:30 wilfried Exp $
--- timebomb.c.orig Mon Nov 16 15:42:54 1998
+++ timebomb.c Mon May 21 14:23:56 2001
@@ -4,8 +4,8 @@
#include <X11/xpm.h>
#include <X11/Xproto.h>
#include <WMaker.h>
-#include <WINGs.h>
-#include "WINGsP.h"
+#include <WINGs/WINGs.h>
+#include <WINGs/WINGsP.h>
#include <wraster.h>
#include <signal.h>
#include "xlibgeneral.h"
@@ -94,7 +94,7 @@ XpmIcon countbar;
XpmIcon rbuttonb;
XpmIcon id;
XpmIcon timebombicon;
-XpmIcon clock;
+XpmIcon clockicon;
XpmIcon title;
XpmIcon about;
int abouttick;
@@ -184,7 +184,7 @@ int main(int argc, char** argv){
if(CheckArg(argc, argv, "-h")){print_help();exit(0);}
if(CheckArg(argc, argv, "-?")){print_help();exit(0);}
- sprintf(stringbuffer[0],"xxxxxxxxxxxxxxxxxxxxxxxxxx");
+ snprintf(stringbuffer[0],sizeof(stringbuffer[0]),"xxxxxxxxxxxxxxxxxxxxxxxxxx");
string[0]=stringbuffer[0];
string[1]=NULL;
XStringListToTextProperty(string,1,&xtp);
@@ -202,7 +202,7 @@ int main(int argc, char** argv){
x= 150;
y= 64;
/****************************/
- homedir=malloc(strlen(getenv("HOME"))+strlen(MODEFILE));
+ homedir=malloc(strlen(getenv("HOME"))+strlen(MODEFILE)+1);
sprintf(homedir,"%s%s",getenv("HOME"),MODEFILE);
modefile=fopen(homedir, "r");
if(!modefile){
@@ -307,7 +307,7 @@ int main(int argc, char** argv){
WMMenuAddSubmenu(menu, "Mode",menu_pref);
i=0;
while(i<maxmode){
- sprintf(defaultstring,"%dx%d, mines x%d %d seconds",tbtable[i]->x,tbtable[i]->y,tbtable[i]->bs,tbtable[i]->clock);
+ snprintf(defaultstring,sizeof(defaultstring),"%dx%d, mines x%d %d seconds",tbtable[i]->x,tbtable[i]->y,tbtable[i]->bs,tbtable[i]->clock);
WMMenuAddItem(menu_pref, defaultstring, (WMMenuAction)call_mode,tbtable[i],NULL,NULL);
i++;
}
@@ -340,7 +340,7 @@ int main(int argc, char** argv){
WMProcessEvent(app,&ev);
yy=0;
if(iconswitch[SW_GETNAME]){
- if(panel[2]->done){
+ {
iconswitch[SW_GETNAME]=0;
if(panel[2]->result == WAPRDefault){
pointman= WMGetTextFieldText(panel[2]->text);
@@ -354,7 +354,7 @@ int main(int argc, char** argv){
}
}
if(iconswitch[SW_SETBOMB] && !iconswitch[SW_GETNAME]){
- if(panel[0]->done){
+ {
iconswitch[SW_SETBOMB]=0;
if(panel[0]->result == WAPRDefault)
pointman= WMGetTextFieldText(panel[0]->text);
@@ -370,7 +370,7 @@ int main(int argc, char** argv){
}
}
if(iconswitch[SW_SETSIZE] && !iconswitch[SW_GETNAME]){
- if(panel[3]->done){
+ {
iconswitch[SW_SETSIZE]=0;
if(panel[3]->result == WAPRDefault)
pointman= WMGetTextFieldText(panel[3]->text);
@@ -394,7 +394,7 @@ int main(int argc, char** argv){
}
}
if(iconswitch[SW_SETTIME] && !iconswitch[SW_GETNAME]){
- if(panel[1]->done){
+ {
iconswitch[SW_SETTIME]=0;
if(panel[1]->result == WAPRDefault)
pointman= WMGetTextFieldText(panel[1]->text);
@@ -563,8 +563,8 @@ int main(int argc, char** argv){
char winstring[100];
char buffer[100];
iconswitch[SW_CHECKNAME]=1;
- sprintf(filename,"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
- homedir=malloc(strlen(getenv("HOME"))+strlen(filename));
+ snprintf(filename,sizeof(filename),"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
+ homedir=malloc(strlen(getenv("HOME"))+strlen(filename)+1);
sprintf(homedir,"%s%s",getenv("HOME"),filename);
historyfile=fopen(homedir, "a+");
free(homedir);
@@ -576,7 +576,7 @@ int main(int argc, char** argv){
}
nrecord=elem;
fclose(historyfile);
- sprintf(winstring,"a %d",clockn);
+ snprintf(winstring,sizeof(winstring),"a %d",clockn);
if(elem<MAXRECORD)
getname();
else if(elem && history_tcomparestr(history_table[elem-1],winstring)>0) getname();
@@ -598,7 +598,7 @@ static void call_setbs(void *foo, int it
if(!iconswitch[SW_GETNAME])
if(!iconswitch[SW_SETBOMB]){
iconswitch[SW_SETBOMB]=1;
- sprintf(stringbuffer[2],"%d",tb.bs);
+ snprintf(stringbuffer[2],sizeof(stringbuffer[2]),"%d",tb.bs);
panel[0] = WMCreateInputPanel(scr,NULL, "Set bombs",
"how many bomb you want?",
stringbuffer[2], "OK", "Cancel");
@@ -610,7 +610,7 @@ static void call_setclock(void *foo, int
if(!iconswitch[SW_GETNAME])
if(!iconswitch[SW_SETTIME]){
iconswitch[SW_SETTIME]=1;
- sprintf(stringbuffer[2],"%d",tb.clock);
+ snprintf(stringbuffer[2],sizeof(stringbuffer[2]),"%d",tb.clock);
panel[1] = WMCreateInputPanel(scr, NULL,"Set time",
"how long you need?",
stringbuffer[2], "OK", "Cancel");
@@ -621,7 +621,7 @@ static void call_setclock(void *foo, int
static void getname(){
if(!iconswitch[SW_GETNAME]){
iconswitch[SW_GETNAME]=1;
- sprintf(stringbuffer[2],"anonymous");
+ snprintf(stringbuffer[2],sizeof(stringbuffer[2]),"anonymous");
panel[2] = WMCreateInputPanel(scr,NULL, "Enter your name",
"What's your name?",
stringbuffer[2], "OK", "Cancel");
@@ -633,7 +633,7 @@ static void call_setsize(void *foo, int
if(!iconswitch[SW_GETNAME])
if(!iconswitch[SW_SETSIZE]){
iconswitch[SW_SETSIZE]=1;
- sprintf(stringbuffer[2],"%dx%d",tb.x,tb.y);
+ snprintf(stringbuffer[2],sizeof(stringbuffer[2]),"%dx%d",tb.x,tb.y);
panel[3] = WMCreateInputPanel(scr,NULL, "Enter size",
"WIDTHxHEIGHT",
stringbuffer[2], "OK", "Cancel");
@@ -698,8 +698,8 @@ static void history_tload(){
FILE *historyfile;
char filename[MAXPATH];
char buffer[200];
- sprintf(filename,"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
- homedir=malloc(strlen(getenv("HOME"))+strlen(filename));
+ snprintf(filename,sizeof(filename),"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
+ homedir=malloc(strlen(getenv("HOME"))+strlen(filename)+1);
sprintf(homedir,"%s%s",getenv("HOME"),filename);
historyfile=fopen(homedir, "a+");
free(homedir);
@@ -721,8 +721,8 @@ static void history_add(char *name,int t
FILE *historyfile;
char filename[MAXPATH];
char buffer[200];
- sprintf(filename,"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
- homedir=malloc(strlen(getenv("HOME"))+strlen(filename));
+ snprintf(filename,sizeof(filename),"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
+ homedir=malloc(strlen(getenv("HOME"))+strlen(filename)+1);
sprintf(homedir,"%s%s",getenv("HOME"),filename);
historyfile=fopen(homedir, "r");
rewind(historyfile);
@@ -733,7 +733,7 @@ static void history_add(char *name,int t
elem++;
}
fclose(historyfile);
- sprintf(buffer,"%s %d\n",name,time);
+ snprintf(buffer,sizeof(buffer),"%s %d\n",name,time);
history_table[elem]=strdup(buffer);
nrecord=elem+1;
if(iconswitch[SW_HISTORY]){
@@ -777,8 +777,8 @@ static void history_renew(WMList *tlist)
}
nrecord=elem;
- sprintf(filename,"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
- homedir=malloc(strlen(getenv("HOME"))+strlen(filename));
+ snprintf(filename,sizeof(filename),"/.wmtimebomb/%dx%dx%dx%d",tb.x,tb.y,tb.bs,tb.clock);
+ homedir=malloc(strlen(getenv("HOME"))+strlen(filename)+1);
sprintf(homedir,"%s%s",getenv("HOME"),filename);
historyfile=fopen(homedir, "w");
free(homedir);
@@ -814,7 +814,7 @@ static void history_treinit(){
int elem;
char buffer[200];
if(iconswitch[SW_HISTORY]){
- sprintf(buffer,"width:%d height%d time:%d bomb:%d",tb.x,tb.y,tb.clock,tb.bs);
+ snprintf(buffer,sizeof(buffer),"width:%d height%d time:%d bomb:%d",tb.x,tb.y,tb.clock,tb.bs);
WMSetLabelText(historylist->label,buffer);
WMClearList(historylist->historyList);
history_tload();
@@ -933,7 +933,7 @@ static void call_history(void *foo, int
WMRealizeWidget(historylist->win);
WMMapSubwidgets(historylist->win);
WMMapWidget(historylist->win);
- sprintf(buffer,"width:%d height%d time:%d bomb:%d",tb.x,tb.y,tb.clock,tb.bs);
+ snprintf(buffer,sizeof(buffer),"width:%d height%d time:%d bomb:%d",tb.x,tb.y,tb.clock,tb.bs);
WMSetLabelText(historylist->label,buffer);
elem=WMGetListNumberOfRows(historylist->historyList);
if(elem)WMSelectListItem(historylist->historyList,0);
@@ -1049,9 +1049,9 @@ void init_pixmap(){
about.attributes.width=256;
about.attributes.height=256;
about.attributes.valuemask=(XpmSize);
- clock.attributes.width=200;
- clock.attributes.height=BS;
- clock.attributes.valuemask=XpmSize;
+ clockicon.attributes.width=200;
+ clockicon.attributes.height=BS;
+ clockicon.attributes.valuemask=XpmSize;
countbar.attributes.width=160;
countbar.attributes.height=BS;
countbar.attributes.valuemask=XpmSize;
@@ -1081,7 +1081,7 @@ void init_pixmap(){
XpmCreatePixmapFromData(display,window, rbuttonb_xpm,
&rbuttonb.pixmap, &rbuttonb.mask, &rbuttonb.attributes);
XpmCreatePixmapFromData(display,window, clock_xpm,
- &clock.pixmap, &clock.mask, &clock.attributes);
+ &clockicon.pixmap, &clockicon.mask, &clockicon.attributes);
XpmCreatePixmapFromData(display,window, countbar_xpm,
&countbar.pixmap, &countbar.mask, &countbar.attributes);
@@ -1175,27 +1175,27 @@ void show_hint(){
}
void redraw_iconwin(){
- XCopyArea(display,clock.pixmap,iconwin,igc,clockn/100*BS,0,BS,BS,0,BS);
- XCopyArea(display,clock.pixmap,iconwin,igc,(clockn%100)/10*BS,0,BS,BS,BS,BS);
- XCopyArea(display,clock.pixmap,iconwin,igc,clockn%10*BS,0,BS,BS,BSx2,BS);
+ XCopyArea(display,clockicon.pixmap,iconwin,igc,clockn/100*BS,0,BS,BS,0,BS);
+ XCopyArea(display,clockicon.pixmap,iconwin,igc,(clockn%100)/10*BS,0,BS,BS,BS,BS);
+ XCopyArea(display,clockicon.pixmap,iconwin,igc,clockn%10*BS,0,BS,BS,BSx2,BS);
if(windowswitch[0]){
XCopyArea(display,title.pixmap,window,gc,(tb.x-4)*BS,BS,BSx3,BS,(tb.x-4)*BS,BS);
if(clockn/1000){
- XCopyArea(display,clock.pixmap,window,igc,clockn/1000*BS,0,BS,BS,(tb.x-4)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,(clockn%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,clockn/1000*BS,0,BS,BS,(tb.x-4)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,(clockn%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
}
else if((clockn%1000)/100){
- XCopyArea(display,clock.pixmap,window,igc,(clockn%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,(clockn%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
}
else if((clockn%100)/10){
- XCopyArea(display,clock.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
- XCopyArea(display,clock.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,(clockn%100)/10*BS,0,BS,BS,(tb.x-2)*BS,BS);
+ XCopyArea(display,clockicon.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
}
- else XCopyArea(display,clock.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
+ else XCopyArea(display,clockicon.pixmap,window,igc,clockn%10*BS,0,BS,BS,(tb.x-1)*BS,BS);
}
if(!(iconswitch[SW_RESTART]||iconswitch[SW_RESETTIME]||iconswitch[SW_CHEAT])){
XCopyArea(display,sbutton.pixmap,iconwin,igc,0,0,BS,BS,0,0);
@@ -1210,21 +1210,21 @@ void redraw_counter(){
if(windowswitch[1]){
XCopyArea(display,title.pixmap,window,gc,(tb.x-4)*BS,0,BSx3,BS,(tb.x-4)*BS,0);
if(bombcount/1000){
- XCopyArea(display,clock.pixmap,window,igc,bombcount/1000*BS,0,BS,BS,(tb.x-4)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,(bombcount%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,bombcount/1000*BS,0,BS,BS,(tb.x-4)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,(bombcount%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
}
else if((bombcount%1000)/100){
- XCopyArea(display,clock.pixmap,window,igc,(bombcount%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,(bombcount%1000)/100*BS,0,BS,BS,(tb.x-3)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
}
else if((bombcount%100)/10){
- XCopyArea(display,clock.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
- XCopyArea(display,clock.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,(bombcount%100)/10*BS,0,BS,BS,(tb.x-2)*BS,0);
+ XCopyArea(display,clockicon.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
}
- else XCopyArea(display,clock.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
+ else XCopyArea(display,clockicon.pixmap,window,igc,bombcount%10*BS,0,BS,BS,(tb.x-1)*BS,0);
}
redraw_iconwin();
}
@@ -1296,17 +1296,17 @@ void redraw_clock(){
stringbuffer[1][0]=0;
break;
case 1:
- sprintf(stringbuffer[1]," Game Over");
+ snprintf(stringbuffer[1],sizeof(stringbuffer[1])," Game Over");
break;
case 2:
- sprintf(stringbuffer[1]," Congratulations");
+ snprintf(stringbuffer[1],sizeof(stringbuffer[1])," Congratulations");
break;
}
- sprintf(stringbuffer[0],"%d%s",clockn,stringbuffer[1]);
+ snprintf(stringbuffer[0],sizeof(stringbuffer[0]),"%d%s",clockn,stringbuffer[1]);
string[0]=stringbuffer[0];
}
else {
- sprintf(stringbuffer[0],"Time Bomb");
+ snprintf(stringbuffer[0],sizeof(stringbuffer[0]),"Time Bomb");
}
XSetWMName(display,window,&xtp);
redraw_iconwin();