diff options
Diffstat (limited to 'source/x/xaw3d')
-rw-r--r-- | source/x/xaw3d/Xaw3d-1.5-debian-fixes.diff | 647 | ||||
-rw-r--r-- | source/x/xaw3d/Xaw3d-1.5E.diff | 30 | ||||
-rwxr-xr-x | source/x/xaw3d/pull-xaw3d.sh | 7 | ||||
-rwxr-xr-x | source/x/xaw3d/xaw3d.SlackBuild | 57 |
4 files changed, 32 insertions, 709 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 5593f249..00000000 --- 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 - } diff --git a/source/x/xaw3d/Xaw3d-1.5E.diff b/source/x/xaw3d/Xaw3d-1.5E.diff deleted file mode 100644 index e476b5c4..00000000 --- a/source/x/xaw3d/Xaw3d-1.5E.diff +++ /dev/null @@ -1,30 +0,0 @@ -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; - - #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); - } - - diff --git a/source/x/xaw3d/pull-xaw3d.sh b/source/x/xaw3d/pull-xaw3d.sh new file mode 100755 index 00000000..96141a6d --- /dev/null +++ b/source/x/xaw3d/pull-xaw3d.sh @@ -0,0 +1,7 @@ +rm -rf xaw3d +git clone git://gitorious.org/xaw3d/xaw3d.git +( cd xaw3d && rm -rf .git* ) +mv xaw3d xaw3d-$(date +%Y%m%d)git +tar cf xaw3d-$(date +%Y%m%d)git.tar xaw3d-$(date +%Y%m%d)git +xz -9 xaw3d-$(date +%Y%m%d)git.tar + diff --git a/source/x/xaw3d/xaw3d.SlackBuild b/source/x/xaw3d/xaw3d.SlackBuild index 2991fe7a..1574d7f3 100755 --- a/source/x/xaw3d/xaw3d.SlackBuild +++ b/source/x/xaw3d/xaw3d.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2011 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,11 +21,20 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -VERSION=${VERSION:-1.5E} -ARCH=${ARCH:-x86_64} -NUMJOBS=${NUMJOBS:-" -j7 "} +PKGNAM=xaw3d +VERSION=${VERSION:-20110415git} BUILD=${BUILD:-1} +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) export ARCH=i486 ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$( uname -m ) ;; + esac +fi + if [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" LIBDIRSUFFIX="" @@ -37,6 +46,8 @@ elif [ "$ARCH" = "x86_64" ]; then LIBDIRSUFFIX="64" fi +NUMJOBS=${NUMJOBS:-" -j7 "} + CWD=$(pwd) TMP=${TMP:-/tmp} PKG=$TMP/package-xaw3d @@ -44,11 +55,9 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP -rm -rf $TMP/xc -tar xvf $CWD/Xaw3d-$VERSION.tar.gz || exit 1 -( cd xc ; zcat $CWD/Xaw3d-$VERSION.diff.gz | patch -p2 --verbose --backup --suffix=.orig ) -( cd xc ; zcat $CWD/Xaw3d-1.5-debian-fixes.diff.gz | patch -p2 --verbose --backup --suffix=.orig ) -cd xc +rm -rf $TMP/xaw3d-$VERSION +tar xvf $CWD/xaw3d-$VERSION.tar.?z* || exit 1 +cd xaw3d-$VERSION/xc || exit 1 chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -60,35 +69,19 @@ cd lib/Xaw3d ln -s .. X11 xmkmf make CCOPTIONS="$SLKCFLAGS -I." || exit 1 -strip --strip-unneeded libXaw3d.so.8.0 -mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} -cat libXaw3d.so.8.0 > $PKG/usr/lib${LIBDIRSUFFIX}/libXaw3d.so.8.0 -chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/libXaw3d.so.8.0 -# Make compat symlinks: +make install DESTDIR=$PKG + +strip --strip-unneeded $PKG/usr/lib${LIBDIRSUFFIX}/libXaw3d.so.* +# Make compat symlinks. For whatever reason, Xaw3d has had more random +# numbers assigned to it over the years than about anything, so we need +# to make links that work for at least .6 and .8 in addition to .7. ( cd $PKG/usr/lib${LIBDIRSUFFIX} - ln -sf libXaw3d.so.8.0 libXaw3d.so.8 - ln -sf libXaw3d.so.8 libXaw3d.so - ln -sf libXaw3d.so.8 libXaw3d.so.7 + ln -sf libXaw3d.so.7 libXaw3d.so.8 ln -sf libXaw3d.so.7 libXaw3d.so.6 ) mkdir -p $PKG/usr/doc/Xaw3d-$VERSION cp -a README.XAW3D $PKG/usr/doc/Xaw3d-$VERSION chmod 644 $PKG/usr/doc/Xaw3d-$VERSION/README.XAW3D -mkdir -p $PKG/usr/include/X11/Xaw3d -for header in AllWidgets.h AsciiSink.h AsciiSinkP.h AsciiSrc.h AsciiSrcP.h \ -AsciiText.h AsciiTextP.h Box.h BoxP.h Cardinals.h Command.h CommandP.h \ -Dialog.h DialogP.h Form.h FormP.h Grip.h GripP.h Label.h LabelP.h Layout.h \ -LayoutP.h List.h ListP.h MenuButton.h MenuButtoP.h MultiSrc.h MultiSrcP.h \ -MultiSink.h MultiSinkP.h Paned.h PanedP.h Panner.h PannerP.h Porthole.h \ -PortholeP.h Repeater.h RepeaterP.h Reports.h Scrollbar.h ScrollbarP.h \ -Simple.h SimpleP.h SimpleMenu.h SimpleMenP.h Sme.h SmeP.h SmeBSB.h SmeBSBP.h \ -SmeLine.h SmeLineP.h SmeThreeD.h SmeThreeDP.h StripChart.h StripCharP.h \ -Template.c Template.h TemplateP.h Text.h TextP.h TextSink.h TextSinkP.h \ -TextSrc.h TextSrcP.h ThreeD.h ThreeDP.h Tip.h TipP.h Toggle.h ToggleP.h Tree.h \ -TreeP.h VendorEP.h Viewport.h ViewportP.h Xaw3dP.h XawImP.h XawInit.h ; do - cp -a $header $PKG/usr/include/X11/Xaw3d/$header - chmod 644 $PKG/usr/include/X11/Xaw3d/$header -done mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc |