[arch-commits] Commit in xaw3d/trunk (7 files)

Eric Bélanger eric at archlinux.org
Tue Dec 16 06:09:40 UTC 2008


    Date: Tuesday, December 16, 2008 @ 01:09:40
  Author: eric
Revision: 21756

upgpkg: xaw3d 1.5E-1
    Upstream update, Updated url, Added misc. patches, Added ChangeLog

Added:
  xaw3d/trunk/ChangeLog
  xaw3d/trunk/Xaw3d-1.5-box.c.patch
  xaw3d/trunk/Xaw3d-1.5-debian-fixes.patch
  xaw3d/trunk/Xaw3d-1.5-i18n.patch
  xaw3d/trunk/Xaw3d-1.5E-xorg-imake.patch
Modified:
  xaw3d/trunk/PKGBUILD
  xaw3d/trunk/xaw3d.patch

------------------------------+
 ChangeLog                    |    7 
 PKGBUILD                     |   40 +-
 Xaw3d-1.5-box.c.patch        |   27 +
 Xaw3d-1.5-debian-fixes.patch |  647 +++++++++++++++++++++++++++++++++++++++++
 Xaw3d-1.5-i18n.patch         |   10 
 Xaw3d-1.5E-xorg-imake.patch  |   35 ++
 xaw3d.patch                  |   53 +--
 7 files changed, 780 insertions(+), 39 deletions(-)

Added: ChangeLog
===================================================================
--- ChangeLog	                        (rev 0)
+++ ChangeLog	2008-12-16 06:09:40 UTC (rev 21756)
@@ -0,0 +1,7 @@
+2008-12-14  Eric Belanger  <eric at archlinux.org>
+
+	* xaw3d 1.5E-1
+	* Upstream update
+	* Updated url
+	* Added misc. patches
+	* Added ChangeLog

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2008-12-16 05:56:55 UTC (rev 21755)
+++ PKGBUILD	2008-12-16 06:09:40 UTC (rev 21756)
@@ -3,36 +3,50 @@
 # Contributor: Judd Vinet <jvinet at zeroflux.org>
 
 pkgname=xaw3d
-pkgver=1.5
-pkgrel=4
+pkgver=1.5E
+pkgrel=1
 pkgdesc="Three-D Athena widgets"
 arch=('i686' 'x86_64')
-url="ftp://ftp.x.org/contrib/widgets/Xaw3d"
+url="http://freshmeat.net/projects/xaw3d/d"
 license=('MIT')
 depends=('libxp' 'libxmu' 'libxpm')
 makedepends=('imake')
