File xemacs-21.5.34-Xaw3D_I18N.patch of Package xemacs

---
 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
openSUSE Build Service is sponsored by