import Xaw3d-1.6.2-14.el8

c8 imports/c8/Xaw3d-1.6.2-14.el8
CentOS Sources 6 years ago committed by MSVSphere Packaging Team
commit 244eaabada

@ -0,0 +1 @@
0b1db72e9d5be0edae57cda213860c0289fac12f SOURCES/libXaw3d-1.6.2.tar.bz2

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/libXaw3d-1.6.2.tar.bz2

@ -0,0 +1,647 @@
diff -up Xaw3d-1.5libXaw3d-1.6.1/src/AsciiSrc.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/AsciiSrc.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/AsciiSrc.c.debian 2000-11-27 14:19:36.000000000 +0100
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/include/X11/Xaw3d/AsciiSrcP.h.debian Xaw3d-1.5libXaw3d-1.6.1/include/X11/Xaw3d/AsciiSrcP.h
--- Xaw3d-1.5libXaw3d-1.6.1/include/X11/Xaw3d/AsciiSrcP.h.debian 1996-10-15 16:41:18.000000000 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/include/X11/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.5libXaw3d-1.6.1/src/MenuButton.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/MenuButton.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/MenuButton.c.debian 1996-10-15 16:41:20.000000000 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/src/MultiSrc.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/MultiSrc.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/MultiSrc.c.debian 2008-10-06 11:42:13.000000000 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/include/X11/Xaw3d/MultiSrcP.h.debian Xaw3d-1.5libXaw3d-1.6.1/include/X11/Xaw3d/MultiSrcP.h
--- Xaw3d-1.5libXaw3d-1.6.1/include/X11/Xaw3d/MultiSrcP.h.debian 1996-10-15 16:41:21.000000000 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/include/X11/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.5libXaw3d-1.6.1/src/Simple.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/Simple.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/Simple.c.debian 2000-11-27 14:19:36.000000000 +0100
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/src/SimpleMenu.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/SimpleMenu.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/SimpleMenu.c.debian 2003-02-17 07:45:07.000000000 +0100
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/src/StripChart.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/StripChart.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/StripChart.c.debian 2003-02-10 18:18:00.000000000 +0100
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/src/Text.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/Text.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/Text.c.debian 2008-10-06 11:42:13.000000000 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/src/TextPop.c.debian Xaw3d-1.5libXaw3d-1.6.1/src/TextPop.c
--- Xaw3d-1.5libXaw3d-1.6.1/src/TextPop.c.debian 2000-11-27 14:19:36.000000000 +0100
+++ Xaw3d-1.5libXaw3d-1.6.1/src/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.5libXaw3d-1.6.1/include/X11/Xaw3d/XawAlloc.h
--- /dev/null 2008-10-06 08:37:32.418005377 +0200
+++ Xaw3d-1.5libXaw3d-1.6.1/include/X11/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.5libXaw3d-1.6.1/src/SmeBSB.c 2003-08-04 17:27:58.000000000 +0200
+++ xaw3d-1.5libXaw3d-1.6.1/src/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
}

