diff options
author | naddy <naddy@FreeBSD.org> | 2015-09-20 04:04:52 +0800 |
---|---|---|
committer | naddy <naddy@FreeBSD.org> | 2015-09-20 04:04:52 +0800 |
commit | f75912939aa2bddf39cae6a8fbf40ed4e84669f6 (patch) | |
tree | 87387113a7b07f40e897c16da337669978555dd7 | |
parent | bd68b2beb2a751a97f1884c0bd571e8b146ab36a (diff) | |
download | freebsd-ports-gnome-f75912939aa2bddf39cae6a8fbf40ed4e84669f6.tar.gz freebsd-ports-gnome-f75912939aa2bddf39cae6a8fbf40ed4e84669f6.tar.zst freebsd-ports-gnome-f75912939aa2bddf39cae6a8fbf40ed4e84669f6.zip |
Properly fix the LP64 issue in the application resource handling rather
than praying that globals end up in the lower 32-bit address space.
Add a number of missing includes, missing prototypes, etc.
-rw-r--r-- | games/xpipeman/Makefile | 5 | ||||
-rw-r--r-- | games/xpipeman/files/patch-Imakefile | 6 | ||||
-rw-r--r-- | games/xpipeman/files/patch-game.c | 62 | ||||
-rw-r--r-- | games/xpipeman/files/patch-graphics.c | 22 | ||||
-rw-r--r-- | games/xpipeman/files/patch-main.c | 109 | ||||
-rw-r--r-- | games/xpipeman/files/patch-score.c | 25 | ||||
-rw-r--r-- | games/xpipeman/files/patch-xpipeman.h | 44 |
7 files changed, 236 insertions, 37 deletions
diff --git a/games/xpipeman/Makefile b/games/xpipeman/Makefile index b9e6cb0e18ec..b98e91f9db8c 100644 --- a/games/xpipeman/Makefile +++ b/games/xpipeman/Makefile @@ -3,7 +3,7 @@ PORTNAME= xpipeman PORTVERSION= 1.0 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= games MASTER_SITES= SUNSITE/games/strategy DISTNAME= ${PORTNAME} @@ -11,9 +11,6 @@ DISTNAME= ${PORTNAME} MAINTAINER= ports@FreeBSD.org COMMENT= Connect the pipes to stop the leaks -# LP64 issues -ONLY_FOR_ARCHS= i386 amd64 - USES= imake tar:Z USE_XORG= x11 xaw xext xmu xt sm ice CFLAGS+= -Wno-error=return-type diff --git a/games/xpipeman/files/patch-Imakefile b/games/xpipeman/files/patch-Imakefile index f5f57b0be476..75d173f1fdb7 100644 --- a/games/xpipeman/files/patch-Imakefile +++ b/games/xpipeman/files/patch-Imakefile @@ -1,5 +1,5 @@ ---- ./Imakefile.orig 1992-07-28 23:56:27.000000000 +0000 -+++ ./Imakefile 2013-05-31 12:26:22.000000000 +0000 +--- Imakefile.orig 1992-07-28 23:56:27 UTC ++++ Imakefile @@ -1,7 +1,7 @@ - SCORE_FILE = -DSCORE_FILE=\"/usr/games/lib/xpipescores\" @@ -20,7 +20,7 @@ all:: xpipeman ComplexProgramTarget(xpipeman) -@@ -19,4 +22,3 @@ +@@ -19,4 +22,3 @@ ComplexProgramTarget(xpipeman) * InstallManPage(xpipeman,$(MANDIR)) * InstallProgram(xpipeman,$(BINDIR)) */ diff --git a/games/xpipeman/files/patch-game.c b/games/xpipeman/files/patch-game.c new file mode 100644 index 000000000000..c525c4c2b3c8 --- /dev/null +++ b/games/xpipeman/files/patch-game.c @@ -0,0 +1,62 @@ +--- game.c.orig 1991-09-13 20:32:11 UTC ++++ game.c +@@ -35,6 +35,7 @@ + */ + + #include <X11/Intrinsic.h> ++#include <stdlib.h> + #include "xpipeman.h" + + /* some of these are global */ +@@ -442,7 +443,7 @@ new_level() + blkrstart=0; + blkfull = STARTFULL; + +- if (current_callback != NULL) ++ if (current_callback != 0) + XtRemoveTimeOut(current_callback); + current_callback = XtAddTimeOut(flow_time_start,show_when_flow,NULL); + +@@ -458,7 +459,7 @@ new_level() + void + speed_up_flow() + { int i; +- if (current_callback != NULL) ++ if (current_callback != 0) + XtRemoveTimeOut(current_callback); + flow_time = FASTFLOW; + current_callback= XtAddTimeOut(flow_time,draw_flow,NULL); +@@ -515,13 +516,13 @@ XtIntervalId *id; + } + if (start_flowing) + { +- if (current_callback != NULL) ++ if (current_callback != 0) + XtRemoveTimeOut(current_callback); + current_callback = XtAddTimeOut(flow_time_start,draw_flow,NULL); + } + else + { +- if (current_callback != NULL) ++ if (current_callback != 0) + XtRemoveTimeOut(current_callback); + current_callback = XtAddTimeOut(flow_time_start,show_when_flow,NULL); + } +@@ -533,7 +534,7 @@ draw_flow(data,id) + caddr_t data; + XtIntervalId *id; + { +- current_callback = NULL; ++ current_callback = 0; + if (blktime < 2) + { + pipe_board[flow_x][flow_y] = blkrstart++; +@@ -584,7 +585,7 @@ increment_flow() + + if (failed) { + buttons_disabled = 1; +- if (current_callback != NULL) ++ if (current_callback != 0) + XtRemoveTimeOut(current_callback); + current_callback = XtAddTimeOut(3000,level_over,NULL); + } diff --git a/games/xpipeman/files/patch-graphics.c b/games/xpipeman/files/patch-graphics.c new file mode 100644 index 000000000000..aef58a855554 --- /dev/null +++ b/games/xpipeman/files/patch-graphics.c @@ -0,0 +1,22 @@ +--- graphics.c.orig 1991-09-13 20:32:11 UTC ++++ graphics.c +@@ -63,8 +63,8 @@ init_pixmaps(top_shell) + + /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ + +- fgcolor.pixel = fg; +- bgcolor.pixel = bg; ++ fgcolor.pixel = app_data.fg; ++ bgcolor.pixel = app_data.bg; + fgcolor.flags = DoRed | DoGreen | DoBlue; + bgcolor.flags = DoRed | DoGreen | DoBlue; + XQueryColor(display,DefaultColormapOfScreen(XtScreen(playfield_widget)), &fgcolor); +@@ -444,7 +444,7 @@ void free_pixmaps() + { + int i; + +- for(i=0;i++;i<NUM_TMP_CURSOR_PIXMAPS) ++ for(i=0;i<NUM_TMP_CURSOR_PIXMAPS;i++) + XFreePixmap(display,tmp_pixmap[i]); + + } diff --git a/games/xpipeman/files/patch-main.c b/games/xpipeman/files/patch-main.c index df7d9d2379f1..4a28d73f2b4e 100644 --- a/games/xpipeman/files/patch-main.c +++ b/games/xpipeman/files/patch-main.c @@ -1,43 +1,100 @@ ---- ./main.c.orig 1991-09-13 20:32:10.000000000 +0000 -+++ ./main.c 2013-05-31 10:39:59.000000000 +0000 -@@ -146,21 +146,11 @@ - {"-scorefile","scorefile",XrmoptionSepArg, NULL }, +--- main.c.orig 1991-09-13 20:32:10 UTC ++++ main.c +@@ -53,6 +53,9 @@ + #endif + + ++#include <stdlib.h> ++#include <stdio.h> ++#include <unistd.h> + #include "xpipeman.h" + + /*----------------------------------------------------------------------*/ +@@ -138,9 +141,7 @@ static XtActionsRec actions[] = { + {"do_nothing",(XtActionProc)do_nothing_action}, }; --static XtResource application_resources[] = { -- {"foreground", "Foreground", XtRPixel, sizeof(Pixel), +-Pixel fg, bg; +- +-XtTranslations translations; ++AppData app_data; + + static XrmOptionDescRec options[] = { + {"-scorefile","scorefile",XrmoptionSepArg, NULL }, +@@ -148,19 +149,20 @@ static XrmOptionDescRec options[] = { + + static XtResource application_resources[] = { + {"foreground", "Foreground", XtRPixel, sizeof(Pixel), - (Cardinal)&fg, XtRString, (caddr_t) "Black"}, -- {"background", "Background", XtRPixel, sizeof(Pixel), ++ XtOffsetOf(AppData, fg), XtRString, (caddr_t) "Black"}, + {"background", "Background", XtRPixel, sizeof(Pixel), - (Cardinal)&bg, XtRString, (caddr_t) "White"}, -- {"translations","Translations", XtRTranslationTable, sizeof(XtTranslations), ++ XtOffsetOf(AppData, bg), XtRString, (caddr_t) "White"}, + {"translations","Translations", XtRTranslationTable, sizeof(XtTranslations), - (Cardinal)&translations, XtRString, (caddr_t)translations_str}, -- {"scorefile","Scorefile", XtRString, sizeof(String), ++ XtOffsetOf(AppData, translations), XtRString, (caddr_t)translations_str}, + {"scorefile","Scorefile", XtRString, sizeof(String), - (Cardinal)&score_filename, XtRString, (caddr_t)SCORE_FILE}, --}; ++ XtOffsetOf(AppData, score_filename), XtRString, (caddr_t)SCORE_FILE}, + }; /*----------------------------------------------------------------------*/ ++int main(argc, argv) - unsigned int argc; + int argc; char **argv; { Arg args[1]; -@@ -168,6 +158,17 @@ - Widget quit_command, - new_game_command; - -+XtResource application_resources[] = { -+ {"foreground", "Foreground", XtRPixel, sizeof(Pixel), -+ (Cardinal)&fg, XtRString, (caddr_t) "Black"}, -+ {"background", "Background", XtRPixel, sizeof(Pixel), -+ (Cardinal)&bg, XtRString, (caddr_t) "White"}, -+ {"translations","Translations", XtRTranslationTable, sizeof(XtTranslations), -+ (Cardinal)&translations, XtRString, (caddr_t)translations_str}, -+ {"scorefile","Scorefile", XtRString, sizeof(String), -+ (Cardinal)&score_filename, XtRString, (caddr_t)SCORE_FILE}, -+}; -+ +@@ -170,14 +172,14 @@ main(argc, argv) + srandom(getpid()); current_block = 0; - current_callback = NULL; +- current_callback = NULL; ++ current_callback = 0; + + top_shell = XtInitialize(argv[0], "xpipeman", options, XtNumber(options), &argc, argv); + XtSetValues(top_shell, arglisttop_shell, XtNumber(arglisttop_shell)); + + XtAddActions(actions,XtNumber(actions)); + +- XtGetApplicationResources(top_shell, 0, application_resources, ++ XtGetApplicationResources(top_shell, &app_data, application_resources, + XtNumber(application_resources), NULL, 0 ); + + top_widget = XtCreateManagedWidget( +@@ -193,7 +195,7 @@ main(argc, argv) + arglistplayfield, + XtNumber(arglistplayfield)); + +- XtAugmentTranslations(playfield_widget,translations); ++ XtAugmentTranslations(playfield_widget,app_data.translations); + + quit_command = XtCreateManagedWidget( + "quit_button", +@@ -263,12 +265,12 @@ main(argc, argv) + + display = XtDisplay(playfield_widget); + playfield = XtWindow(playfield_widget); +- gcv.foreground = fg; +- gcv.background = bg; ++ gcv.foreground = app_data.fg; ++ gcv.background = app_data.bg; + gcv.function = GXcopy; + gc = XCreateGC(display, playfield, + GCForeground | GCBackground | GCFunction, &gcv); +- gcv.foreground = bg; ++ gcv.foreground = app_data.bg; + cleargc = XCreateGC(display, playfield, + GCForeground | GCBackground | GCFunction, &gcv); + +@@ -318,7 +320,7 @@ void + update_remain(score) + int score; + { +- char text[13]; ++ char text[16]; + (void)sprintf(text,"Remaining: %4d",score); + XtSetArg(arglistremain_command[0],XtNlabel,text); + XtSetValues(remain_command,arglistremain_command,1); diff --git a/games/xpipeman/files/patch-score.c b/games/xpipeman/files/patch-score.c index ddeaebecb34b..fe30359ded31 100644 --- a/games/xpipeman/files/patch-score.c +++ b/games/xpipeman/files/patch-score.c @@ -1,5 +1,5 @@ ---- score.c.orig 1991-09-13 22:32:12.000000000 +0200 -+++ score.c 2011-02-02 19:34:46.908945354 +0100 +--- score.c.orig 1991-09-13 20:32:12 UTC ++++ score.c @@ -50,8 +50,9 @@ #include <X11/Xaw/Label.h> #endif @@ -11,7 +11,7 @@ #include "xpipeman.h" /*----------------------------------------------------------------------*/ -@@ -64,7 +65,7 @@ +@@ -64,13 +65,12 @@ typedef struct { static SCORE scores[MAXSCORES]; @@ -20,7 +20,24 @@ new_high_score(), load_scores(), write_out_scores(); -@@ -198,7 +199,7 @@ + + static FILE *scorefile = 0; +-char *score_filename; + + /*----------------------------------------------------------------------*/ + +@@ -100,8 +100,8 @@ load_scores() + { + int i = 0; + +- if( !(scorefile = fopen(score_filename,"r+")) ) { +- scorefile = fopen(score_filename, "w"); ++ if( !(scorefile = fopen(app_data.score_filename,"r+")) ) { ++ scorefile = fopen(app_data.score_filename, "w"); + return; + } + #ifndef SYSV +@@ -198,7 +198,7 @@ static Arg arglist_popdown[] = { /*ARGSUSED*/ diff --git a/games/xpipeman/files/patch-xpipeman.h b/games/xpipeman/files/patch-xpipeman.h new file mode 100644 index 000000000000..08258cdcb878 --- /dev/null +++ b/games/xpipeman/files/patch-xpipeman.h @@ -0,0 +1,44 @@ +--- xpipeman.h.orig 1991-09-13 20:32:14 UTC ++++ xpipeman.h +@@ -31,6 +31,13 @@ + * + */ + ++typedef struct { ++ Pixel fg; ++ Pixel bg; ++ XtTranslations translations; ++ char *score_filename; ++} AppData; ++ + /* + * from main.c + */ +@@ -39,8 +46,8 @@ extern Window playfield; + extern Widget playfield_widget; + extern GC gc, + cleargc; +-extern Pixel fg, +- bg; ++ ++extern AppData app_data; + + extern void update_score(); + extern void update_level(); +@@ -118,8 +125,6 @@ extern void check_score(), + + extern void show_scores_callback(); + +-extern char *score_filename; +- + /* + * from game.c + */ +@@ -188,4 +193,7 @@ extern void show_level_over_popup(), + show_game_over_popup(), + level_over_popdown(), + game_over_popdown(), ++ show_nomore_popup(), ++ nomore_popdown(), ++ all_popdown(), + create_general_popups(); |