Cleanup XEditRes hack

* configure.ac [USE_X_TOOLKIT]: Define X_TOOLKIT_EDITRES if
_XEditResCheckMessages is declared in X11/Xmu/Editres.h and may be
linked with -lXmu.  This should work with any non-ancient Xmu library.
* xfns.c (toplevel): Remove old cruft.
(x_window) [USE_X_TOOLKIT]: Use X_TOOLKIT_EDITRES.
* xterm.c (toplevel): Remove old cruft.
(handle_one_xevent): Use X_TOOLKIT_EDITRES.
* xterm.h (toplevel): Include X11/Xmu/Editres.h if X_TOOLKIT_EDITRES.
This commit is contained in:
Dmitry Antipov 2016-07-04 20:05:06 +03:00
parent f24fe30cb8
commit e3ae3c4488
4 changed files with 32 additions and 28 deletions

View file

@ -4287,23 +4287,32 @@ else
[Returns true if character is any form of separator.])
fi
AH_TEMPLATE(NO_EDITRES, [Define if XEditRes should not be used.])
case $opsys in
aix4-2)
dnl Unfortunately without libXmu we cannot support EditRes.
if test "x$ac_cv_search_XmuConvertStandardSelection" = xno; then
AC_DEFINE(NO_EDITRES, 1)
if test "$USE_X_TOOLKIT" != "none"; then
have_editres=yes
case $opsys in
hpux*)
dnl Assar Westerlund <assar@sics.se> says this is necessary
dnl for HP-UX 10.20, and that it works for HP-UX 0 as well.
have_editres=no
;;
esac
if test "$have_editres" != no && test ! -z "$LIBXMU"; then
OLDLIBS="$LIBS"
dnl See libXmu.a check above.
if test x$HAVE_X11XTR6 = xyes; then
LIBS="-lXt -lSM -lICE $LIBXMU"
else
OTHERLIBS="-lXt -$LIBXMU"
fi
;;
hpux*)
dnl Assar Westerlund <assar@sics.se> says this is necessary for
dnl HP-UX 10.20, and that it works for HP-UX 0 as well.
AC_DEFINE(NO_EDITRES, 1)
;;
esac
AC_TRY_LINK(
[#include <X11/Intrinsic.h>
#include <X11/Xmu/Editres.h>],
[_XEditResCheckMessages (0, 0, 0, 0);],
[AC_DEFINE([X_TOOLKIT_EDITRES], 1,
[Define to 1 if we should use XEditRes.])])
LIBS=$OLDLIBS
fi
fi
case $opsys in
sol2* | unixware )

View file

@ -91,11 +91,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "../lwlib/xlwmenu.h"
#endif
#if !defined (NO_EDITRES)
#define HACK_EDITRES
extern void _XEditResCheckMessages (Widget, XtPointer, XEvent *, Boolean *);
#endif /* not defined NO_EDITRES */
/* Unique id counter for widgets created by the Lucid Widget Library. */
extern LWLIB_ID widget_id_tick;
@ -2662,7 +2657,7 @@ x_window (struct frame *f, long window_prompting)
hack_wm_protocols (f, shell_widget);
#ifdef HACK_EDITRES
#ifdef X_TOOLKIT_EDITRES
XtAddEventHandler (shell_widget, 0, True, _XEditResCheckMessages, 0);
#endif

View file

@ -95,10 +95,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#endif
#ifdef USE_X_TOOLKIT
#if !defined (NO_EDITRES)
#define HACK_EDITRES
extern void _XEditResCheckMessages (Widget, XtPointer, XEvent *, Boolean *);
#endif /* not NO_EDITRES */
/* Include toolkit specific headers for the scroll bar widget. */
@ -7610,7 +7606,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
goto done;
}
#ifdef HACK_EDITRES
#ifdef X_TOOLKIT_EDITRES
if (event->xclient.message_type == dpyinfo->Xatom_editres)
{
f = any;
@ -7619,7 +7615,7 @@ handle_one_xevent (struct x_display_info *dpyinfo,
NULL, (XEvent *) event, NULL);
goto done;
}
#endif /* HACK_EDITRES */
#endif /* X_TOOLKIT_EDITRES */
if (event->xclient.message_type == dpyinfo->Xatom_DONE
|| event->xclient.message_type == dpyinfo->Xatom_PAGE)

View file

@ -38,6 +38,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <X11/CoreP.h> /* foul, but we need this to use our own
window inside a widget instead of one
that Xt creates... */
#ifdef X_TOOLKIT_EDITRES
#include <X11/Xmu/Editres.h>
#endif
typedef Widget xt_or_gtk_widget;
#endif