-options=('!makeflags')
-source=(ftp://ftp.x.org/contrib/widgets/Xaw3d/R6.3/Xaw3d-${pkgver}.tar.gz \
+options=('!makeflags' 'force')
+source=(ftp://ftp.visi.com/users/hawkeyd/X/Xaw3d-${pkgver}.tar.gz \
+        Xaw3d-1.5E-xorg-imake.patch Xaw3d-1.5-i18n.patch \
+        Xaw3d-1.5-box.c.patch Xaw3d-1.5-debian-fixes.patch \
         xaw3d.patch LICENSE)
-md5sums=('a77aa4ebe3be7964e4dbbc351e48277f' 'cd250186d36d64f579834f11a7f7f6a2'\
+md5sums=('29ecfdcd6bcf47f62ecfd672d31269a1' '2cca7950cf7d270609bc810b8996f0a9'\
+         'e7105bc1452f0c5f5d0bcdcf212aac0c' 'c061ab65467766f5817752ef216e3cc2'\
+         '33bf0f1b52822b7293a3f45474178dfe' '5acb23e5a52c75e62a22aef59882df14'\
          '5b6b0242b3f53b7fe308e702abe28561')
-sha1sums=('ba10e9f9a376932eed9696006e34d4618a6f588d'
-          'f081b674eb34550693fdd6c997386145a077843f'
+sha1sums=('efc5b923feda52866c859c59a5b553cb675a69d1'
+          '8c3e57bd48028e8e8219fb43bfd3804bbd09ed43'
+          '27d409ce223d4fc3b81dd8217d5774b877695087'
+          'b57f68f19d6c9f501be94606c649fcaf8e1bd3ec'
+          'b1821f7b7d7aa01d255c99d2a713af5174674ea8'
+          '18274b06ccff395fe541b44c8821b55a2c15ebb4'
           'f4c6ea3294b6ca41e17b7a83530bd694af6f1f5a')
 
 build() {
-  cd $startdir/src/xc/lib/Xaw3d
-  patch -Np1 -i ${startdir}/src/xaw3d.patch || return 1
+  cd ${srcdir}/xc/lib/Xaw3d
+  patch -p0 < ${srcdir}/Xaw3d-1.5E-xorg-imake.patch || return 1
+  patch -p4 < ${srcdir}/xaw3d.patch || return 1
+  patch -p4 < ${srcdir}/Xaw3d-1.5-i18n.patch || return 1
+  patch -p4 < ${srcdir}/Xaw3d-1.5-box.c.patch || return 1
+  patch -p4 < ${srcdir}/Xaw3d-1.5-debian-fixes.patch || return 1
+
   mkdir X11
   cd X11
   ln -sf ../../Xaw3d .
   cd ..
+
   xmkmf || return 1
   # fix for the lib location
-  [ "$CARCH" = "x86_64" ] && sed -i -e "s:lib64:lib:g" Makefile
+  [ "$CARCH" = "x86_64" ] && (sed -i -e "s:lib64:lib:g" Makefile || return 1)
   make includes || return 1
   make depend || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
-  install -D -m644 ../../../LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
 }

Added: Xaw3d-1.5-box.c.patch
===================================================================
--- Xaw3d-1.5-box.c.patch	                        (rev 0)
+++ Xaw3d-1.5-box.c.patch	2008-12-16 06:09:40 UTC (rev 21756)
@@ -0,0 +1,27 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## box.c.dpatch by Francesco Paolo Lovergine <frankie at debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad xaw3d-1.5+E~/lib/Xaw3d/Box.c xaw3d-1.5+E/lib/Xaw3d/Box.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Box.c	1996-10-15 16:41:18.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Box.c	2007-04-24 15:28:39.000000000 +0200
+@@ -353,8 +353,16 @@
+ 	else {
+ 	    width = preferred_width;
+ 	    do { /* find some width big enough to stay within this height */
++#if 0 
+ 		width *= 2;
+ 		if (width > constraint->width) width = constraint->width;
++#endif
++                if (width > constraint->width/2) {  /* avoid short int overflow */
++ 		    width = constraint->width;
++		}
++                else { 
++		    width *= 2; 
++		}
+ 		DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
+ 	    } while (preferred_height > constraint->height &&
+ 		     width < constraint->width);

Added: Xaw3d-1.5-debian-fixes.patch
===================================================================
--- Xaw3d-1.5-debian-fixes.patch	                        (rev 0)
+++ Xaw3d-1.5-debian-fixes.patch	2008-12-16 06:09:40 UTC (rev 21756)
@@ -0,0 +1,647 @@
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian	2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c	2008-10-06 11:42:13.000000000 +0200
+@@ -51,11 +51,17 @@ in this Software without prior written a
+ #include <X11/Xaw3d/MultiSrcP.h> 
+ #endif
+ 
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ 
+ #if (defined(ASCII_STRING) || defined(ASCII_DISK))
+ #  include <X11/Xaw3d/AsciiText.h> /* for Widget Classes. */
+ #endif
+ 
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ 
+ /****************************************************************
+  *
+@@ -1007,7 +1013,9 @@ InitStringOrFile(src, newString)
+ AsciiSrcObject src;
+ Boolean newString;
+ {
+-    char * open_mode = NULL;
++    mode_t open_mode = 0;
++    const char *fdopen_mode = NULL;
++    int fd;
+     FILE * file;
+     char fileName[TMPSIZ];
+ 
+@@ -1049,7 +1057,8 @@ Boolean newString;
+ 	    XtErrorMsg("NoFile", "asciiSourceCreate", "XawError",
+ 		     "Creating a read only disk widget and no file specified.",
+ 		       NULL, 0);
+-	open_mode = "r";
++	open_mode = O_RDONLY;
++	fdopen_mode = "r";
+ 	break;
+     case XawtextAppend:
+     case XawtextEdit:
+@@ -1057,9 +1066,17 @@ Boolean newString;
+ 	    src->ascii_src.string = fileName;
+ 	    (void) tmpnam(src->ascii_src.string);
+ 	    src->ascii_src.is_tempfile = TRUE;
+-	    open_mode = "w";
+-	} else
+-	    open_mode = "r+";
++	    open_mode = O_WRONLY | O_CREAT | O_EXCL;
++	    fdopen_mode = "w";
++	} else {
++/* O_NOFOLLOW is a BSD & Linux extension */
++#ifdef O_NOFOLLOW
++		open_mode = O_RDWR | O_NOFOLLOW;
++#else
++		open_mode = O_RDWR; /* unsafe; subject to race conditions */
++#endif
++		fdopen_mode = "r+";
++	}
+ 	break;
+     default:
+ 	XtErrorMsg("badMode", "asciiSourceCreate", "XawError",
+@@ -1078,11 +1095,14 @@ Boolean newString;
+     }
+     
+     if (!src->ascii_src.is_tempfile) {
+-	if ((file = fopen(src->ascii_src.string, open_mode)) != 0) {
+-	    (void) fseek(file, (Off_t)0, 2);
+-	    src->ascii_src.length = (XawTextPosition) ftell(file);
+-	    return file;
+-	} else {
++	if ((fd = open(src->ascii_src.string, open_mode, 0666))) {
++	    if ((file = fdopen(fd, fdopen_mode)) != NULL) {
++		    (void)fseek(file, 0, SEEK_END);
++		    src->ascii_src.length = (XawTextPosition)ftell(file);
++		    return (file);
++	    }
++	}
++	{	    
+ 	    String params[2];
+ 	    Cardinal num_params = 2;
+ 	    
+@@ -1094,7 +1114,7 @@ Boolean newString;
+ 	}
+     } 
+     src->ascii_src.length = 0;
+-    return((FILE *)NULL);
++    return(NULL);
+ }
+ 
+ static void
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h
+--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian	1996-10-15 16:41:18.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h	2008-10-06 11:42:13.000000000 +0200
+@@ -85,7 +85,11 @@ SOFTWARE.
+ #ifdef L_tmpnam
+ #define TMPSIZ L_tmpnam
+ #else
+-#define TMPSIZ 32		/* bytes to allocate for tmpnam */
++#ifdef PATH_MAX
++#define TMPSIZ PATH_MAX
++#else
++#define TMPSIZ 1024		/* bytes to allocate for tmpnam */
++#endif
+ #endif
+ 
+ #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian	1996-10-15 16:41:20.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c	2008-10-06 11:42:13.000000000 +0200
+@@ -53,6 +53,8 @@ in this Software without prior written a
+ #include <X11/Xaw3d/XawInit.h>
+ #include <X11/Xaw3d/MenuButtoP.h>
+ 
++#include "XawAlloc.h"
++
+ static void ClassInitialize();
+ static void PopupMenu();
+ 
+@@ -179,9 +181,16 @@ Cardinal * num_params;
+ 
+   if (menu == NULL) {
+     char error_buf[BUFSIZ];
+-    (void) sprintf(error_buf, "MenuButton: %s %s.",
+-	    "Could not find menu widget named", mbw->menu_button.menu_name);
+-    XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
++    char *err1 = "MenuButton: Could not find menu widget named ";
++    char *perr;
++    int len;
++
++    len = strlen(err1) + strlen(mbw->menu_button.menu_name) + 1 + 1;
++    perr = XtStackAlloc(len, error_buf);
++    if (perr == NULL) return;
++    sprintf(perr, "%s%s.", err1, mbw->menu_button.menu_name);
++    XtAppWarning(XtWidgetToApplicationContext(w), perr);
++    XtStackFree(perr, error_buf);
+     return;
+   }
+   if (!XtIsRealized(menu))
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian	2008-10-06 11:42:13.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c	2008-10-06 11:42:13.000000000 +0200
+@@ -74,6 +74,9 @@ in this Software without prior written a
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ 
+ /****************************************************************
+  *
+@@ -1077,7 +1080,9 @@ InitStringOrFile(src, newString)
+     MultiSrcObject src;
+     Boolean newString;
+ {
+-    char * open_mode = NULL;
++    mode_t open_mode = 0;
++    const char *fdopen_mode = NULL;
++    int fd;
+     FILE * file;
+     char fileName[TMPSIZ];
+     Display *d = XtDisplayOfObject((Widget)src);
+@@ -1128,7 +1133,8 @@ InitStringOrFile(src, newString)
+ 	    XtErrorMsg("NoFile", "multiSourceCreate", "XawError",
+ 		     "Creating a read only disk widget and no file specified.",
+ 		       NULL, 0);
+-	open_mode = "r";
++	open_mode = O_RDONLY;
++	fdopen_mode = "r";
+ 	break;
+     case XawtextAppend:
+     case XawtextEdit:
+@@ -1141,9 +1147,17 @@ InitStringOrFile(src, newString)
+ 
+ 	    (void) tmpnam(src->multi_src.string);
+ 	    src->multi_src.is_tempfile = TRUE;
+-	    open_mode = "w";
+-	} else
+-	    open_mode = "r+";
++	    open_mode = O_WRONLY | O_CREAT | O_EXCL;
++	    fdopen_mode = "w";
++	} else {
++/* O_NOFOLLOW is a BSD & Linux extension */
++#ifdef O_NOFOLLOW 
++		open_mode = O_RDWR | O_NOFOLLOW;
++#else
++		open_mode = O_RDWR; /* unsafe; subject to race conditions */
++#endif
++		fdopen_mode = "r+";
++	}
+ 	break;
+     default:
+ 	XtErrorMsg("badMode", "multiSourceCreate", "XawError",
+@@ -1162,11 +1176,14 @@ InitStringOrFile(src, newString)
+     }
+     
+     if (!src->multi_src.is_tempfile) {
+-	if ((file = fopen(src->multi_src.string, open_mode)) != 0) {
+-	    (void) fseek(file, (Off_t)0, 2);
+-            src->multi_src.length = ftell (file);
+-	    return file;
+-	} else {
++	if ((fd = open(src->multi_src.string, open_mode, 0666))) {
++		if ((file = fdopen(fd, fdopen_mode)) != NULL) {
++			(void)fseek(file, 0, SEEK_END);
++			src->multi_src.length = (XawTextPosition)ftell(file);
++			return (file);
++		}
++	}
++	{
+ 	    String params[2];
+ 	    Cardinal num_params = 2;
+ 	    
+@@ -1178,7 +1195,7 @@ InitStringOrFile(src, newString)
+ 	}
+     } 
+     src->multi_src.length = 0;
+-    return((FILE *)NULL);
++    return(NULL);
+ #undef StrLen
+ }
+ 
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian	1996-10-15 16:41:21.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h	2008-10-06 11:42:13.000000000 +0200
+@@ -113,7 +113,11 @@ SOFTWARE.
+ #ifdef L_tmpnam
+ #define TMPSIZ L_tmpnam
+ #else
+-#define TMPSIZ 32		/* bytes to allocate for tmpnam */
++#ifdef PATH_MAX
++#define TMPSIZ PATH_MAX
++#else
++#define TMPSIZ 1024		/* bytes to allocate for tmpnam */
++#endif
+ #endif
+ 
+ #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian	2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c	2008-10-06 11:42:13.000000000 +0200
+@@ -56,6 +56,8 @@ SOFTWARE.
+ #include <X11/Xaw3d/SimpleP.h>
+ #include <X11/Xmu/Drawing.h>
+ 
++#include "XawAlloc.h"
++
+ #define offset(field) XtOffsetOf(SimpleRec, simple.field)
+ 
+ static XtResource resources[] = {
+@@ -148,11 +150,17 @@ static void ClassPartInitialize(class)
+ 
+     if (c->simple_class.change_sensitive == NULL) {
+ 	char buf[BUFSIZ];
+-
+-	(void) sprintf(buf,
+-		"%s Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited.",
+-		c->core_class.class_name);
+-	XtWarning(buf);
++	char *pbuf;
++	char *msg1 = " Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited.";
++	int len;
++
++	len = strlen(msg1) + strlen(c->core_class.class_name) + 1;
++	pbuf = XtStackAlloc(len, buf);
++	if (pbuf != NULL) {
++	    sprintf(pbuf, "%s%s", c->core_class.class_name, msg1);
++	    XtWarning(pbuf);
++	    XtStackFree(pbuf, buf);
++	}
+ 	c->simple_class.change_sensitive = ChangeSensitive;
+     }
+ 
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian	2003-02-17 07:45:07.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c	2008-10-06 11:42:13.000000000 +0200
+@@ -51,6 +51,8 @@ in this Software without prior written a
+ #include <X11/Xmu/Initer.h>
+ #include <X11/Xmu/CharSet.h>
+ 
++#include "XawAlloc.h"
++
+ #define streq(a, b)        ( strcmp((a), (b)) == 0 )
+ 
+ #define offset(field) XtOffsetOf(SimpleMenuRec, simple_menu.field)
+@@ -755,9 +757,17 @@ Cardinal * num_params;
+ 
+   if ( (menu = FindMenu(w, params[0])) == NULL) {
+     char error_buf[BUFSIZ];
+-    (void) sprintf(error_buf, "%s '%s'",
+-	    "Xaw - SimpleMenuWidget: could not find menu named: ", params[0]);
+-    XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
++    char *err1 = "Xaw - SimpleMenuWidget: could not find menu named: ";
++    char *perr;
++    int len;
++
++    len = strlen(err1) + strlen(params[0]) + 2 + 1;
++    perr = XtStackAlloc(len, error_buf);
++    if (perr == NULL)
++	return;
++    sprintf(perr, "%s'%s'", err1, params[0]);
++    XtAppWarning(XtWidgetToApplicationContext(w), perr);
++    XtStackFree(perr, error_buf);
+     return;
+   }
+   
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian	2003-02-10 18:18:00.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c	2008-10-06 11:42:13.000000000 +0200
+@@ -315,7 +315,15 @@ XtIntervalId *id;		/* unused */
+        if (w->strip_chart.points != NULL) {
+ 	   w->strip_chart.points[0].x = w->strip_chart.interval + s;
+ 	   XDrawPoints(XtDisplay(w), XtWindow(w), w->strip_chart.hiGC,
+-		       w->strip_chart.points, w->strip_chart.scale,
++		/*
++		 * patch:
++		 *
++		 *     w->strip_chart.points, w->strip_chart.scale,
++		 * 
++		 * this to avoid a subdle bug of extra spurios scan
++		 * line in this widget.
++		 */
++		       w->strip_chart.points, w->strip_chart.scale - 1, 
+ 		       CoordModePrevious);
+        }
+ 
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Text.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian	2008-10-06 11:42:13.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Text.c	2008-10-06 11:43:16.000000000 +0200
+@@ -76,6 +76,8 @@ SOFTWARE.
+ #include <ctype.h>		/* for isprint() */
+ #include <stdlib.h>
+ 
++#include "XawAlloc.h"
++
+ #ifndef MAX_LEN_CT
+ #define MAX_LEN_CT 6		/* for sequence: ESC $ ( A \xx \xx */
+ #endif
+@@ -521,6 +523,8 @@ Cardinal *num_args;		/* unused */
+   TextWidget ctx = (TextWidget) new;
+   char error_buf[BUFSIZ];
+   int s;
++  char *perr; /* frankie */
++  size_t len; /* frankie */
+ 
+   ctx->text.threeD = XtVaCreateWidget("threeD", threeDWidgetClass, new,
+                                  XtNx, 0, XtNy, 0,
+@@ -569,10 +573,17 @@ Cardinal *num_args;		/* unused */
+   if (ctx->text.scroll_vert != XawtextScrollNever) 
+     if ( (ctx->text.resize == XawtextResizeHeight) ||
+      	 (ctx->text.resize == XawtextResizeBoth) ) {
+-      (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+-	      "Vertical scrolling not allowed with height resize.\n",
+-	      "Vertical scrolling has been DEACTIVATED.");
+-      XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++      char *err1 = "Xaw Text Widget ";
++      char *err2 = ":\nVertical scrolling not allowed with height resize.\n";
++      char *err3 = "Vertical scrolling has been DEACTIVATED.";
++      len = strlen(err1) + strlen(err2) + strlen(err3) +
++		strlen(ctx->core.name) + 1;
++      perr = XtStackAlloc(len, error_buf);
++      if (perr != NULL) {
++	(void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++	XtAppWarning(XtWidgetToApplicationContext(new), perr);
++	XtStackFree(perr, error_buf);
++      }
+       ctx->text.scroll_vert = XawtextScrollNever;
+     }
+     else if (ctx->text.scroll_vert == XawtextScrollAlways)
+@@ -580,18 +591,32 @@ Cardinal *num_args;		/* unused */
+ 
+   if (ctx->text.scroll_horiz != XawtextScrollNever) 
+     if (ctx->text.wrap != XawtextWrapNever) {
+-      (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+-	      "Horizontal scrolling not allowed with wrapping active.\n",
+-	      "Horizontal scrolling has been DEACTIVATED.");
+-      XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++      char *err1 = "Xaw Text Widget ";
++      char *err2 = ":\nHorizontal scrolling not allowed with wrapping active.";
++      char *err3 = "\nHorizontal scrolling has been DEACTIVATED.";
++      len = strlen(err1) + strlen(err2) + strlen(err3) +
++		strlen(ctx->core.name) + 1;
++      perr = XtStackAlloc(len, error_buf);
++      if (perr != NULL) {
++	(void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++	XtAppWarning(XtWidgetToApplicationContext(new), perr);
++	XtStackFree(perr, error_buf);
++      }
+       ctx->text.scroll_horiz = XawtextScrollNever;
+     }
+     else if ( (ctx->text.resize == XawtextResizeWidth) ||
+ 	      (ctx->text.resize == XawtextResizeBoth) ) {
+-      (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+-	      "Horizontal scrolling not allowed with width resize.\n",
+-	      "Horizontal scrolling has been DEACTIVATED.");
+-      XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++      char *err1 = "Xaw Text Widget ";
++      char *err2 = ":\nHorizontal scrolling not allowed with width resize.\n";
++      char *err3 = "Horizontal scrolling has been DEACTIVATED.";
++      len = strlen(err1) + strlen(err2) + strlen(err3) +
++		strlen(ctx->core.name) + 1;
++      perr = XtStackAlloc(len, error_buf);
++      if (perr != NULL) {
++	(void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++	XtAppWarning(XtWidgetToApplicationContext(new), perr);
++	XtStackFree(perr, error_buf);
++      }
+       ctx->text.scroll_horiz = XawtextScrollNever;
+     }
+     else if (ctx->text.scroll_horiz == XawtextScrollAlways)
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian	2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c	2008-10-06 11:42:13.000000000 +0200
+@@ -66,6 +66,8 @@ in this Software without prior written a
+ #include <X11/Xos.h>		/* for O_RDONLY */
+ #include <errno.h>
+ 
++#include "XawAlloc.h"
++
+ #ifdef X_NOT_STDC_ENV
+ extern int errno;
+ #endif
+@@ -809,6 +811,8 @@ DoSearch(search)
+ struct SearchAndReplace * search;
+ {
+   char msg[BUFSIZ];
++  char *pmsg;
++  int len;
+   Widget tw = XtParent(search->search_popup);
+   XawTextPosition pos;
+   XawTextScanDirection dir;
+@@ -835,9 +839,20 @@ struct SearchAndReplace * search;
+    /* The Raw string in find.ptr may be WC I can't use here, so I re - call 
+    GetString to get a tame version. */
+ 
+-  if (pos == XawTextSearchError) 
+-    (void) sprintf( msg, "Could not find string ``%s''.", GetString( search->search_text ) );
+-  else {
++  if (pos == XawTextSearchError) {
++    char *msg1 = "Could not find string ``";
++    char *msg2 = "''.";
++    len = strlen(msg1) + strlen(msg2) +
++		strlen(GetString( search->search_text )) + 1;
++    pmsg = XtStackAlloc(len, msg);
++    if (pmsg != NULL) {
++      (void) sprintf( pmsg, "%s%s%s", msg1, GetString( search->search_text ),
++			msg2);
++    } else {
++      pmsg = msg;
++      (void) sprintf( pmsg, "Could not find string");
++    }
++  } else {
+     if (dir == XawsdRight)
+       XawTextSetInsertionPoint( tw, pos + text.length);
+     else
+@@ -849,7 +864,8 @@ struct SearchAndReplace * search;
+   }
+   
+   XawTextUnsetSelection(tw);
+-  SetSearchLabels(search, msg, "", TRUE);
++  SetSearchLabels(search, pmsg, "", TRUE);
++  XtStackFree(pmsg, msg);
+   return(FALSE);
+ }
+ 
+@@ -982,13 +998,26 @@ Boolean once_only, show_current;
+       if ( (new_pos == XawTextSearchError) ) {
+ 	if (count == 0) {
+ 	  char msg[BUFSIZ];
++	  char *pmsg;
++	  int len;
++	  char *msg1 = "*** Error: Could not find string ``";
++	  char *msg2 = "''. ***";
+ 
+              /* The Raw string in find.ptr may be WC I can't use here, 
+ 		so I call GetString to get a tame version.*/
+ 
+-	  (void) sprintf( msg, "%s %s %s", "*** Error: Could not find string ``",
+-		  GetString( search->search_text ), "''. ***");
+-	  SetSearchLabels(search, msg, "", TRUE);
++	  len = strlen(msg1) + strlen(msg2) +
++		strlen(GetString( search->search_text )) + 1;
++	  pmsg = XtStackAlloc(len, msg);
++	  if (pmsg != NULL) {
++	    (void) sprintf( pmsg, "%s%s%s", msg1,
++				GetString( search->search_text ), msg2);
++	  } else {
++	    pmsg = msg;
++	    (void) sprintf(pmsg, "*** Error: Could not find string ***");
++	  }
++	  SetSearchLabels(search, pmsg, "", TRUE);
++	  XtStackFree(pmsg, msg);
+ 	  return(FALSE);
+ 	}
+ 	else
+@@ -1011,9 +1040,22 @@ Boolean once_only, show_current;
+ 
+     if (XawTextReplace(tw, pos, end_pos, &replace) != XawEditDone) {
+       char msg[BUFSIZ];
+-      
+-      (void) sprintf( msg, "'%s' with '%s'. ***", find.ptr, replace.ptr);
++      char *pmsg;
++      int len;
++      char *msg1 = "' with '";
++      char *msg2 = "'. ***";
++
++      len = 1 + strlen(msg1) + strlen(msg2) + strlen(find.ptr) +
++		strlen(replace.ptr) + 1;
++      pmsg = XtStackAlloc(len, msg);
++      if (pmsg != NULL) {
++	(void) sprintf( pmsg, "`%s%s%s%s", find.ptr, msg1, replace.ptr, msg2);
++      } else {
++	pmsg = msg;
++	(void) sprintf(pmsg, "string ***");
++      }
+       SetSearchLabels(search, "*** Error while replacing", msg, TRUE);
++      XtStackFree(pmsg, msg);
+       return(FALSE);
+     }      
+ 
+@@ -1164,13 +1206,20 @@ XtArgVal value;
+ {
+   Widget temp_widget;
+   char buf[BUFSIZ];
++  char *pbuf;
++  int len;
+ 
+-  (void) sprintf(buf, "%s.%s", FORM_NAME, name);
++  len = strlen(FORM_NAME) + strlen(name) + 2;
++  pbuf = XtStackAlloc(len, buf);
++  if (pbuf == NULL) return FALSE;
++  (void) sprintf(pbuf, "%s.%s", FORM_NAME, name);
+ 
+-  if ( (temp_widget = XtNameToWidget(shell, buf)) != NULL) {
++  if ( (temp_widget = XtNameToWidget(shell, pbuf)) != NULL) {
+     SetResource(temp_widget, res_name, value);
++    XtStackFree(pbuf, buf);
+     return(TRUE);
+   }
++  XtStackFree(pbuf, buf);
+   return(FALSE);
+ }
+ 
+diff -up /dev/null Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h
+--- /dev/null	2008-10-06 08:37:32.418005377 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h	2008-10-06 11:42:13.000000000 +0200
+@@ -0,0 +1,10 @@
++/* $XFree86: xc/lib/Xaw/XawAlloc.h,v 1.1.2.1 1998/05/16 09:05:23 dawes Exp $ */
++
++#define XtStackAlloc(size, stack_cache_array)     \
++    ((size) <= sizeof(stack_cache_array)          \
++    ?  (XtPointer)(stack_cache_array)             \
++    :  XtMalloc((unsigned)(size)))
++     
++#define XtStackFree(pointer, stack_cache_array) \
++    if ((pointer) != ((XtPointer)(stack_cache_array))) XtFree(pointer); else
++
+--- xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c	2003-08-04 17:27:58.000000000 +0200
++++ xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c	2003-08-07 15:02:39.000000000 +0200
+@@ -52,6 +52,8 @@
+ #include <X11/Xaw3d/Cardinals.h>
+ #include <stdio.h>
+ 
++#include "XawAlloc.h"
++
+ /* needed for abs() */
+ #ifndef X_NOT_STDC_ENV
+ #include <stdlib.h>
+@@ -712,6 +714,8 @@
+     int x, y;
+     unsigned int width, height, bw;
+     char buf[BUFSIZ];
++    char *pbuf;
++    int len;
+     
+     if (is_left) {
+ 	width = height = 0;
+@@ -720,18 +724,24 @@
+ 	    if (!XGetGeometry(XtDisplayOfObject(w), 
+ 			    entry->sme_bsb.left_bitmap, &root, &x, &y,
+ 			    &width, &height, &bw, &entry->sme_bsb.left_depth)) {
+-		(void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".",
+-			"Could not get Left Bitmap",
+-			"geometry information for menu entry",
+-			XtName(w));
+-		XtAppError(XtWidgetToApplicationContext(w), buf);
++               char *err1 = "Xaw SmeBSB Object: Could not get Left Bitmap geometry information for menu entry ";
++	       len = strlen(err1) + strlen(XtName(w)) + 3 + 1;
++               pbuf = XtStackAlloc(len, buf);
++               if (pbuf == NULL) return;
++               sprintf(pbuf, "%s\"%s\".", err1, XtName(w));
++               XtAppError(XtWidgetToApplicationContext(w), pbuf);
++               XtStackFree(pbuf, buf);
+ 	    }
+ #ifdef NEVER
+ 	    if (entry->sme_bsb.left_depth != 1) {
+-		(void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.", 
+-			"Left Bitmap of entry",  XtName(w),
+-			"is not one bit deep");
+-		XtAppError(XtWidgetToApplicationContext(w), buf);
++               char *err1 = "Xaw SmeBSB Object: Left Bitmap of entry ";
++               char *err2 = " is not one bit deep.";
++               len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1;
++               pbuf = XtStackAlloc(len, buf);
++               if (pbuf == NULL) return;
++               sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2);
++               XtAppError(XtWidgetToApplicationContext(w), pbuf);
++               XtStackFree(pbuf, buf);
+ 	    }
+ #endif
+ 	}
+@@ -745,18 +755,24 @@
+ 	    if (!XGetGeometry(XtDisplayOfObject(w),
+ 			    entry->sme_bsb.right_bitmap, &root, &x, &y,
+ 			    &width, &height, &bw, &entry->sme_bsb.right_depth)) {
+-		(void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".",
+-			"Could not get Right Bitmap",
+-			"geometry information for menu entry",
+-			XtName(w));
+-		XtAppError(XtWidgetToApplicationContext(w), buf);
++            char *err1 = "Xaw SmeBSB Object: Could not get Right Bitmap geometry information for menu entry ";
++            len = strlen(err1) + strlen(XtName(w)) + 3 + 1;
++            pbuf = XtStackAlloc(len, buf);
++            if (pbuf == NULL) return;
++            sprintf(pbuf, "%s\"%s\".", err1, XtName(w));
++            XtAppError(XtWidgetToApplicationContext(w), pbuf);
++            XtStackFree(pbuf, buf);
+ 	    }
+ #ifdef NEVER
+ 	    if (entry->sme_bsb.right_depth != 1) {
+-		(void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.", 
+-			"Right Bitmap of entry", XtName(w),
+-			"is not one bit deep");
+-		XtAppError(XtWidgetToApplicationContext(w), buf);
++            char *err1 = "Xaw SmeBSB Object: Right Bitmap of entry ";
++            char *err2 = " is not one bit deep.";
++            len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1;
++            pbuf = XtStackAlloc(len, buf);
++            if (pbuf == NULL) return;
++            sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2);
++            XtAppError(XtWidgetToApplicationContext(w), pbuf);
++            XtStackFree(pbuf, buf);
+ 	    }
+ #endif
+ 	}

Added: Xaw3d-1.5-i18n.patch
===================================================================
--- Xaw3d-1.5-i18n.patch	                        (rev 0)
+++ Xaw3d-1.5-i18n.patch	2008-12-16 06:09:40 UTC (rev 21756)
@@ -0,0 +1,10 @@
+--- Xaw3d-1.5/xc/lib/Xaw3d/MultiSrc.c.orig	Tue Aug  6 22:51:08 2002
++++ Xaw3d-1.5/xc/lib/Xaw3d/MultiSrc.c	Tue Aug  6 22:51:16 2002
+@@ -735,6 +735,7 @@
+   
+   if ( string_set || (old_src->multi_src.type != src->multi_src.type) ) {
+     RemoveOldStringOrFile(old_src, string_set);
++    src->multi_src.allocated_string = old_src->multi_src.allocated_string;
+     file = InitStringOrFile(src, string_set);
+ 
+     /* Load pieces does this logic for us, but it shouldn't.  Its messy.*/

Added: Xaw3d-1.5E-xorg-imake.patch
===================================================================
--- Xaw3d-1.5E-xorg-imake.patch	                        (rev 0)
+++ Xaw3d-1.5E-xorg-imake.patch	2008-12-16 06:09:40 UTC (rev 21756)
@@ -0,0 +1,35 @@
+--- Imakefile.config	2003-03-08 15:55:18.000000000 +0100
++++ Imakefile	2005-01-20 14:48:55.630795072 +0100
+@@ -5,24 +5,24 @@
+ XCOMM Build options. Have you read the README.XAW3D file yet?
+ XCOMM
+ XCOMM For color pixmaps, define MULTIPLANE_PIXMAPS:
+-#undef MULTIPLANE_PIXMAPS
++#define MULTIPLANE_PIXMAPS
+ XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
+ #define GRAY_BLKWHT_STIPPLES
+ XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
+-#undef ARROW_SCROLLBARS
++#define ARROW_SCROLLBARS
+ 
+-#define DoNormalLib NormalLibXaw
+-#define DoSharedLib SharedLibXaw
+-#define DoDebugLib DebugLibXaw 
+-#define DoProfileLib ProfileLibXaw 
++#define DoNormalLib NormalLibXaw7
++#define DoSharedLib SharedLibXaw7
++#define DoDebugLib DebugLibXaw7 
++#define DoProfileLib ProfileLibXaw7 
+ #define HasSharedData YES
+ #define LibName Xaw3d
+-#define SoRev SOXAWREV
++#define SoRev SOXAW7REV
+ #define IncSubdir X11
+ #define IncSubSubdir Xaw3d
+ 
+ XCOMM When building outside an X11 source tree:
+-XCOMM EXTRA_INCLUDES = -I.
++EXTRA_INCLUDES = -I.
+ 
+ #ifdef SharedXawReqs
+ REQUIREDLIBS = SharedXawReqs

Modified: xaw3d.patch
===================================================================
--- xaw3d.patch	2008-12-16 05:56:55 UTC (rev 21755)
+++ xaw3d.patch	2008-12-16 06:09:40 UTC (rev 21756)
@@ -1,29 +1,30 @@
---- Xaw3d/XawI18n.h.orig	1996-10-15 14:41:26.000000000 +0000
-+++ Xaw3d/XawI18n.h	2005-12-21 13:21:57.000000000 +0000
-@@ -26,10 +26,11 @@
- in this Software without prior written authorization from the X Consortium.
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig	2003-02-10 18:22:26.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c	2008-10-06 10:07:46.000000000 +0200
+@@ -1087,7 +1087,11 @@ static void NotifyThumb (w, event, param
+     Cardinal *num_params;	/* unused */
+ {
+     register ScrollbarWidget sbw = (ScrollbarWidget) w;
+-    float top = sbw->scrollbar.top;
++    union {
++	XtPointer pt;
++	float	  top;
++    } foo;
++    foo.top = sbw->scrollbar.top;
  
- ********************************************************/
--
-+#if 0
- #ifdef HAS_WCTYPE_H
- #include <wctype.h>
- #include <widec.h>
-+#endif
- #define wcslen(c) wslen(c)
- #define wcscpy(d,s) wscpy(d,s)
- #define wcsncpy(d,s,l) wsncpy(d,s,l)
---- Xaw3d/Imakefile.orig	2005-12-21 13:20:04.000000000 +0000
-+++ Xaw3d/Imakefile	2005-12-21 13:20:09.000000000 +0000
-@@ -39,9 +39,9 @@
+ #ifndef XAW_ARROW_SCROLLBARS
+     if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
+@@ -1116,10 +1120,10 @@ static void NotifyThumb (w, event, param
+     /* Removed the dependancy on scrollbar arrows. Xterm as distributed in
+        X11R6.6 by The XFree86 Project wants this correction, with or without
+        the arrows. */
+-    top += 0.0001;
++    foo.top += 0.0001;
+ /* #endif */
+-    XtCallCallbacks (w, XtNthumbProc, *(XtPointer*)&top);
+-    XtCallCallbacks (w, XtNjumpProc, (XtPointer)&top);
++    XtCallCallbacks (w, XtNthumbProc, foo.pt);
++    XtCallCallbacks (w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
+ }
  
-        LINTLIBS = $(LINTXLIB) $(LINTXTOOL)
  
--#  EXTRA_DEFINES = -DARROW_SCROLLBAR -DUSEGRAY
-+  EXTRA_DEFINES = -DARROW_SCROLLBAR -DUSEGRAY
- 
--#  EXTRA_INCLUDES = -I.
-+  EXTRA_INCLUDES = -I.
- 
- HEADERS = \
- 	AllWidgets.h \




More information about the arch-commits mailing list