summaryrefslogtreecommitdiffstats
path: root/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff
diff options
context:
space:
mode:
Diffstat (limited to 'source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff')
-rw-r--r--source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff647
1 files changed, 0 insertions, 647 deletions
diff --git a/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff b/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff
deleted file mode 100644
index 5593f249b..000000000
--- a/source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff
+++ /dev/null
@@ -1,647 +0,0 @@
-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
- }