>>>> "PK" == Paul Keusemann
<pkeusem(a)visi.com> writes:
PK> XEmacs fails to link on Solaris 2.5 with the following error:
PK> Undefined first referenced
PK> symbol in file
PK> XConvertCase event-Xt.o
PK> ld: fatal: Symbol referencing errors. No output written to temacs
PK> XConvertCase is not *exported* from the Solaris 2.5 libX11. It appears
PK> statically defined. It is exported from the Solaris 2.6 and 7 libX11.
Could you test this patch:
(you'll need to run autoconf, and rerun configure)
2000-02-07 Martin Buchholz <martin(a)xemacs.org>
* configure.in: check for XConvertCase.
2000-02-07 Martin Buchholz <martin(a)xemacs.org>
* event-Xt.c (x_has_keysym): Use XConvertCase only if available.
* config.h.in: Add HAVE_XCONVERT_CASE.
Index: configure.in
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/configure.in,v
retrieving revision 1.111.2.75
diff -u -r1.111.2.75 configure.in
--- configure.in 2000/02/07 08:21:27 1.111.2.75
+++ configure.in 2000/02/07 20:45:56
@@ -2511,6 +2511,8 @@
AC_MSG_RESULT(R${x11_release})
AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
+ AC_CHECK_FUNCS(XConvertCase)
+
AC_CHECK_HEADERS(X11/Xlocale.h)
dnl remove this - we should avoid checking for specific OS
Index: src/config.h.in
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/config.h.in,v
retrieving revision 1.49.2.20
diff -u -r1.49.2.20 config.h.in
--- config.h.in 2000/01/30 12:40:04 1.49.2.20
+++ config.h.in 2000/02/07 20:45:58
@@ -164,6 +164,8 @@
#undef THIS_IS_X11R5
#undef THIS_IS_X11R6
+#undef HAVE_XCONVERTCASE
+
/* Where do we find bitmaps? */
#undef BITMAPDIR
Index: src/event-Xt.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/event-Xt.c,v
retrieving revision 1.41.2.19
diff -u -r1.41.2.19 event-Xt.c
--- event-Xt.c 2000/02/07 07:59:44 1.41.2.19
+++ event-Xt.c 2000/02/07 20:46:05
@@ -336,11 +336,17 @@
if (keysym < 0x80) /* Optimize for ASCII keysyms */
return;
- /* If you do: xmodmap -e 'keysym NN = scaron'
+
+ /* If you execute:
+ xmodmap -e 'keysym NN = scaron'
and then press (Shift scaron), X11 will return the different
- keysym Scaron, but xmodmap -pke might not even mention Scaron.
- So we `register' both scaron and Scaron. */
+ keysym `Scaron', but `xmodmap -pke' might not even mention `Scaron'.
+ So we "register" both `scaron' and `Scaron'. */
+#ifdef HAVE_XCONVERTCASE
XConvertCase (keysym, &upper_lower[0], &upper_lower[1]);
+#else
+ upper_lower[0] = upper_lower[1] = keysym;
+#endif
for (j = 0; j < (upper_lower[0] == upper_lower[1] ? 1 : 2); j++)
{