[xgap] Initial import.
Jerry James
jjames at fedoraproject.org
Thu Mar 29 20:22:46 UTC 2012
commit 82307f49c5a933b59b5172243d1e959be1d6b378
Author: Jerry James <loganjerry at gmail.com>
Date: Thu Mar 29 14:22:32 2012 -0600
Initial import.
.gitignore | 1 +
sources | 1 +
xgap-warning.patch | 877 ++++++++++++++++++++++++++++++++++++++++++++++++++++
xgap.desktop | 10 +
xgap.spec | 86 +++++
5 files changed, 975 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..e14e0b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/xgap4r21.zoo
diff --git a/sources b/sources
index e69de29..1c0a57b 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+160d5e8a4ddc872526ce57026cc92eb2 xgap4r21.zoo
diff --git a/xgap-warning.patch b/xgap-warning.patch
new file mode 100644
index 0000000..508af4b
--- /dev/null
+++ b/xgap-warning.patch
@@ -0,0 +1,877 @@
+--- ./src.x11/gapgraph.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/gapgraph.c 2012-01-21 15:09:07.449650271 -0700
+@@ -127,6 +127,7 @@
+ }
+
+
++#if 0
+ /****************************************************************************
+ **
+ *F GapGraphResize( <w> ) . . . . . . . . . . . . . . ignore resize requests
+@@ -139,6 +140,7 @@
+ gap->core.width = gap->gap_graphic.width;
+ gap->core.height = gap->gap_graphic.height;
+ }
++#endif
+
+
+ /****************************************************************************
+--- ./src.x11/xgap.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/xgap.c 2012-01-21 15:09:07.450650250 -0700
+@@ -279,9 +279,9 @@
+ paste = !paste;
+ GTDropGapPrompt( GapTalk, !paste );
+ if ( paste )
+- XtVaSetValues( item->entry, XtNrightBitmap, CheckMarkSymbol, 0 );
++ XtVaSetValues( item->entry, XtNrightBitmap, CheckMarkSymbol, NULL );
+ else
+- XtVaSetValues( item->entry, XtNrightBitmap, EmptyMarkSymbol, 0 );
++ XtVaSetValues( item->entry, XtNrightBitmap, EmptyMarkSymbol, NULL );
+ }
+
+ static void MenuQuitGapCTRD ( item )
+@@ -289,9 +289,9 @@
+ {
+ QuitGapCtrlD = !QuitGapCtrlD;
+ if ( QuitGapCtrlD )
+- XtVaSetValues( item->entry, XtNrightBitmap, CheckMarkSymbol, 0 );
++ XtVaSetValues( item->entry, XtNrightBitmap, CheckMarkSymbol, NULL );
+ else
+- XtVaSetValues( item->entry, XtNrightBitmap, EmptyMarkSymbol, 0 );
++ XtVaSetValues( item->entry, XtNrightBitmap, EmptyMarkSymbol, NULL );
+ }
+
+ #ifndef NO_FILE_SELECTOR
+@@ -441,30 +441,30 @@
+ items->label, smeBSBObjectClass, menu,
+ XtNrightMargin, 14,
+ XtNrightBitmap, EmptyMarkSymbol,
+- 0 );
++ NULL );
+ XtAddCallback( items->entry, XtNcallback,
+ (XtCallbackProc)MenuSelected, items );
+ switch ( items->sensitive )
+ {
+ case S_INPUT_ONLY:
+ AddList( ListInputOnly, items->entry );
+- XtVaSetValues( items->entry, XtNsensitive, False, 0 );
++ XtVaSetValues( items->entry, XtNsensitive, False, NULL );
+ break;
+ case S_ERROR_ONLY:
+ AddList( ListErrorOnly, items->entry );
+- XtVaSetValues( items->entry, XtNsensitive, False, 0 );
++ XtVaSetValues( items->entry, XtNsensitive, False, NULL );
+ break;
+ case S_NORMAL_ONLY:
+ AddList( ListNormalOnly, items->entry );
+- XtVaSetValues( items->entry, XtNsensitive, False, 0 );
++ XtVaSetValues( items->entry, XtNsensitive, False, NULL );
+ break;
+ case S_RUNNING_ONLY:
+ AddList( ListRunningOnly, items->entry );
+- XtVaSetValues( items->entry, XtNsensitive, False, 0 );
++ XtVaSetValues( items->entry, XtNsensitive, False, NULL );
+ break;
+ case S_HELP_ONLY:
+ AddList( ListHelpOnly, items->entry );
+- XtVaSetValues( items->entry, XtNsensitive, False, 0 );
++ XtVaSetValues( items->entry, XtNsensitive, False, NULL );
+ break;
+ case S_ALWAYS:
+ break;
+@@ -504,9 +504,9 @@
+ for ( i = 0; i < l->len; i++ )
+ {
+ if ( state == GAP_ERROR )
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, NULL );
+ }
+
+ /* menu entry active only during input */
+@@ -514,9 +514,9 @@
+ for ( i = 0; i < l->len; i++ )
+ {
+ if ( state == GAP_ERROR || state == GAP_INPUT )
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, NULL );
+ }
+
+ /* menu entry active only during normal input */
+@@ -524,9 +524,9 @@
+ for ( i = 0; i < l->len; i++ )
+ {
+ if ( state == GAP_INPUT )
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, NULL );
+ }
+
+ /* menu entry active only while gap is running */
+@@ -534,9 +534,9 @@
+ for ( i = 0; i < l->len; i++ )
+ {
+ if ( state == GAP_RUNNING )
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, NULL );
+ }
+
+ /* menu entry active only while gap is helping */
+@@ -544,9 +544,9 @@
+ for ( i = 0; i < l->len; i++ )
+ {
+ if ( state == GAP_HELP )
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, 0 );
++ XtVaSetValues( (Widget)l->ptr[i], XtNsensitive, False, NULL );
+ }
+ }
+
+@@ -615,8 +615,8 @@
+ {
+
+ /* compute a sensible size */
+- XtVaGetValues( talk, XtNtextSink, &snk, 0 );
+- XtVaGetValues( snk, XtNfont, &font, 0 );
++ XtVaGetValues( talk, XtNtextSink, &snk, NULL );
++ XtVaGetValues( snk, XtNfont, &font, NULL );
+ w = evt->xconfigure.width / font->max_bounds.width - 3;
+ h = evt->xconfigure.height / ( font->max_bounds.ascent
+ + font->max_bounds.descent ) - 2;
+@@ -702,7 +702,7 @@
+ box,
+ XtNleftBitmap, symbol,
+ XtNx, 10,
+- 0 );
++ NULL );
+ CreateMenu( button, RunMenu );
+
+ /* create help menu button and help menu */
+@@ -710,7 +710,7 @@
+ box,
+ XtNleftBitmap, symbol,
+ XtNx, 10,
+- 0 );
++ NULL );
+ CreateMenu( button, HelpMenu );
+
+ /* create the communication window */
+@@ -730,7 +730,7 @@
+ GTDropGapPrompt( GapTalk, True );
+
+ /* to quit or not do quit on CTR-D */
+- XtVaGetValues( GapTalk, XtNquitGapCtrD, &flag, 0 );
++ XtVaGetValues( GapTalk, XtNquitGapCtrD, &flag, NULL );
+ if ( flag )
+ {
+ for ( i = 0; GapMenu[i].label; i++ )
+@@ -741,7 +741,7 @@
+ }
+
+ /* paste GAP prompt into talk window? */
+- XtVaGetValues( GapTalk, XtNpasteGapPrompt, &flag, 0 );
++ XtVaGetValues( GapTalk, XtNpasteGapPrompt, &flag, NULL );
+ if ( flag )
+ {
+ for ( i = 0; GapMenu[i].label; i++ )
+@@ -1077,7 +1077,7 @@
+ /* create a new top level shell and an applictation context */
+ XGap = XtVaAppInitialize( &AppContext, "XGap",
+ CommandOptions, XtNumber(CommandOptions),
+- &i, argv, FallbackResources, 0 );
++ &i, argv, FallbackResources, NULL );
+ for ( j = len; j <= argc; j++ ) {
+ argv[i+(j-len)] = argv[j];
+ }
+@@ -1155,7 +1155,7 @@
+ InitXCMDS();
+
+ /* get color model */
+- XtVaGetValues( GapTalk, XtNcolorModel, &color, 0 );
++ XtVaGetValues( GapTalk, XtNcolorModel, &color, NULL );
+ len = strlen(color);
+ if ( !strncmp( color, "black&white", len ) )
+ mod = CM_BW;
+@@ -1179,7 +1179,7 @@
+ mod = -1;
+ }
+ if ( mod != -1 ) {
+- XtVaGetValues( GapTalk, XtNcolors, &colors, 0 );
++ XtVaGetValues( GapTalk, XtNcolors, &colors, NULL );
+ GCSetColorModel( GapDisplay, mod, colors );
+ }
+
+--- ./src.x11/bitmaps/emptymk.bm.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/bitmaps/emptymk.bm 2012-01-21 15:09:31.063159570 -0700
+@@ -1,5 +1,5 @@
+ #define emptymk_width 12
+ #define emptymk_height 12
+-static char emptymk_bits[] = {
++static const char emptymk_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+--- ./src.x11/bitmaps/exmark.bm.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/bitmaps/exmark.bm 2012-01-21 15:09:42.487922170 -0700
+@@ -1,6 +1,6 @@
+ #define exmark_width 32
+ #define exmark_height 32
+-static char exmark_bits[] = {
++static const char exmark_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00,
+ 0x00, 0x60, 0x03, 0x00, 0x00, 0x60, 0x03, 0x00, 0x00, 0x30, 0x06, 0x00,
+ 0x00, 0x30, 0x06, 0x00, 0x00, 0x18, 0x0c, 0x00, 0x00, 0x18, 0x0c, 0x00,
+--- ./src.x11/bitmaps/checksym.bm.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/bitmaps/checksym.bm 2012-01-21 15:09:21.431359797 -0700
+@@ -1,5 +1,5 @@
+ #define checksym_width 12
+ #define checksym_height 12
+-static char checksym_bits[] = {
++static const char checksym_bits[] = {
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x03, 0x80, 0x01, 0xc0, 0x00,
+ 0x62, 0x00, 0x36, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00};
+--- ./src.x11/bitmaps/menusym.bm.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/bitmaps/menusym.bm 2012-01-21 15:09:55.920643035 -0700
+@@ -1,5 +1,5 @@
+ #define menusym_width 12
+ #define menusym_height 12
+-static unsigned char menusym_bits[] = {
++static const char menusym_bits[] = {
+ 0xfe, 0x03, 0x02, 0x02, 0x02, 0x06, 0x72, 0x06, 0x02, 0x06, 0x72, 0x06,
+ 0x02, 0x06, 0x72, 0x06, 0x02, 0x06, 0x02, 0x06, 0xfe, 0x07, 0xf8, 0x07};
+--- ./src.x11/bitmaps/return.bm.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/bitmaps/return.bm 2012-01-21 15:10:08.448382706 -0700
+@@ -1,5 +1,5 @@
+ #define return_width 9
+ #define return_height 7
+-static char return_bits[] = {
++static const char return_bits[] = {
+ 0x00, 0x00, 0x44, 0x00, 0x42, 0x00, 0x7d, 0x00, 0x02, 0x00, 0x04, 0x00,
+ 0x00, 0x00};
+--- ./src.x11/gaptext.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/gaptext.c 2012-01-21 15:09:07.451650229 -0700
+@@ -860,6 +860,9 @@
+ case XawstPositions:
+ pos += cnt * inc;
+ break;
++
++ case XawstAlphaNumeric:
++ break;
+ }
+ if ( dir == XawsdLeft )
+ pos++;
+--- ./src.x11/xcmds.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/xcmds.c 2012-01-21 15:09:07.452650208 -0700
+@@ -546,12 +546,12 @@
+
+ /* create a "paned" for the menu and text window */
+ paned = XtVaCreateManagedWidget(
+- "textSelector", panedWidgetClass, selector->top, 0 );
++ "textSelector", panedWidgetClass, selector->top, NULL );
+
+ /* create a headline */
+ XtVaCreateManagedWidget(
+ "textSelectorTitle", labelWidgetClass, paned,
+- XtNlabel, name, 0 );
++ XtNlabel, name, NULL );
+
+
+ /* create a viewport for the text selectors */
+@@ -561,7 +561,7 @@
+ XtNallowVert, True,
+ XtNuseBottom, True,
+ XtNshowGrip, False,
+- 0 );
++ NULL );
+
+ /* compute number of entries */
+ for ( i = 2, qtr = arg->sargs[1]; *qtr; qtr++ )
+@@ -598,7 +598,7 @@
+ XtNlist, selector->text,
+ XtNdefaultColumns, 1,
+ XtNforceColumns, True,
+- 0 );
++ NULL );
+ XtOverrideTranslations( selector->list,
+ XtParseTranslationTable(ButtonPressTrans) );
+ XtAddCallback( selector->list, XtNcallback, TextSelected,
+@@ -611,7 +611,7 @@
+ XtNshowGrip, False,
+ XtNskipAdjust, True,
+ XtNresizeToPreferred, True,
+- 0 );
++ NULL );
+
+ /* parse buttons */
+ selector->buttons = List(0);
+@@ -627,7 +627,7 @@
+ "textSelectorButton", commandWidgetClass, box,
+ XtNlabel, buf,
+ XtNshapeStyle, XmuShapeOval,
+- 0 );
++ NULL );
+ XtAddCallback(button,XtNcallback,ButtonSelected,
+ (XtPointer)((i+n*256)&0xffffL));
+ AddList( selector->buttons, button );
+@@ -748,9 +748,9 @@
+
+ /* enable/disable */
+ if ( arg->iargs[2] )
+- XtVaSetValues( entry, XtNsensitive, True, 0 );
++ XtVaSetValues( entry, XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( entry, XtNsensitive, False, 0 );
++ XtVaSetValues( entry, XtNsensitive, False, NULL );
+
+ /* return OK */
+ return AnswerGap( "o", 0, 0, 0, 0 );
+@@ -838,7 +838,7 @@
+
+ /* create a shell */
+ pshell = XtVaCreatePopupShell( "pshell", simpleMenuWidgetClass,
+- XGap, XtNcursor, CursorTL, 0 );
++ XGap, XtNcursor, CursorTL, NULL );
+ XtOverrideTranslations( pshell,
+ XtParseTranslationTable(PopingDownTrans) );
+
+@@ -847,8 +847,8 @@
+ XtVaCreateManagedWidget( "menulabel", smeBSBObjectClass, pshell,
+ XtNsensitive, False,
+ XtNlabel, arg->sargs[0],
+- 0 );
+- XtVaCreateManagedWidget( "line", smeLineObjectClass, pshell, 0 );
++ NULL );
++ XtVaCreateManagedWidget( "line", smeLineObjectClass, pshell, NULL );
+
+ /* add popdown callback */
+ XtAddCallback( pshell, XtNpopdownCallback, PopingDown, 0 );
+@@ -870,7 +870,7 @@
+ if ( *ptr ) ptr++;
+ DEBUG( D_XCMD, ( " entry = \"%s\"\n", buf ) );
+ pane = XtVaCreateManagedWidget( "menupane", smeBSBObjectClass,
+- pshell, XtNlabel, buf, 0 );
++ pshell, XtNlabel, buf, NULL );
+ pd = (TypePaneData*) XtMalloc( sizeof(TypePaneData) );
+ pd->pane = i;
+ pd->popup = LEN(PopupMenus);
+@@ -910,7 +910,7 @@
+ XtNwidth, &w1,
+ XtNheight, &h1,
+ XtNborderWidth, &bw,
+- 0, 0 );
++ 0, NULL );
+
+ /* compute screen position */
+ XQueryPointer( GapDisplay, MyRootWindow,
+@@ -923,7 +923,7 @@
+ y = tmp-h1;
+
+ /* popup the popup shell */
+- XtVaSetValues( popup, XtNx, x-10, XtNy, y-10, 0 );
++ XtVaSetValues( popup, XtNx, x-10, XtNy, y-10, NULL );
+ XawSimpleMenuClearActiveEntry( popup );
+ XtPopupSpringLoaded( popup );
+ XtGrabPointer( popup, True, ButtonPressMask|ButtonReleaseMask,
+@@ -1127,7 +1127,7 @@
+ XtNlabel, "GAP window",
+ XtNskipAdjust, True,
+ XtNshowGrip, False,
+- 0 );
++ NULL );
+ }
+
+
+@@ -1161,17 +1161,17 @@
+ window->text = 0;
+
+ /* find title position */
+- XtVaGetValues( GapTalk, XtNtitlePosition, &title, 0 );
++ XtVaGetValues( GapTalk, XtNtitlePosition, &title, NULL );
+
+ /* create a new top level shell */
+ window->top = XtVaAppCreateShell(
+ "XGap", "GraphicSheet",
+ topLevelShellWidgetClass, GapDisplay,
+- 0 );
++ NULL );
+
+ /* create a "paned" for the menu and text window */
+ paned = XtVaCreateManagedWidget(
+- "xgapWindow", panedWidgetClass, window->top, 0 );
++ "xgapWindow", panedWidgetClass, window->top, NULL );
+
+ /* add TOP tile */
+ if ( *title == 'T' || *title == 't' )
+@@ -1183,11 +1183,11 @@
+ XtNskipAdjust, True,
+ XtNresizeToPreferred, True,
+ XtNshowGrip, False,
+- 0 );
++ NULL );
+
+ /* create a dummy menu button */
+ button = XtVaCreateManagedWidget( "dummy", commandWidgetClass,
+- window->box, XtNx, 0, 0 );
++ window->box, XtNx, 0, NULL );
+
+ /* add MIDDLE tile */
+ if ( *title == 'M' || *title == 'm' )
+@@ -1202,7 +1202,7 @@
+ XtNuseBottom, True,
+ XtNshowGrip, False,
+ XtNresizable, True,
+- 0 );
++ NULL );
+
+ /* create a drawable */
+ window->draw = XtVaCreateManagedWidget(
+@@ -1210,15 +1210,15 @@
+ gapGraphicWidgetClass, window->viewport,
+ XtNwidth, w,
+ XtNheight, h,
+- 0 );
++ NULL );
+ window->width = w;
+ window->height = h;
+
+ /* fix dimensions of viewport */
+- XtVaGetValues( window->viewport, XtNwidth, &w1, XtNheight, &h1, 0 );
++ XtVaGetValues( window->viewport, XtNwidth, &w1, XtNheight, &h1, NULL );
+ w1 = ( w1 < w ) ? w1 : w;
+ h1 = ( h1 < h ) ? h1 : h;
+- XtVaSetValues( window->viewport, XtNwidth, w1, XtNheight, h1, 0 );
++ XtVaSetValues( window->viewport, XtNwidth, w1, XtNheight, h1, NULL );
+
+ /* add BOTTOM tile */
+ if ( window->text == 0 )
+@@ -1240,7 +1240,7 @@
+
+ /* remove dummy button and dummy text */
+ XtDestroyWidget(button);
+- XtVaSetValues( window->text, XtNlabel, name, 0 );
++ XtVaSetValues( window->text, XtNlabel, name, NULL );
+
+ /* define cursor */
+ XDefineCursor( GapDisplay, XtWindow(window->top), SleepCursor );
+@@ -1275,7 +1275,7 @@
+ static Boolean FunAddTitle (
+ TypeArg * arg )
+ {
+- XtVaSetValues( arg->win->text, XtNlabel, arg->sargs[0], 0 );
++ XtVaSetValues( arg->win->text, XtNlabel, arg->sargs[0], NULL );
+ return ANSWER_GAP( "o", 0, 0, 0, 0 );
+ }
+
+@@ -1397,7 +1397,7 @@
+ gapGraphicWidgetClass, (Widget)viewport,
+ XtNwidth, arg->win->width,
+ XtNheight, arg->win->height,
+- 0 );
++ NULL );
+ XtUnmanageChild(dummy);
+ XtManageChild(arg->win->draw);
+ XtDestroyWidget(dummy);
+@@ -1454,11 +1454,11 @@
+ XtNlabel, arg->sargs[0],
+ XtNshapeStyle, XmuShapeOval,
+ XtNleftBitmap, MenuSymbol,
+- 0 );
++ NULL );
+
+ /* create a shell */
+ pshell = XtVaCreatePopupShell( "menu", simpleMenuWidgetClass,
+- button, XtNcursor, CursorTL, 0 );
++ button, XtNcursor, CursorTL, NULL );
+
+ /* create menu entries */
+ menu = (TypeMenu*) XtMalloc( sizeof(TypeMenu) );
+@@ -1474,7 +1474,7 @@
+ if ( *ptr ) ptr++;
+ DEBUG( D_XCMD, ( " entry = \"%s\"\n", buf ) );
+ if ( *buf == '-' )
+- XtVaCreateManagedWidget( "line", smeLineObjectClass, pshell, 0 );
++ XtVaCreateManagedWidget( "line", smeLineObjectClass, pshell, NULL );
+ else
+ {
+ pane = XtVaCreateManagedWidget( buf, smeBSBObjectClass,
+@@ -1482,7 +1482,7 @@
+ XtNlabel, buf,
+ XtNrightMargin, 14,
+ XtNrightBitmap, EmptyMarkSymbol,
+- 0 );
++ NULL );
+ pd = (TypeMenuData*) XtMalloc( sizeof(TypeMenuData) );
+ pd->window = arg->iargs[0];
+ pd->pane = i;
+@@ -1561,9 +1561,9 @@
+
+ /* set or clear check mark */
+ if ( arg->iargs[3] )
+- XtVaSetValues( entry, XtNrightBitmap, CheckMarkSymbol, 0 );
++ XtVaSetValues( entry, XtNrightBitmap, CheckMarkSymbol, NULL );
+ else
+- XtVaSetValues( entry, XtNrightBitmap, EmptyMarkSymbol, 0 );
++ XtVaSetValues( entry, XtNrightBitmap, EmptyMarkSymbol, NULL );
+ return ANSWER_GAP( "o", 0, 0, 0, 0 );
+ }
+
+@@ -1596,9 +1596,9 @@
+
+ /* set or clear check mark */
+ if ( arg->iargs[3] )
+- XtVaSetValues( entry, XtNsensitive, True, 0 );
++ XtVaSetValues( entry, XtNsensitive, True, NULL );
+ else
+- XtVaSetValues( entry, XtNsensitive, False, 0 );
++ XtVaSetValues( entry, XtNsensitive, False, NULL );
+ return ANSWER_GAP( "o", 0, 0, 0, 0 );
+ }
+
+@@ -1923,6 +1923,8 @@
+
+ *F FunPlaybackFile( <filename> ) . . . . . . . . . playback file <filename>
+ */
++extern int PlaybackFile(String);
++
+ static Boolean FunPlaybackFile (
+ TypeArg * arg )
+ {
+@@ -1936,6 +1938,8 @@
+ **
+ *F FunResumePlayback() . . . . . . . . . . . . . . . resume playback of file
+ */
++extern int ResumePlayback(void);
++
+ static Boolean FunResumePlayback (
+ TypeArg * arg )
+ {
+@@ -2020,7 +2024,7 @@
+ XtNnormalFont, &NormalFont,
+ XtNlargeFont, &LargeFont,
+ XtNhugeFont, &HugeFont,
+- 0 );
++ NULL );
+
+ /* create lists for windows, popups, and selectors */
+ GapWindows = List(0);
+--- ./src.x11/pty.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/pty.c 2012-01-21 15:09:07.453650187 -0700
+@@ -31,6 +31,7 @@
+ ** 'x' the current input line is empty
+ ** 'z' start of 'Exec'
+ */
++#define _GNU_SOURCE
+ #include "utils.h"
+
+ #include "gaptext.h"
+@@ -456,7 +457,6 @@
+ {
+ String ptr;
+ String free;
+- Char ch;
+ Int len;
+ static Boolean inProgress = False;
+
+@@ -1346,7 +1346,7 @@
+ String argv[];
+ {
+ Int j; /* loop variables */
+- char c[8]; /* buffer for communication */
++ char c[10]; /* buffer for communication */
+ int master; /* pipe to GAP */
+ int n; /* return value of 'select' */
+ int slave; /* pipe from GAP */
+--- ./src.x11/selfile.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/selfile.c 2012-01-21 15:09:07.454650166 -0700
+@@ -822,7 +822,7 @@
+ int save;
+ int n;
+
+- n = (int) p;
++ n = (int)(long) p;
+
+ dir = &(SFdirs[SFdirPtr + n]);
+ save = dir->vOrigin;
+@@ -852,7 +852,7 @@
+
+ if (SFbuttonPressed) {
+ SFscrollTimerId = XtAppAddTimeOut(SFapp,
+- SFscrollTimerInterval(), SFscrollTimer, (XtPointer) n);
++ SFscrollTimerInterval(), SFscrollTimer, (XtPointer)(long) n);
+ }
+ }
+
+@@ -893,7 +893,7 @@
+ SFscrollTimerAdded = 1;
+ SFscrollTimerId = XtAppAddTimeOut(SFapp,
+ SFscrollTimerInterval(), SFscrollTimer,
+- (XtPointer) n);
++ (XtPointer)(long) n);
+ }
+ }
+
+@@ -2213,7 +2213,7 @@
+ "XGap", "FileSelector",
+ transientShellWidgetClass, SFdisplay,
+ XtNtransientFor, toplevel,
+- 0 );
++ NULL );
+
+ /* Add WM_DELETE_WINDOW protocol */
+ XtAppAddActions( XtWidgetToApplicationContext(selFile),
+@@ -2225,7 +2225,7 @@
+ selFileForm = XtVaCreateManagedWidget(
+ "selFileForm", formWidgetClass, selFile,
+ XtNdefaultDistance, 30,
+- 0);
++ NULL);
+
+ selFilePrompt = XtVaCreateManagedWidget(
+ "selFilePrompt", labelWidgetClass, selFileForm,
+@@ -2236,11 +2236,11 @@
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+ XtNborderWidth, 0,
+- 0 );
++ NULL );
+ XtVaGetValues( selFilePrompt,
+ XtNforeground, &SFfore,
+ XtNbackground, &SFback,
+- 0 );
++ NULL );
+
+ /* initialize fonts */
+ SFinitFont();
+@@ -2306,7 +2306,7 @@
+ XtNwrap, XawtextWrapWord,
+ XtNresize, XawtextResizeHeight,
+ XtNuseStringInPlace, True,
+- 0 );
++ NULL );
+ XtOverrideTranslations( selFileField,
+ XtParseTranslationTable(oneLineTextEditTranslations) );
+ XtSetKeyboardFocus(selFileForm, selFileField);
+@@ -2323,7 +2323,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+ XtAddCallback( selFileHScroll, XtNjumpProc,
+ SFpathSliderMovedCallback, (XtPointer) NULL);
+ XtAddCallback( selFileHScroll, XtNscrollProc,
+@@ -2340,7 +2340,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+
+ selFileLists[1] = XtVaCreateManagedWidget(
+ "selFileList2", compositeWidgetClass, selFileForm,
+@@ -2355,7 +2355,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+ selFileLists[2] = XtVaCreateManagedWidget(
+ "selFileList3", compositeWidgetClass, selFileForm,
+ XtNwidth, listWidth,
+@@ -2369,7 +2369,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+
+ for ( n = 0; n < 3; n++ )
+ {
+@@ -2380,11 +2380,11 @@
+ XtNwidth, scrollThickness,
+ XtNheight, SFvScrollHeight,
+ XtNborderColor, SFfore,
+- 0 );
++ NULL );
+ XtAddCallback( selFileVScrolls[n], XtNjumpProc,
+- SFvFloatSliderMovedCallback, (XtPointer) n );
++ SFvFloatSliderMovedCallback, (XtPointer)(long) n );
+ XtAddCallback( selFileVScrolls[n], XtNscrollProc,
+- SFvAreaSelectedCallback, (XtPointer) n );
++ SFvAreaSelectedCallback, (XtPointer)(long) n );
+
+ selFileHScrolls[n] = XtVaCreateManagedWidget(
+ "selFileHScroll", scrollbarWidgetClass, selFileLists[n],
+@@ -2394,11 +2394,11 @@
+ XtNwidth, SFhScrollWidth,
+ XtNheight, scrollThickness,
+ XtNborderColor, SFfore,
+- 0 );
++ NULL );
+ XtAddCallback( selFileHScrolls[n], XtNjumpProc,
+- SFhSliderMovedCallback, (XtPointer) n );
++ SFhSliderMovedCallback, (XtPointer)(long) n );
+ XtAddCallback( selFileHScrolls[n], XtNscrollProc,
+- SFhAreaSelectedCallback, (XtPointer) n );
++ SFhAreaSelectedCallback, (XtPointer)(long) n );
+ }
+
+ selFileOK = XtVaCreateManagedWidget(
+@@ -2412,7 +2412,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+ selFileCancel = XtVaCreateManagedWidget(
+ "selFileCancel", commandWidgetClass, selFileForm,
+ XtNresizable, True,
+@@ -2426,7 +2426,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+ selFileHome = XtVaCreateManagedWidget(
+ "selFileHome", commandWidgetClass, selFileForm,
+ XtNresizable, True,
+@@ -2440,7 +2440,7 @@
+ XtNbottom, XtChainTop,
+ XtNleft, XtChainLeft,
+ XtNright, XtChainLeft,
+- 0 );
++ NULL );
+
+ /* realise toplevel */
+ XtSetMappedWhenManaged( selFile, False );
+@@ -2471,17 +2471,17 @@
+ for ( n = 0; n < 3; n++ )
+ {
+ XtAddEventHandler( selFileLists[n], ExposureMask, True,
+- SFexposeList, (XtPointer) n );
++ SFexposeList, (XtPointer)(long) n );
+ XtAddEventHandler( selFileLists[n], EnterWindowMask, False,
+- SFenterList, (XtPointer) n );
++ SFenterList, (XtPointer)(long) n );
+ XtAddEventHandler( selFileLists[n], LeaveWindowMask, False,
+- SFleaveList, (XtPointer) n );
++ SFleaveList, (XtPointer)(long) n );
+ XtAddEventHandler( selFileLists[n], PointerMotionMask, False,
+- SFmotionList, (XtPointer) n );
++ SFmotionList, (XtPointer)(long) n );
+ XtAddEventHandler( selFileLists[n], ButtonPressMask, False,
+- SFbuttonPressList, (XtPointer) n );
++ SFbuttonPressList, (XtPointer)(long) n );
+ XtAddEventHandler( selFileLists[n], ButtonReleaseMask, False,
+- SFbuttonReleaseList, (XtPointer) n );
++ SFbuttonReleaseList, (XtPointer)(long) n );
+ }
+ XtAddEventHandler( selFileField, KeyPressMask, False,
+ SFmodVerifyCallback, (XtPointer) NULL);
+--- ./src.x11/popdial.c.orig 1969-12-31 17:00:00.000000000 -0700
++++ ./src.x11/popdial.c 2012-01-21 15:09:07.454650166 -0700
+@@ -82,7 +82,7 @@
+ String name;
+
+ /* find name in <buttons> and set result */
+- XtVaGetValues( w, XtNlabel, &name, 0, 0 );
++ XtVaGetValues( w, XtNlabel, &name, 0, NULL );
+ for ( i = 0; i < XtNumber(buttons); i++ )
+ if ( ! strcmp( buttons[i].name, name ) )
+ (*res) |= buttons[i].flag;
+@@ -127,24 +127,24 @@
+ dialog->popupShell = XtVaCreatePopupShell(
+ name, overrideShellWidgetClass, top,
+ XtNallowShellResize, True,
+- 0 );
++ NULL );
+ else
+ dialog->popupShell = XtVaCreatePopupShell(
+ name, transientShellWidgetClass, top,
+ XtNallowShellResize, True,
+ XtNtransientFor, top,
+- 0 );
++ NULL );
+ if ( pix == 0 )
+ dialog->dialog = XtVaCreateManagedWidget(
+ "xgapDialog", dialogWidgetClass,
+ dialog->popupShell,
+- 0, 0 );
++ 0, NULL );
+ else
+ dialog->dialog = XtVaCreateManagedWidget(
+ "xgapDialog", dialogWidgetClass,
+ dialog->popupShell,
+ XtNicon, pix,
+- 0, 0 );
++ 0, NULL );
+ dialog->button = bt;
+ dialog->context = app;
+ dialog->defaultButton = def;
+@@ -158,12 +158,12 @@
+ buttons[i].name, commandWidgetClass,
+ dialog->dialog,
+ XtNleftBitmap, symbol,
+- 0, 0 );
++ 0, NULL );
+ else
+ dialog->buttons[i] = XtVaCreateManagedWidget(
+ buttons[i].name, commandWidgetClass,
+ dialog->dialog,
+- 0, 0 );
++ 0, NULL );
+ XtAddCallback( dialog->buttons[i],
+ XtNcallback,
+ ButtonSelected,
+@@ -229,11 +229,11 @@
+ XtVaSetValues( dialog->dialog,
+ XtNlabel, message,
+ XtNvalue, deflt,
+- 0, 0 );
++ 0, NULL );
+ /* get size of popup dialog */
+ XtVaGetValues( dialog->popupShell,
+ XtNwidth, &w1,
+- 0, 0 );
++ 0, NULL );
+ textlen = strlen(message)*NormalFont->max_bounds.width + 80;
+ deflen = strlen(deflt)*NormalFont->max_bounds.width + 60;
+ if (textlen > deflen) {
+@@ -247,7 +247,7 @@
+ }
+ XtVaSetValues( dialog->dialog,
+ XtNwidth,textlen,
+- 0,0 );
++ 0, NULL);
+ /* End of changes by Max. */
+
+ XtRealizeWidget( dialog->popupShell );
+@@ -257,7 +257,7 @@
+ XtNwidth, &w1,
+ XtNheight, &h1,
+ XtNborderWidth, &bw,
+- 0, 0 );
++ 0, NULL );
+
+ /* get position of the mouse pointer */
+ XQueryPointer( display, XtWindow(dialog->popupShell),
+@@ -277,7 +277,7 @@
+ XtVaSetValues( dialog->popupShell,
+ XtNx, x1,
+ XtNy, y1,
+- 0, 0 );
++ 0, NULL );
+
+ /* pop up shell */
+ XtPopup( dialog->popupShell, XtGrabExclusive );
diff --git a/xgap.desktop b/xgap.desktop
new file mode 100644
index 0000000..10eba20
--- /dev/null
+++ b/xgap.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=XGAP
+GenericName=Computational discrete algebra
+Comment=Graphical GAP frontend
+Exec=xgap %f
+Icon=gap
+Terminal=false
+Type=Application
+Categories=Education;Science;Math;
+MimeType=application/x-gap;
diff --git a/xgap.spec b/xgap.spec
new file mode 100644
index 0000000..43cc3c5
--- /dev/null
+++ b/xgap.spec
@@ -0,0 +1,86 @@
+%global upstreamver 4r21
+
+Name: xgap
+Version: %(echo %upstreamver | sed -r "s/r|p/./g")
+Release: 3%{?dist}
+Summary: GUI for GAP
+
+License: GPLv2+
+URL: http://www-groups.mcs.st-and.ac.uk/~neunhoef/Computer/Software/Gap/%{name}4.html
+Source0: http://turnbull.mcs.st-and.ac.uk/~neunhoef/xgap4/%{name}%{upstreamver}.zoo
+Source1: %{name}.desktop
+# This patch quiets some compiler warnings.
+Patch0: %{name}-warning.patch
+
+BuildRequires: desktop-file-utils
+BuildRequires: libXaw-devel
+BuildRequires: unzoo
+Requires: gap-core
+
+%description
+A X Windows GUI for GAP.
+
+%prep
+cd $RPM_BUILD_DIR
+rm -fr %{name}
+unzoo -x %{SOURCE0} > /dev/null 2>&1
+%setup -q -n %{name} -D -T
+%patch0
+
+# Fix encodings
+iconv -f iso8859-1 -t utf-8 PackageInfo.g > PackageInfo.g.utf8
+touch -r PackageInfo.g PackageInfo.g.utf8
+mv -f PackageInfo.g.utf8 PackageInfo.g
+
+%build
+export LDFLAGS="$RPM_LD_FLAGS -Wl,--as-needed"
+%configure
+make %{?_smp_mflags}
+
+%install
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/gap/pkg/%{name}
+cp -a *.g README doc examples htm lib \
+ $RPM_BUILD_ROOT%{_datadir}/gap/pkg/%{name}
+
+mkdir -p $RPM_BUILD_ROOT%{_bindir}
+cp -p bin/*/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name}.bin
+
+# The xgap.sh generated during build contains paths in the build root
+sed -e "s|@gapdir@|%{_datadir}/gap|" \
+ -e "s|@target at -@CC@|%{_bindir}|" \
+ -e "s|^XGAP_PRG=.*|XGAP_PRG=%{_bindir}/%{name}.bin|" \
+ -e "s|\$XGAP_DIR/pkg/%{name}/bin/||" \
+ -e "s|\$GAP_DIR/bin/\$GAP_PRG|\$GAP_PRG|" \
+ %{name}.shi > $RPM_BUILD_ROOT%{_bindir}/%{name}
+chmod 0755 $RPM_BUILD_ROOT%{_bindir}/%{name}
+
+# Install the desktop file
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
+desktop-file-install --mode=644 --dir=$RPM_BUILD_ROOT%{_datadir}/applications \
+ %{SOURCE1}
+
+%posttrans -p %{_bindir}/update-gap-workspace
+
+%post
+update-desktop-database %{_datadir}/applications &>/dev/null ||:
+
+%postun
+%{_bindir}/update-gap-workspace
+update-desktop-database %{_datadir}/applications &>/dev/null ||:
+
+%files
+%doc Changelog.*
+%{_bindir}/%{name}*
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/gap/pkg/%{name}
+
+%changelog
+* Wed Mar 28 2012 Jerry James <loganjerry at gmail.com> - 4.21-3
+- Fix binary permissions
+
+* Fri Feb 17 2012 Jerry James <loganjerry at gmail.com> - 4.21-2
+- Add desktop file
+- Fix inconsistent macro use
+
+* Mon Jan 23 2012 Jerry James <loganjerry at gmail.com> - 4.21-1
+- Initial RPM
More information about the scm-commits
mailing list