diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2016-07-04 20:05:06 +0300 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2016-07-04 20:05:06 +0300 |
commit | e3ae3c44882085bf52f6bb8b02e98eb7d0b1f81b (patch) | |
tree | 46db3a2184d01c10f1d48984d813e847af353814 | |
parent | f24fe30cb8118f8e15688eaf61a6fefde87f597e (diff) | |
download | emacs-e3ae3c44882085bf52f6bb8b02e98eb7d0b1f81b.tar.gz |
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.
-rw-r--r-- | configure.ac | 41 | ||||
-rw-r--r-- | src/xfns.c | 7 | ||||
-rw-r--r-- | src/xterm.c | 8 | ||||
-rw-r--r-- | src/xterm.h | 4 |
4 files changed, 32 insertions, 28 deletions
diff --git a/configure.ac b/configure.ac index 2674806cadc..aaddfcd7386 100644 --- a/configure.ac +++ b/configure.ac @@ -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) - 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) +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 - + 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 + 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 ) diff --git a/src/xfns.c b/src/xfns.c index 265eb6c65ac..798dc49bef5 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -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 diff --git a/src/xterm.c b/src/xterm.c index 76b92dfb839..cd1d712f39a 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -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) diff --git a/src/xterm.h b/src/xterm.h index 8e1fc788bc1..675a48443dc 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -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 |