XEmacs (Motif) crashes attempting to traverse a nonexistent button if
you invoke compile from the toolbar.
The following patch fixes for the OP, reviews from Motifly aware
people and tests would be appreciated (try to duplicate the crash,
just press toolbar compile button on Linux/Motif, possibly other
Motif, then see if the patch fixes it).
Index: lwlib/ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lwlib/ChangeLog,v
retrieving revision 1.23.2.10.2.1
diff -u -U0 -r1.23.2.10.2.1 ChangeLog
--- lwlib/ChangeLog 2002/02/04 11:42:35 1.23.2.10.2.1
+++ lwlib/ChangeLog 2002/02/12 15:44:05
@@ -0,0 +1,4 @@
+2002-02-13 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * lwlib-Xm.c (make_dialog): Fix XmProcessTraversal crash.
+
Index: lwlib/lwlib-Xm.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lwlib/lwlib-Xm.c,v
retrieving revision 1.13.2.1
diff -u -r1.13.2.1 lwlib-Xm.c
--- lwlib/lwlib-Xm.c 2001/10/23 08:35:22 1.13.2.1
+++ lwlib/lwlib-Xm.c 2002/02/12 15:44:11
@@ -1298,6 +1298,7 @@
list activate the default button */
XtAddCallback (value, XmNdefaultActionCallback, activate_button, button);
}
+ /* else add nothing; it's a separator */
ac = 0;
XtSetArg(al[ac], XmNalignment, XmALIGNMENT_BEGINNING); ac++;
@@ -1335,11 +1336,12 @@
XtInstallAccelerators (value, button);
XmProcessTraversal(value, XmTRAVERSE_CURRENT);
}
- else
+ else if (radio_box)
{
XtInstallAccelerators (form, button);
XmProcessTraversal(value, XmTRAVERSE_CURRENT);
}
+ /* else we don' need no STEENKIN' assellerators. */
#ifdef DND_KLUDGE
XtFree ((char *) dnd_override);
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Don't ask how you can "do" free software business;
ask what your business can "do for" free software.