SHA256
1
0
forked from pool/xemacs
xemacs/xemacs-21.5.34-Xaw3D_I18N.patch
2015-05-12 16:21:33 +00:00

168 lines
5.4 KiB
Diff

---
configure | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
configure.ac | 33 ++++++++++++++++++++++++++++++++-
lwlib/ChangeLog | 8 ++++++++
lwlib/xt-wrappers.h | 5 +++++
src/config.h.in | 1 +
5 files changed, 96 insertions(+), 2 deletions(-)
--- configure
+++ configure 2015-05-12 00:00:00.000000000 +0000
@@ -16754,6 +16754,52 @@ fi
if test -n "$athena_lib" -a -n "$athena_h_path"; then
have_xaw=yes
+ have_athena_i18n=unset
+ if test "$athena_variant" = "Xaw3d"; then
+ save_libs_x=$libs_x
+ libs_x="-lXaw3d $libs_x" && if test "$verbose" = "yes"; then echo " Prepending \"-lXaw3d\" to \$libs_x"; fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"international\" resource in Xaw3d SimpleWidget" >&5
+$as_echo_n "checking for \"international\" resource in Xaw3d SimpleWidget... " >&6; }
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #include <string.h>
+ #undef XAW_INTERNATIONALIZATION
+ #include <$athena_h_path/Simple.h>
+
+int
+main ()
+{
+int i = simpleWidgetClass->core_class.num_resources;
+ while (i-- > 0)
+ if (!strcmp(simpleWidgetClass->core_class.resources[i].resource_name,
+ "international"))
+ exit(0);
+ exit(253);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ have_athena_i18n=yes
+else
+ have_athena_i18n=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ libs_x=$save_libs_x
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_athena_i18n" >&5
+$as_echo "$have_athena_i18n" >&6; }
+ fi
else
have_xaw=no
fi
@@ -16958,10 +17004,13 @@ _ACEOF
$as_echo "#define NEED_ATHENA 1" >>confdefs.h
need_athena="yes"
-
if test "$athena_3d" = "yes"; then
$as_echo "#define HAVE_ATHENA_3D 1" >>confdefs.h
+ if test "$have_athena_i18n" = "yes"; then
+ $as_echo "#define HAVE_ATHENA_I18N 1" >>confdefs.h
+
+ fi
fi
;;
esac
--- configure.ac
+++ configure.ac 2015-05-12 00:00:00.000000000 +0000
@@ -4028,6 +4028,35 @@ if test "$with_x11" = "yes" -a "$detect_
dnl Do we actually have a usable Athena widget set? Please?
if test -n "$athena_lib" -a -n "$athena_h_path"; then
have_xaw=yes
+ have_athena_i18n=unset
+ dnl X.org at some point added .international to SimplePart, protected
+ dnl by #ifdef XAW_INTERNATIONALIZATION in Xaw3d (only?). Unfortunately,
+ dnl the distributed headers for Xaw3d don't set this to correspond to
+ dnl the distributed library. (pkg-config does, if present.)
+ if test "$athena_variant" = "Xaw3d"; then
+ save_libs_x=$libs_x
+ XE_PREPEND(-lXaw3d, libs_x)
+ dnl The test below was provided by Ralf Soergel.
+ AC_MSG_CHECKING([for "international" resource in Xaw3d SimpleWidget])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [#include <stdlib.h>
+ #include <string.h>
+ #undef XAW_INTERNATIONALIZATION
+ #include <$athena_h_path/Simple.h>
+ ],
+ [[int i = simpleWidgetClass->core_class.num_resources;
+ while (i-- > 0)
+ if (!strcmp(simpleWidgetClass->core_class.resources[i].resource_name,
+ "international"))
+ exit(0);
+ exit(253);
+ ]])],
+ [have_athena_i18n=yes],
+ [have_athena_i18n=no])
+ libs_x=$save_libs_x
+ AC_MSG_RESULT([$have_athena_i18n])
+ fi
else
have_xaw=no
fi
@@ -4160,9 +4189,11 @@ case "$all_widgets" in
AC_DEFINE(LWLIB_USES_ATHENA)
AC_DEFINE(NEED_ATHENA)
need_athena="yes"
-
if test "$athena_3d" = "yes"; then
AC_DEFINE(HAVE_ATHENA_3D)
+ if test "$have_athena_i18n" = "yes"; then
+ AC_DEFINE(HAVE_ATHENA_I18N)
+ fi
fi
;;
esac
--- lwlib/ChangeLog
+++ lwlib/ChangeLog 2015-05-12 00:00:00.000000000 +0000
@@ -1,3 +1,11 @@
+2015-01-08 Stephen J. Turnbull <stephen@xemacs.org>
+
+ Fix progress bar crashes.
+ Thanks to Ralf Soergel for diagnosis and a patch.
+
+ * xt-wrappers.h (HAVE_ATHENA_I18N):
+ Define XAW_INTERNATIONALIZATION when needed.
+
2013-06-23 Stephen J. Turnbull <stephen@xemacs.org>
* XEmacs 21.5.34 "kale" is released.
--- lwlib/xt-wrappers.h
+++ lwlib/xt-wrappers.h 2015-05-12 00:00:00.000000000 +0000
@@ -21,6 +21,11 @@ along with XEmacs. If not, see <http://
/* Original author: Stephen J. Turnbull for 21.5.29 */
+/* #### Factor out into xaw-wrappers (which would #include this file)? */
+#ifdef HAVE_ATHENA_I18N
+#define XAW_INTERNATIONALIZATION 1
+#endif
+
/* Generic utility macros, including coping with G++ whining.
Used in lwlib via lwlib.h and X consoles via console-x.h.
--- src/config.h.in
+++ src/config.h.in 2015-05-12 00:00:00.000000000 +0000
@@ -860,6 +860,7 @@ things are arranged in config.h.in. In
#undef LWLIB_WIDGETS_MOTIF
#undef LWLIB_WIDGETS_ATHENA
#undef HAVE_ATHENA_3D
+#undef HAVE_ATHENA_I18N
/* Other things that can be disabled by configure. */
#undef HAVE_MENUBARS