@ -0,0 +1,162 @@
diff -up libXaw3d-1.6.1/src/Label.c.3Dlabel libXaw3d-1.6.1/src/Label.c
--- libXaw3d-1.6.1/src/Label.c.3Dlabel 2011-09-19 15:42:36.000000000 -0600
+++ libXaw3d-1.6.1/src/Label.c 2012-02-25 14:44:33.766774776 -0700
@@ -416,9 +416,16 @@ GetgrayGC(LabelWidget lw)
static void
compute_bitmap_offsets (LabelWidget lw)
{
- if (lw->label.lbm_height != 0)
- lw->label.lbm_y = (lw->core.height - lw->label.lbm_height) / 2;
- else
+ /*
+ * bitmap will be eventually be displayed at
+ * (internal_width, internal_height + lbm_y)
+ */
+ if (lw->label.lbm_height != 0) {
+ lw->label.lbm_y = (lw->core.height -
+ (lw->threeD.shadow_width * 2 +
+ lw->label.internal_height * 2 +
+ lw->label.lbm_height)) / 2;
+ } else
lw->label.lbm_y = 0;
}
@@ -444,9 +451,11 @@ Initialize(Widget request, Widget new, A
{
LabelWidget lw = (LabelWidget) new;
+#if 0
/* disable shadows if we're not a subclass of Command */
if (!XtIsSubclass(new, commandWidgetClass))
lw->threeD.shadow_width = 0;
+#endif
if (lw->label.label == NULL)
lw->label.label = XtNewString(lw->core.name);
@@ -460,18 +469,20 @@ Initialize(Widget request, Widget new, A
if (lw->core.height == 0)
lw->core.height = lw->label.label_height +
- 2 * lw->label.internal_height;
+ 2 * lw->label.internal_height +
+ 2 * lw->threeD.shadow_width;
set_bitmap_info(lw); /* req's core.height, sets label.lbm_* */
if (lw->label.lbm_height > lw->label.label_height)
lw->core.height = lw->label.lbm_height +
- 2 * lw->label.internal_height;
+ 2 * lw->label.internal_height;
if (lw->core.width == 0)
lw->core.width = lw->label.label_width +
- 2 * lw->label.internal_width +
- LEFT_OFFSET(lw); /* req's label.lbm_width */
+ 2 * lw->label.internal_width +
+ 2 * lw->threeD.shadow_width +
+ LEFT_OFFSET(lw); /* req's label.lbm_width */
lw->label.label_x = lw->label.label_y = 0;
(*XtClass(new)->core_class.resize) ((Widget)lw);
@@ -549,14 +560,16 @@ Redisplay(Widget gw, XEvent *event, Regi
if (w->label.depth == 1)
XCopyPlane(XtDisplay(gw), pm, XtWindow(gw), gc, 0, 0,
w->label.lbm_width, w->label.lbm_height,
- (int) w->label.internal_width,
- (int) w->label.lbm_y,
+ (int) w->label.internal_width + w->threeD.shadow_width,
+ (int) w->label.internal_height + w->threeD.shadow_width
+ + w->label.lbm_y,
(unsigned long) 1L);
else
XCopyArea(XtDisplay(gw), pm, XtWindow(gw), gc, 0, 0,
w->label.lbm_width, w->label.lbm_height,
- (int) w->label.internal_width,
- (int) w->label.lbm_y);
+ (int) w->label.internal_width + w->threeD.shadow_width,
+ (int) w->label.internal_height + w->threeD.shadow_width
+ + w->label.lbm_y);
}
#ifdef XAW_INTERNATIONALIZATION
@@ -646,14 +659,17 @@ _Reposition(LabelWidget lw, Dimension wi
Position *dx, Position *dy)
{
Position newPos;
- Position leftedge = lw->label.internal_width + LEFT_OFFSET(lw);
+ Position leftedge = lw->label.internal_width + LEFT_OFFSET(lw) +
+ lw->threeD.shadow_width;
+
switch (lw->label.justify) {
case XtJustifyLeft:
newPos = leftedge;
break;
case XtJustifyRight:
- newPos = width - lw->label.label_width - lw->label.internal_width;
+ newPos = width - (lw->label.label_width + lw->label.internal_width +
+ lw->threeD.shadow_width);
break;
case XtJustifyCenter:
default:
@@ -745,17 +761,20 @@ SetValues(Widget current, Widget request
if (newlw->label.resize && was_resized) {
if (curlw->core.height == reqlw->core.height && !checks[HEIGHT])
newlw->core.height = newlw->label.label_height +
- 2 * newlw->label.internal_height;
+ 2 * newlw->label.internal_height +
+ 2 * newlw->threeD.shadow_width;
set_bitmap_info (newlw); /* req's core.height, sets label.lbm_* */
if (newlw->label.lbm_height > newlw->label.label_height)
newlw->core.height = newlw->label.lbm_height +
- 2 * newlw->label.internal_height;
+ 2 * newlw->label.internal_height +
+ 2 * newlw->threeD.shadow_width;
if (curlw->core.width == reqlw->core.width && !checks[WIDTH])
newlw->core.width = newlw->label.label_width +
2 * newlw->label.internal_width +
+ 2 * newlw->threeD.shadow_width +
LEFT_OFFSET(newlw); /* req's label.lbm_width */
}
@@ -764,15 +783,20 @@ SetValues(Widget current, Widget request
if (checks[HEIGHT]) {
if (newlw->label.label_height > newlw->label.lbm_height)
i = newlw->label.label_height +
- 2 * newlw->label.internal_height;
+ 2 * newlw->label.internal_height +
+ 2 * newlw->threeD.shadow_width;
else
- i = newlw->label.lbm_height + 2 * newlw->label.internal_height;
+ i = newlw->label.lbm_height +
+ 2 * newlw->label.internal_height +
+ 2 * newlw->threeD.shadow_width;
if (i > newlw->core.height)
newlw->core.height = i;
}
if (checks[WIDTH]) {
- i = newlw->label.label_width + 2 * newlw->label.internal_width +
- LEFT_OFFSET(newlw); /* req's label.lbm_width */
+ i = newlw->label.label_width +
+ 2 * newlw->label.internal_width +
+ 2 * newlw->threeD.shadow_width +
+ LEFT_OFFSET(newlw); /* req's label.lbm_width */
if (i > newlw->core.width)
newlw->core.width = i;
}
@@ -843,9 +867,11 @@ QueryGeometry(Widget w, XtWidgetGeometry
preferred->request_mode = CWWidth | CWHeight;
preferred->width = (lw->label.label_width +
2 * lw->label.internal_width +
+ 2 * lw->threeD.shadow_width +
LEFT_OFFSET(lw));
preferred->height = lw->label.label_height +
- 2 * lw->label.internal_height;
+ 2 * lw->label.internal_height +
+ 2 * lw->threeD.shadow_width;
if ( ((intended->request_mode & (CWWidth | CWHeight))
== (CWWidth | CWHeight)) &&
intended->width == preferred->width &&

@ -0,0 +1,60 @@
diff -up libXaw3d-1.6.1/src/AsciiSink.c.fontset libXaw3d-1.6.1/src/AsciiSink.c
--- libXaw3d-1.6.1/src/AsciiSink.c.fontset 2012-02-01 12:24:00.000000000 -0700
+++ libXaw3d-1.6.1/src/AsciiSink.c 2012-02-25 14:52:46.802779081 -0700
@@ -513,6 +513,8 @@ Initialize(Widget request, Widget new, A
{
AsciiSinkObject sink = (AsciiSinkObject) new;
+ if (!sink->ascii_sink.font) XtError("Aborting: no font found\n");
+
GetGC(sink);
sink->ascii_sink.insertCursorOn= CreateInsertCursor(XtScreenOfObject(new));
diff -up libXaw3d-1.6.1/src/Command.c.fontset libXaw3d-1.6.1/src/Command.c
--- libXaw3d-1.6.1/src/Command.c.fontset 2011-09-19 15:42:36.000000000 -0600
+++ libXaw3d-1.6.1/src/Command.c 2012-02-25 14:51:26.075372823 -0700
@@ -218,6 +218,8 @@ Initialize(Widget request, Widget new, A
CommandWidget cbw = (CommandWidget) new;
int shape_event_base, shape_error_base;
+ if (!cbw->label.font) XtError("Aborting: no font found\n");
+
if (cbw->command.shape_style != XawShapeRectangle
&& !XShapeQueryExtension(XtDisplay(new), &shape_event_base,
&shape_error_base))
diff -up libXaw3d-1.6.1/src/List.c.fontset libXaw3d-1.6.1/src/List.c
--- libXaw3d-1.6.1/src/List.c.fontset 2011-10-09 12:01:20.000000000 -0600
+++ libXaw3d-1.6.1/src/List.c 2012-02-25 14:53:16.327465260 -0700
@@ -362,6 +362,8 @@ Initialize(Widget junk, Widget new, ArgL
{
ListWidget lw = (ListWidget) new;
+ if (!lw->list.font) XtError("Aborting: no font found\n");
+
/*
* Initialize all private resources.
*/
diff -up libXaw3d-1.6.1/src/SmeBSB.c.fontset libXaw3d-1.6.1/src/SmeBSB.c
--- libXaw3d-1.6.1/src/SmeBSB.c.fontset 2011-09-19 15:42:36.000000000 -0600
+++ libXaw3d-1.6.1/src/SmeBSB.c 2012-02-25 14:50:19.056358107 -0700
@@ -207,6 +207,8 @@ Initialize(Widget request, Widget new, A
else
entry->sme_bsb.label = XtNewString( entry->sme_bsb.label );
+ if (!entry->sme_bsb.font) XtError("Aborting: no font found\n");
+
CreateGCs(new);
GetBitmapInfo(new, TRUE); /* Left Bitmap Info */
diff -up libXaw3d-1.6.1/src/Tip.c.fontset libXaw3d-1.6.1/src/Tip.c
--- libXaw3d-1.6.1/src/Tip.c.fontset 2012-02-15 12:10:38.000000000 -0700
+++ libXaw3d-1.6.1/src/Tip.c 2012-02-25 14:50:19.058358017 -0700
@@ -248,6 +248,8 @@ XawTipInitialize(Widget req, Widget w, A
TipWidget tip = (TipWidget)w;
XGCValues values;
+ if (!tip->tip.font) XtError("Aborting: no font found\n");
+
tip->tip.timer = 0;
values.foreground = tip->tip.foreground;

@ -0,0 +1,260 @@
diff -up libXaw3d-1.6.1/src/Text.c.hsbar libXaw3d-1.6.1/src/Text.c
--- libXaw3d-1.6.1/src/Text.c.hsbar 2011-10-06 13:17:19.000000000 -0600
+++ libXaw3d-1.6.1/src/Text.c 2012-02-25 14:54:41.996656624 -0700
@@ -495,8 +495,10 @@ CreateHScrollBar(TextWidget ctx)
(XtPointer) NULL);
/**/
- ctx->text.r_margin.bottom += hbar->core.height + hbar->core.border_width;
- ctx->text.margin.bottom = ctx->text.r_margin.bottom;
+ if (ctx->text.scroll_vert == XawtextScrollAlways) {
+ ctx->text.r_margin.bottom += hbar->core.height + hbar->core.border_width;
+ ctx->text.margin.bottom = ctx->text.r_margin.bottom;
+ }
/**/
PositionHScrollBar(ctx);
if (XtIsRealized((Widget)ctx)) {
@@ -519,8 +521,10 @@ DestroyHScrollBar(TextWidget ctx)
if (hbar == NULL) return;
/**/
- ctx->text.r_margin.bottom -= hbar->core.height + hbar->core.border_width;
- ctx->text.margin.bottom = ctx->text.r_margin.bottom;
+ if (ctx->text.scroll_vert == XawtextScrollAlways) {
+ ctx->text.r_margin.bottom -= hbar->core.height + hbar->core.border_width;
+ ctx->text.margin.bottom = ctx->text.r_margin.bottom;
+ }
/**/
if (ctx->text.vbar == NULL)
XtRemoveCallback((Widget) ctx, XtNunrealizeCallback, UnrealizeScrollbars,
diff -up libXaw3d-1.6.1/src/Viewport.c.hsbar libXaw3d-1.6.1/src/Viewport.c
--- libXaw3d-1.6.1/src/Viewport.c.hsbar 2012-01-24 14:56:03.000000000 -0700
+++ libXaw3d-1.6.1/src/Viewport.c 2012-02-25 14:58:18.474098582 -0700
@@ -244,7 +244,7 @@ Initialize(Widget request, Widget new, A
XtVaGetValues((Widget)(w->viewport.threeD), XtNshadowWidth, &sw, NULL);
if (sw)
{
- pad = 2;
+ pad = 2 * sw;
arg_cnt = 0;
XtSetArg(threeD_args[arg_cnt], XtNborderWidth, 0); arg_cnt++;
@@ -262,8 +262,8 @@ Initialize(Widget request, Widget new, A
XtSetArg(clip_args[arg_cnt], XtNright, XtChainRight); arg_cnt++;
XtSetArg(clip_args[arg_cnt], XtNtop, XtChainTop); arg_cnt++;
XtSetArg(clip_args[arg_cnt], XtNbottom, XtChainBottom); arg_cnt++;
- XtSetArg(clip_args[arg_cnt], XtNwidth, w->core.width - 2 * sw); arg_cnt++;
- XtSetArg(clip_args[arg_cnt], XtNheight, w->core.height - 2 * sw); arg_cnt++;
+ XtSetArg(clip_args[arg_cnt], XtNwidth, w->core.width - pad); arg_cnt++;
+ XtSetArg(clip_args[arg_cnt], XtNheight, w->core.height - pad); arg_cnt++;
w->viewport.clip = XtCreateManagedWidget("clip", widgetClass, new,
clip_args, arg_cnt);
@@ -283,8 +283,8 @@ Initialize(Widget request, Widget new, A
* Set the clip widget to the correct height.
*/
- clip_width = w->core.width - 2 * sw;
- clip_height = w->core.height - 2 * sw;
+ clip_width = w->core.width - pad;
+ clip_height = w->core.height - pad;
if ( (h_bar != NULL) &&
((int)w->core.width >
@@ -509,23 +509,13 @@ ComputeLayout(Widget widget, Boolean que
XtWidgetGeometry intended;
Dimension pad = 0, sw = 0;
- /*
- * I've made two optimizations here. The first does away with the
- * loop, and the second defers setting the child dimensions to the
- * clip if smaller until after adjusting for possible scrollbars.
- * If you find that these go too far, define the identifiers here
- * as required. -- djhjr
- */
-#define NEED_LAYOUT_LOOP
-#undef PREP_CHILD_TO_CLIP
-
if (child == (Widget) NULL) return;
XtVaGetValues(threeD, XtNshadowWidth, &sw, NULL);
- if (sw) pad = 2;
+ if (sw) pad = 2 * sw;
- clip_width = w->core.width - 2 * sw;
- clip_height = w->core.height - 2 * sw;
+ clip_width = w->core.width - pad;
+ clip_height = w->core.height - pad;
intended.request_mode = CWBorderWidth;
intended.border_width = 0;
@@ -536,10 +526,8 @@ ComputeLayout(Widget widget, Boolean que
&clip_width, &clip_height);
}
else {
-#ifdef NEED_LAYOUT_LOOP
Dimension prev_width, prev_height;
XtGeometryMask prev_mode;
-#endif
XtWidgetGeometry preferred;
needshoriz = needsvert = False;
@@ -553,31 +541,25 @@ ComputeLayout(Widget widget, Boolean que
if (!w->viewport.allowhoriz)
intended.request_mode |= CWWidth;
-#ifdef PREP_CHILD_TO_CLIP
- if ((int)child->core.width < clip_width)
- intended.width = clip_width;
+ if ((int)child->core.width < clip_width + pad)
+ intended.width = clip_width + pad;
else
-#endif
intended.width = child->core.width;
- if (!w->viewport.allowvert)
- intended.request_mode |= CWHeight;
-
-#ifdef PREP_CHILD_TO_CLIP
- if ((int)child->core.height < clip_height)
- intended.height = clip_height;
+ if ((int)child->core.height < clip_height + pad)
+ intended.height = clip_height + pad;
else
-#endif
intended.height = child->core.height;
+ if (!w->viewport.allowvert)
+ intended.request_mode |= CWHeight;
+
if (!query) {
preferred.width = child->core.width;
preferred.height = child->core.height;
}
-#ifdef NEED_LAYOUT_LOOP
do { /* while intended != prev */
-#endif
if (query) {
(void) XtQueryGeometry( child, &intended, &preferred );
if ( !(preferred.request_mode & CWWidth) )
@@ -585,12 +567,9 @@ ComputeLayout(Widget widget, Boolean que
if ( !(preferred.request_mode & CWHeight) )
preferred.height = intended.height;
}
-
-#ifdef NEED_LAYOUT_LOOP
prev_width = intended.width;
prev_height = intended.height;
prev_mode = intended.request_mode;
-#endif
/*
* Note that having once decided to turn on either bar
@@ -600,7 +579,7 @@ ComputeLayout(Widget widget, Boolean que
#define CheckHoriz() \
if (w->viewport.allowhoriz && \
- (int)preferred.width > clip_width + 2 * sw) { \
++ (int)preferred.width > clip_width + pad) { \
if (!needshoriz) { \
Widget horiz_bar = w->viewport.horiz_bar; \
needshoriz = True; \
@@ -615,7 +594,7 @@ ComputeLayout(Widget widget, Boolean que
/* enddef */
CheckHoriz();
if (w->viewport.allowvert &&
- (int)preferred.height > clip_height + 2 * sw) {
+ (int)preferred.height > clip_height + pad) {
if (!needsvert) {
Widget vert_bar = w->viewport.vert_bar;
needsvert = True;
@@ -629,38 +608,22 @@ ComputeLayout(Widget widget, Boolean que
intended.height = preferred.height;
}
-#ifdef PREP_CHILD_TO_CLIP
if (!w->viewport.allowhoriz ||
- (int)preferred.width < clip_width) {
- intended.width = clip_width;
+ (int)preferred.width < clip_width + pad) {
+ intended.width = clip_width + pad;
intended.request_mode |= CWWidth;
}
if (!w->viewport.allowvert ||
- (int)preferred.height < clip_height) {
- intended.height = clip_height;
+ (int)preferred.height < clip_height + pad) {
+ intended.height = clip_height + pad;
intended.request_mode |= CWHeight;
}
-#endif
-#ifdef NEED_LAYOUT_LOOP
+
} while ( intended.request_mode != prev_mode ||
(intended.request_mode & CWWidth &&
intended.width != prev_width) ||
(intended.request_mode & CWHeight &&
intended.height != prev_height) );
-#endif
-
-#ifndef PREP_CHILD_TO_CLIP
- if (!w->viewport.allowhoriz ||
- (int)preferred.width < clip_width) {
- intended.width = clip_width;
- intended.request_mode |= CWWidth;
- }
- if (!w->viewport.allowvert ||
- (int)preferred.height < clip_height) {
- intended.height = clip_height;
- intended.request_mode |= CWHeight;
- }
-#endif
}
bar_width = bar_height = 0;
@@ -705,7 +668,7 @@ ComputeLayout(Widget widget, Boolean que
else {
int bw = bar->core.border_width;
XtResizeWidget( bar,
- (Dimension)(clip_width + 2 * sw), bar->core.height,
+ (Dimension)(clip_width + pad), bar->core.height,
(Dimension)bw );
XtMoveWidget( bar,
(Position)((needsvert && !w->viewport.useright)
@@ -730,7 +693,7 @@ ComputeLayout(Widget widget, Boolean que
else {
int bw = bar->core.border_width;
XtResizeWidget( bar,
- bar->core.width, (Dimension)(clip_height + 2 * sw),
+ bar->core.width, (Dimension)(clip_height + pad),
(Dimension)bw );
XtMoveWidget( bar,
(Position)(w->viewport.useright
@@ -780,7 +743,7 @@ ComputeWithForceBars(Widget widget, Bool
*/
XtVaGetValues((Widget)(w->viewport.threeD), XtNshadowWidth, &sw, NULL);
- if (sw) pad = 2;
+ if (sw) pad = 2 * sw;
if (w->viewport.allowvert) {
if (w->viewport.vert_bar == NULL)
@@ -926,7 +889,7 @@ GeometryRequestPlusScrollbar(ViewportWid
Dimension pad = 0, sw = 0;
XtVaGetValues((Widget)(w->viewport.threeD), XtNshadowWidth, &sw, NULL);
- if (sw) pad = 2;
+ if (sw) pad = 2 * sw;
plusScrollbars = *request;
if ((bar = w->viewport.horiz_bar) == (Widget)NULL)
@@ -997,7 +960,7 @@ GeometryManager(Widget child, XtWidgetGe
return XtGeometryNo;
XtVaGetValues((Widget)(w->viewport.threeD), XtNshadowWidth, &sw, NULL);
- if (sw) pad = 2;
+ if (sw) pad = 2 * sw;
allowed = *request;

@ -0,0 +1,371 @@
Summary: A version of the MIT Athena widget set for X
Name: Xaw3d
Version: 1.6.2
Release: 14%{?dist}
Group: System Environment/Libraries
Source: http://xorg.freedesktop.org/archive/individual/lib/libXaw3d-%{version}.tar.bz2
Patch5: Xaw3d-1.5-debian-fixes.patch
Patch7: Xaw3d-1.6.1-3Dlabel.patch
Patch10: Xaw3d-1.6.1-fontset.patch
Patch11: Xaw3d-1.6.1-hsbar.patch
# src/laygram.{c,h} are licensed under GPLv3+
License: MIT and GPLv3+
URL: http://xorg.freedesktop.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libXmu-devel
BuildRequires: libXt-devel
BuildRequires: libSM-devel
BuildRequires: libXext-devel
BuildRequires: libX11-devel
BuildRequires: libXpm-devel
BuildRequires: xorg-x11-util-macros
BuildRequires: bison
BuildRequires: flex
BuildRequires: ed
%description
Xaw3d is an enhanced version of the MIT Athena Widget set for
the X Window System. Xaw3d adds a three-dimensional look to applications
with minimal or no source code changes.
You should install Xaw3d if you are using applications which incorporate
the MIT Athena widget set and you'd like to incorporate a 3D look into
those applications.
%package devel
Summary: Header files and libraries for development using Xaw3d
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: libXmu-devel
Requires: libXt-devel
Requires: libSM-devel
Requires: libXext-devel
Requires: libX11-devel
Requires: libXpm-devel
%description devel
Xaw3d is an enhanced version of the MIT Athena widget set for
the X Window System. Xaw3d adds a three-dimensional look to those
applications with minimal or no source code changes. Xaw3d-devel includes
the header files and libraries for developing programs that take full
advantage of Xaw3d's features.
You should install Xaw3d-devel if you are going to develop applications
using the Xaw3d widget set. You'll also need to install the Xaw3d
package.
%prep
%setup -q -n libXaw3d-%{version}
# This doesn't apply cleanly, but has not been applied
#%patch5 -p1 -b .debian
%patch7 -p1 -b .3Dlabel
%patch10 -p1 -b .fontset
%patch11 -p1 -b .hsbar
%build
%configure --disable-static \
--enable-arrow-scrollbars \
--enable-gray-stipples \
--enable-multiplane-bitmaps
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
rm $RPM_BUILD_ROOT%{_libdir}/libXaw3d.la
rm -r $RPM_BUILD_ROOT%{_docdir}
%clean
rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc ChangeLog COPYING README src/README.XAW3D
%{_libdir}/*.so.*
%files devel
%defattr(-,root,root)
%{_libdir}/*.so
%{_libdir}/pkgconfig/xaw3d.pc
%{_includedir}/X11/Xaw3d
%changelog
* Tue Jul 24 2018 Jiri Kucera <jkucera@redhat.com> - 1.6.2-14
- added GPLv3+ to License (src/laygram.{c,h} are licensed under GPLv3+)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Fri Jun 06 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.6.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed May 2 2012 Orion Poplawski <orion@cora.nwra.com> - 1.6.2-2
- Drop static from -devel summary/description (bug #817935)
* Tue Apr 3 2012 Orion Poplawski <orion@cora.nwra.com> - 1.6.2-1
- Update to 1.6.2
- Drop patches applied upstream
- Enable multiplane-bitmaps and gray-stipples
* Sat Feb 25 2012 Orion Poplawski <orion@cora.nwra.com> - 1.6.1-2
- Rebase compat patch
* Sat Feb 25 2012 Orion Poplawski <orion@cora.nwra.com> - 1.6.1-1
- Update to 1.6.1
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5E-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5E-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Dec 1 2010 Hans de Goede <hdegoede@redhat.com> - 1.5E-19
- Do not make missing font sets a fatal error (#658526)
* Tue Nov 9 2010 Hans de Goede <hdegoede@redhat.com> - 1.5E-18
- Drop Xaw3d-1.5E-lex.patch it was not applied for a reason (#587349)
* Mon Nov 8 2010 Hans de Goede <hdegoede@redhat.com> - 1.5E-17
- Also apply the Xaw3d-1.5E-secure, Xaw3d-1.5E-thumb and Xaw3d-1.5E-cast
(replacing xaw3d.patch) patches from http://gitorious.org/xaw3d (#587349)
- Apply accidentally not applied Xaw3d-1.5E-lex.patch
* Mon Nov 8 2010 Orion Poplawski <orion@cora.nwra.com> - 1.5E-16
- Add patches from http://gitorious.org/xaw3d
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5E-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Sun Mar 15 2009 Hans de Goede <hdegoede@redhat.com> 1.5E-14
- Fix a bunch of (potentially harmfull) compiler warnings
* Mon Feb 23 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5E-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Tue Oct 6 2008 Hans de Goede <hdegoede@redhat.com> 1.5E-12
- Remove obsolete PreReq and Prefix stuff from specfile
- Fix BuildRoot to match the guidelines
- Require base package by full EVR from devel package
- Drop non relevant Patches and Sources
- Rebase the still relevant patches
- Actually apply the still relevant patches
- Add a patch from Debian fixing an infinite loop (rh436998)
- Add patches from Debian fixes various potential bufferoverflows
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.5E-11.1
- Autorebuild for GCC 4.3
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1.5E-10.1
- rebuild
* Wed Jun 07 2006 Than Ngo <than@redhat.com> 1.5E-10
- BR on bison ed flex #194184
* Wed Jun 7 2006 Jeremy Katz <katzj@redhat.com> - 1.5E-9
- rebuild for -devel deps
* Tue Apr 25 2006 Adam Jackson <ajackson@redhat.com> 1.5E-8
- Rebuild for new imake build rules
* Tue Feb 28 2006 Than Ngo <than@redhat.com> 1.5E-7
- update Url #183314
* Mon Feb 13 2006 Jesse Keating <jkeating@redhat.com> - 1.5E-6.2.2
- rebump for build order issues during double-long bump
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.5E-6.2.1
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.5E-6.2
- rebuilt for new gcc4.1 snapshot and glibc changes
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt
* Wed Nov 16 2005 Than Ngo <than@redhat.com> 1.5E-6
- fix for modular X
* Tue Nov 05 2005 Warren Togami <wtogami@redhat.com> 1.5E-5
- req individual X dependencies
- remove X11R6 references
* Thu Mar 03 2005 Than Ngo <than@redhat.com> 1.5E-4
- rebuilt
* Thu Jan 20 2005 Than Ngo <than@redhat.com> 1.5E-3
- bump release
* Thu Jan 20 2005 Than Ngo <than@redhat.com> 1.5E-2
- enable ARROW_SCROLLBARS, MULTIPLANE_PIXMAPS
* Tue Nov 30 2004 Than Ngo <than@redhat.com> 1.5E-1
- update to 1.5E, #130310
- fix compiler warning #110766
* Tue Nov 23 2004 Than Ngo <than@redhat.com> 1.5-25
- rebuilt
* Tue Nov 23 2004 Than Ngo <than@redhat.com> 1.5-24
- add patch to fix build problem with xorg-x11, #140475
* Mon Jul 26 2004 Than Ngo <than@redhat.com> 1.5-23
- added requires on XFree86-devel
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Nov 26 2003 Than Ngo <than@redhat.com> 1.5-20
- added missing Buildprereq: XFree86-devel (bug #110601, #109692, #110735)
- fixed arguments in scrollbar (bug #110766)
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
- rebuilt
* Thu Nov 7 2002 han Ngo <than@redhat.com> 1.5-17
- fix some building problems
* Thu Sep 5 2002 Preston Brown <pbrown@redhat.com> 1.5-16
- -DARROW_SCROLLBAR for rms
* Thu Aug 8 2002 Than Ngo <than@redhat.com> 1.5-15
- Added patch file to fix i18n issue, ynakai@redhat.com
* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Tue Feb 26 2002 Than Ngo <than@redhat.com> 1.5-12
- rebuild in new enviroment
* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Sun Jun 24 2001 Elliot Lee <sopwith@redhat.com>
- Bump release + rebuild.
* Wed Feb 28 2001 Than Ngo <than@redhat.com>
- add requires Xaw3d = %%{version}
- add prereq /sbin/ldconfig
* Tue Oct 10 2000 Than Ngo <than@redhat.com>
- fix link which causes faulty update (Bug #17895)
* Mon Jul 24 2000 Bill Nottingham <notting@redhat.com>
- ia64 tweaks
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Mon Jul 10 2000 Bernhard Rosenkraenzer <bero@redhat.de>
- Restore Xaw3d 1.5 - the addition of the backward compatibility library
killed the current one.
- get rid of the CDEBUGFLAGS="" hack, the current gcc fixes it
* Mon Jul 03 2000 Than Ngo <than@redhat.de>
- fix Imakefile to static Xawd3d
* Sat Jun 17 2000 Than Ngo <than@redhat.de>
- add backward compatibility libXaw3d.so.6 (Bug# 12261)
* Mon May 15 2000 Bill Nottingham <notting@redhat.com>
- fix unaligned traps on ia64
* Mon May 8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 1.5
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
- auto rebuild in the new build environment (release 21)
* Wed Feb 24 1999 Preston Brown <pbrown@redhat.com>
- Injected new description and group.
* Fri Dec 18 1998 Preston Brown <pbrown@redhat.com>
- bumped spec number for initial rh 6.0 build
* Fri Nov 06 1998 Preston Brown <pbrown@redhat.com>
- added security/update patch from debian (the X11R6.3 patch). Thanks guys. :)
* Wed Oct 14 1998 Cristian Gafton <gafton@redhat.com>
- handle the symlink with triggers instead of getting rid of it
* Mon Oct 5 1998 Jeff Johnson <jbj@redhat.com>
- remove backward compatible symlink.
* Wed May 06 1998 Cristian Gafton <gafton@redhat.com>
- fixed the bad symlink
- BuildRoot
* Mon Apr 27 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr
* Tue Nov 04 1997 Erik Troan <ewt@redhat.com>
- don't lave an improper return code from %%pre
* Mon Nov 03 1997 Cristian Gafton <gafton@redhat.com>
- take care of the old location of the Xaw3d includes in case that one exist
- updated Prereq: field
* Mon Oct 26 1997 Cristian Gafton <gafton@redhat.com
- fixed the -devel package for the right include files path
* Mon Oct 13 1997 Donnie Barnes <djb@redhat.com>
- minor spec file cleanups
* Wed Oct 01 1997 Erik Troan <ewt@redhat.com>
- i18n widec.h patch needs to be applied on all systems
* Sun Sep 14 1997 Erik Troan <ewt@redhat.com>
- changed axp check to alpha
* Mon Jun 16 1997 Erik Troan <ewt@redhat.com>
- built against glibc
Loading…
Cancel
Save