changeset 4769:5460287a3327

Remove support for pre-X11R5 systems, including systems without Xmu. See <870180fe0912091102j6fde7336hdc187608be0ef97@mail.gmail.com> in xemacs-patches.
author Jerry James <james@xemacs.org>
date Thu, 10 Dec 2009 12:42:09 -0700
parents 0f5bee973a7b
children b9aaf2a18957
files ChangeLog INSTALL configure configure.ac lwlib/ChangeLog lwlib/lwlib-Xlw.c lwlib/xlwcheckbox.c lwlib/xlwgauge.c lwlib/xlwgcs.c lwlib/xlwgcs.h lwlib/xlwradio.c lwlib/xlwtabs.c man/ChangeLog man/internals/internals.texi nt/ChangeLog nt/xemacs.dsp src/ChangeLog src/EmacsFrame.c src/config.h.in src/depend src/device-x.c src/frame-x.c src/glyphs-x.c src/s/windowsnt.h src/xmu.c src/xmu.h
diffstat 26 files changed, 83 insertions(+), 560 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Dec 09 09:50:36 2009 -0700
+++ b/ChangeLog	Thu Dec 10 12:42:09 2009 -0700
@@ -1,3 +1,11 @@
+2009-12-09  Jerry James  <james@xemacs.org>
+
+	* INSTALL: Remove description of --without-xmu option.
+	* configure.ac: Remove --with[out]-xmu option.  Issue informative
+	error message if libXmu cannot be found.  Change all Xmu-related
+	tests to assume Xmu is present.
+	* configure: Regenerate.
+
 2009-12-01  Mike Alexander  <mta@umich.edu>
 
 	* configure.ac: Make --with-database={dbm|gdbm} work again, it's
--- a/INSTALL	Wed Dec 09 09:50:36 2009 -0700
+++ b/INSTALL	Thu Dec 10 12:42:09 2009 -0700
@@ -291,9 +291,6 @@
 you omit this option, `configure' will try to autodetect whether your
 system has X Window System support, and arrange to use it if present.
 
-The `--without-xmu' option can be used if your vendor doesn't ship
-the Xmu library.
-
 The `--with-menubars=TYPE' option allows you to specify which X
 toolkit you wish to use for the menubar.  The valid options are
 `lucid', `motif' and `no'.  The default is `lucid' which is a
--- a/configure	Wed Dec 09 09:50:36 2009 -0700
+++ b/configure	Thu Dec 10 12:42:09 2009 -0700
@@ -956,8 +956,6 @@
 with_cde
 enable_offix
 with_offix
-enable_xmu
-with_xmu
 enable_external_widget
 with_external_widget
 enable_tty
@@ -1862,7 +1860,6 @@
                           able to use multiple X displays success- fully. If
                           the two servers are from different vendors, the
                           results may be unpredictable.
-  --with-xmu              Use Xmu utilities. Default: yes.
   --with-external-widget
                           Support XEmacs server for text widgets in other
                           applications.
@@ -3558,22 +3555,6 @@
   withval="$with_offix"
 
 fi;
-# If --with-xmu or --without-xmu were given then copy the value to the
-# equivalent enable_xmu variable.
-if test "${with_xmu+set}" = set; then
-  enable_xmu="$with_xmu"
-fi;
-# If -enable-xmu or --disable-xmu were given then copy the value to the
-# equivalent with_xmu variable.
-if test "${enable_xmu+set}" = set; then
-  with_xmu="$enable_xmu"
-fi;
-# Check whether --with-xmu or --without-xmu was given.
-if test "${with_xmu+set}" = set; then
-  enableval="$with_xmu"
-  withval="$with_xmu"
-
-fi;
 # If --with-external-widget or --without-external-widget were given then copy the value to the
 # equivalent enable_external-widget variable.
 if test "${with_external_widget+set}" = set; then
@@ -19962,7 +19943,7 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-    test -z "$with_xmu" && { { $as_echo "$as_me:$LINENO: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+    { $as_echo "$as_me:$LINENO: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
 $as_echo_n "checking for XmuReadBitmapDataFromFile in -lXmu... " >&6; }
 if test "${ac_cv_lib_Xmu_XmuReadBitmapDataFromFile+set}" = set; then
   $as_echo_n "(cached) " >&6
@@ -20032,17 +20013,17 @@
 else
   with_xmu=no
 fi
- }
+
   if test "$with_xmu" = "no"; then
-    extra_objs="$extra_objs xmu.o" &&  if test "$verbose" = "yes"; then
-   echo "    xemacs will be linked with \"xmu.o\""
- fi
+    { { $as_echo "$as_me:$LINENO: error: We're sorry, but we thought there were no systems without Xmu by now.
+You cannot build this version of XEmacs for X11 without Xmu.  Please report
+this to xemacs-beta@xemacs.org.  As a workaround, revert to XEmacs 21.5.29." >&5
+$as_echo "$as_me: error: We're sorry, but we thought there were no systems without Xmu by now.
+You cannot build this version of XEmacs for X11 without Xmu.  Please report
+this to xemacs-beta@xemacs.org.  As a workaround, revert to XEmacs 21.5.29." >&2;}
+   { (exit 1); exit 1; }; }
   else
     libs_x="-lXmu $libs_x" &&  if test "$verbose" = "yes"; then echo "    Prepending \"-lXmu\" to \$libs_x"; fi
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_XMU 1
-_ACEOF
-
   fi
 
       { $as_echo "$as_me:$LINENO: checking for main in -lXbsd" >&5
@@ -21072,7 +21053,7 @@
 fi
 
 if test "$with_x11" != "yes"; then
-            for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim with_xmu enable_sound_nas
+            for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim enable_sound_nas
   do
     if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then
        { $as_echo "$as_me:$LINENO: WARNING: --$feature ignored:  Not valid without X support" >&5
@@ -23404,13 +23385,6 @@
 fi
 
 test "$window_system" != "x11" && with_offix=no
-if test "$with_xmu" != yes -a "$with_x11" = yes; then
-  if test "$with_offix" = "yes" ; then
-    { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; no real Xmu support" >&5
-$as_echo "$as_me: WARNING: --with-offix forced to \`no'; no real Xmu support" >&2;}
-  fi
-  with_offix=no
-fi
 if test "$with_dragndrop" = no; then
   if test "$with_offix" = "yes" ; then
     { $as_echo "$as_me:$LINENO: WARNING: --with-offix forced to \`no'; no generic Drag'n'Drop support" >&5
@@ -41115,9 +41089,6 @@
   if test "$with_xauth" != yes; then
     echo "    - Xau (X authority) not available."
   fi
-  if test "$with_xmu" != yes; then
-    echo "    - Xmu library not available; substituting equivalent routines."
-  fi
   if test "$with_wmcommand" != no; then
     echo "    - Handling WM_COMMAND properly."
   fi
@@ -42039,8 +42010,7 @@
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='
-'
+ac_cr='
'
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
   ac_cs_awk_cr='\\r'
--- a/configure.ac	Wed Dec 09 09:50:36 2009 -0700
+++ b/configure.ac	Thu Dec 10 12:42:09 2009 -0700
@@ -757,9 +757,6 @@
                                    different vendors, the results may be
                                    unpredictable.]),
 	[], [])
-XE_MERGED_ARG([xmu],
-	AS_HELP_STRING([--with-xmu],[Use Xmu utilities. Default: yes.]),
-	[], [])
 XE_MERGED_ARG([external-widget],
 	AS_HELP_STRING([--enable-external-widget],[Support XEmacs server for text widgets in other applications.]),
 	[], [])
@@ -3090,13 +3087,13 @@
    AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
 
   dnl autodetect -lXmu
-  test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
-                           with_xmu=yes, with_xmu=no) }
+  AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile, with_xmu=yes, with_xmu=no)
   if test "$with_xmu" = "no"; then
-    XE_ADD_OBJS(xmu.o)
+    AC_MSG_ERROR([We're sorry, but we thought there were no systems without Xmu by now.
+You cannot build this version of XEmacs for X11 without Xmu.  Please report
+this to xemacs-beta@xemacs.org.  As a workaround, revert to XEmacs 21.5.29.])
   else
     XE_PREPEND(-lXmu, libs_x)
-    AC_DEFINE(HAVE_XMU)
   fi
 
   dnl Autodetect -lXbsd
@@ -3255,7 +3252,7 @@
   dnl if test "$with_tty" = "no" ; then
   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
   dnl fi
-  for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim with_xmu enable_sound_nas
+  for feature in with_tooltalk with_cde with_offix with_wmcommand with_xim enable_sound_nas
   do
     if eval "test -n \"\$${feature}\" -a \"\$${feature}\" != \"no\"" ; then
        AC_MSG_WARN([--$feature ignored:  Not valid without X support])
@@ -3492,17 +3489,10 @@
 fi
 
 dnl Always compile OffiX unless --without-offix is given, no
-dnl X11 support is compiled in, no standard Xmu is available,
-dnl or dragndrop support is disabled
+dnl X11 support is compiled in, or dragndrop support is disabled
 dnl Because OffiX support currently loses when more than one display
 dnl is in use, we now disable it by default -slb 07/10/1998.
 test "$window_system" != "x11" && with_offix=no
-if test "$with_xmu" != yes -a "$with_x11" = yes; then
-  if test "$with_offix" = "yes" ; then
-    AC_MSG_WARN([--with-offix forced to `no'; no real Xmu support])
-  fi
-  with_offix=no
-fi
 if test "$with_dragndrop" = no; then
   if test "$with_offix" = "yes" ; then
     AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support])
@@ -5635,9 +5625,6 @@
   if test "$with_xauth" != yes; then
     echo "    - Xau (X authority) not available."
   fi
-  if test "$with_xmu" != yes; then
-    echo "    - Xmu library not available; substituting equivalent routines."
-  fi
   if test "$with_wmcommand" != no; then
     echo "    - Handling WM_COMMAND properly."
   fi
--- a/lwlib/ChangeLog	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/ChangeLog	Thu Dec 10 12:42:09 2009 -0700
@@ -1,3 +1,13 @@
+2009-12-09  Jerry James  <james@xemacs.org>
+
+	* lwlib-Xlw.c: Include needed Xmu headers instead of obsolete xmu.h.
+	* xlwcheckbox.c: Ditto.
+	* xlwradio.c: Ditto.
+	* xlwgauge.c: Ditto.  Unconditionally include HAVE_XMU code.
+	* xlwtabs.c: Ditto.
+	* xlwgcs.c: Ditto.  Remove pre-X11R5 code.
+	* xlwgcs.h: Remove pre-X11R5 declarations.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* lwlib.c: Drop workaround for old NeXT systems.
--- a/lwlib/lwlib-Xlw.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/lwlib-Xlw.c	Thu Dec 10 12:42:09 2009 -0700
@@ -30,6 +30,7 @@
 #include <X11/ObjectP.h>
 #include <X11/CompositeP.h>
 #include <X11/Shell.h>
+#include <X11/Xmu/Converters.h>
 #ifdef HAVE_X_WIDGETS
 #include "../src/EmacsManager.h"
 #endif
@@ -46,7 +47,6 @@
 #ifdef NEED_ATHENA
 #include "lwlib-Xaw.h"
 #endif
-#include "../src/xmu.h"
 #include "xlwtabs.h"
 #endif
 
--- a/lwlib/xlwcheckbox.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwcheckbox.c	Thu Dec 10 12:42:09 2009 -0700
@@ -39,7 +39,6 @@
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
 #include ATHENA_XawInit_h_
-#include "../src/xmu.h"
 #include "xt-wrappers.h"
 #include "xlwcheckboxP.h"
 
--- a/lwlib/xlwgauge.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwgauge.c	Thu Dec 10 12:42:09 2009 -0700
@@ -55,12 +55,10 @@
 #include ATHENA_XawInit_h_
 #include "xt-wrappers.h"
 #include "xlwgaugeP.h"
-#include "../src/xmu.h"
-#ifdef HAVE_XMU
 #include <X11/Xmu/Atoms.h>
 #include <X11/Xmu/Drawing.h>
+#include <X11/Xmu/Misc.h>
 #include <X11/Xmu/StdSel.h>
-#endif
 
 
 /****************************************************************
@@ -226,10 +224,8 @@
 GaugeClassInit (void)
 {
     XawInitializeWidgetSet();
-#ifdef HAVE_XMU
     XtAddConverter(XtRString, XtROrientation, XmuCvtStringToOrientation,
-    		NULL, 0) ;
-#endif
+		   NULL, 0) ;
 }
 
 
@@ -640,7 +636,6 @@
 	    XGetAtomName(XtDisplay(w),*selection),
 	    XGetAtomName(XtDisplay(w),*target));
 
-#ifdef HAVE_XMU
 	if( *target == XA_TARGETS(XtDisplay(w)) )
 	{
 	  XPointer stdTargets;
@@ -669,9 +664,7 @@
 	  return True ;
 	}
 
-	else
-#endif
-	  if( *target == XA_INTEGER )
+	else if( *target == XA_INTEGER )
 	{
 	  *type = XA_INTEGER ;
 	  *length = 1 ;
@@ -680,12 +673,7 @@
 	  return True ;
 	}
 
-	else if( *target == XA_STRING
-#ifdef HAVE_XMU
-		 ||
-		 *target == XA_TEXT(XtDisplay(w))
-#endif
-		 )
+	else if( *target == XA_STRING || *target == XA_TEXT(XtDisplay(w)) )
 	{
 	  *type = *target ;
 	  *length = strlen(gw->gauge.selstr)*sizeof(char) ;
@@ -697,17 +685,14 @@
 	else
 	{
 	  /* anything else, we just give it to XmuConvertStandardSelection() */
-#ifdef HAVE_XMU
 	  req = XtGetSelectionRequest(w, *selection, NULL) ;
 	  if( XmuConvertStandardSelection(w, req->time, selection, target,
-	  	type, (XPointer *) value, length, format) )
+		type, (XPointer *) value, length, format) )
 	    return True ;
-	  else
-#endif
-	    {
+	  else {
 	    printf(
 		"Gauge: requestor is requesting unsupported selection %s:%s\n",
-	    	XGetAtomName(XtDisplay(w),*selection),
+		XGetAtomName(XtDisplay(w),*selection),
 		XGetAtomName(XtDisplay(w),*target));
 	    return False ;
 	  }
@@ -782,13 +767,7 @@
 	  XawGaugeSetValue(w, *iptr) ;
 	}
 
-	else if( *type == XA_STRING
-#ifdef HAVE_XMU
-		 ||
-		 *type == XA_TEXT(dpy)
-#endif
-		 )
-	  {
+	else if( *type == XA_STRING || *type == XA_TEXT(dpy) ) {
 	  cptr = (char *)value ;
 	  XawGaugeSetValue(w, atoi(cptr)) ;
 	}
--- a/lwlib/xlwgcs.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwgcs.c	Thu Dec 10 12:42:09 2009 -0700
@@ -113,7 +113,8 @@
 #include	<X11/Xlib.h>
 #include	<X11/IntrinsicP.h>
 #include	<X11/StringDefs.h>
-#include	"../src/xmu.h"
+#include	<X11/Xmu/Drawing.h>
+#include	<X11/Xmu/Misc.h>
 #include	"xlwgcs.h"
 
 	/* Color & GC allocation.
@@ -167,14 +168,6 @@
 
 
 
-#if	XtSpecificationRelease	< 5
-
-static	GC	XtAllocateGC(Widget, int, unsigned long, XGCValues *,
-			     unsigned long, unsigned long) ;
-
-#endif
-
-
 #if	NeedFunctionPrototypes
 static	Pixmap	getDitherPixmap(Widget, int contrast) ;
 #else
@@ -231,13 +224,7 @@
 
 GC
 AllocShadeGC(Widget w, Pixel fg, Pixel bg, Font font,
-	     int contrast,
-#ifdef HAVE_XMU
-	     Bool be_nice_to_cmap
-#else
-	     Bool UNUSED (be_nice_to_cmap)
-#endif
-	     )
+	     int contrast, Bool be_nice_to_cmap)
 {
 	XGCValues	values ;
 	unsigned long	vmask, dcmask ;
@@ -255,7 +242,6 @@
 	  dcmask = GCFont|GCSubwindowMode|GCDashOffset|
 		GCDashList|GCArcMode|GCGraphicsExposures ;
 	}
-#ifdef HAVE_XMU
 	if( be_nice_to_cmap || w->core.depth == 1)
 	{
 	  if( contrast <= 5 )
@@ -269,10 +255,7 @@
 	  }
 
 	  return XtAllocateGC(w, w->core.depth, vmask, &values, 0L, dcmask) ;
-	}
-	else
-#endif
-	{
+	} else {
 	  dcmask |= GCBackground ;
 	  values.foreground = AllocGreyPixel(w, fg, bg, contrast) ;
 	  return XtAllocateGC(w, w->core.depth, vmask, &values, 0L, dcmask) ;
@@ -324,13 +307,7 @@
 	/* return arm-shadow gc. */
 
 GC
-AllocArmGC(Widget w, int contrast,
-#ifdef HAVE_XMU
-	   Bool be_nice_to_cmap
-#else
-	   Bool UNUSED (be_nice_to_cmap)
-#endif
-	   )
+AllocArmGC(Widget w, int contrast, Bool be_nice_to_cmap)
 {
 	Screen		*scr = XtScreen (w);
 	XGCValues	values ;
@@ -338,7 +315,6 @@
 	/* Not clear exactly what we should do here.  Take a look at
 	 * Xaw3d to see what they do.
 	 */
-#ifdef HAVE_XMU
 	if( w->core.depth == 1 || be_nice_to_cmap )
 	{
 	  values.background = w->core.background_pixel ;
@@ -354,10 +330,7 @@
 	      &values, 0L,
 	      GCFont|GCSubwindowMode|GCGraphicsExposures|
 		  GCDashOffset|GCDashList|GCArcMode) ;
-	}
-	else
-#endif
-	  {
+	} else {
 	  values.foreground = AllocShadowPixel(w, 100-contrast) ;
 	  return XtAllocateGC(w, w->core.depth,
 	      GCForeground, &values,
@@ -523,18 +496,6 @@
 	}
 }
 
-#if XtSpecificationRelease < 5
-
-static	GC
-XtAllocateGC(Widget w, int UNUSED (depth), unsigned long mask,
-	     XGCValues *values, unsigned long UNUSED (dynamic),
-	     unsigned long UNUSED (dontcare))
-{
-	return XtGetGC(w, mask, values) ;
-}
-#endif
-
-
 static	unsigned char screen0[2] = {0,0} ;
 static	unsigned char screen25[2] = {0,0xaa} ;
 static	unsigned char screen75[2] = {0xaa,0xff} ;
--- a/lwlib/xlwgcs.h	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwgcs.h	Thu Dec 10 12:42:09 2009 -0700
@@ -116,12 +116,6 @@
 extern	void	Draw3dBox(Widget w, int  x, int y, int wid, int hgt, int s,
 			GC topgc, GC botgc) ;
 
-#if XtSpecificationRelease < 5
-extern	GC	XtAllocateGC(Widget, int depth, unsigned long mask,
-			     XGCValues *,
-			     unsigned long dynamic, unsigned long dontcare) ;
-#endif
-
 #else
 
 extern	GC	AllocFgGC() ;
@@ -136,10 +130,6 @@
 extern	Pixel	AllocGreyPixelC() ;
 extern	void	Draw3dBox() ;
 
-#if XtSpecificationRelease < 5
-extern	GC	XtAllocateGC() ;
-#endif
-
 #endif
 
 #endif	/* GCS_H */
--- a/lwlib/xlwradio.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwradio.c	Thu Dec 10 12:42:09 2009 -0700
@@ -53,8 +53,8 @@
 
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
+#include <X11/Xmu/Misc.h>
 #include ATHENA_XawInit_h_
-#include "../src/xmu.h"
 #include "xt-wrappers.h"
 #include "xlwradioP.h"
 
--- a/lwlib/xlwtabs.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/lwlib/xlwtabs.c	Thu Dec 10 12:42:09 2009 -0700
@@ -71,12 +71,13 @@
 #include	<X11/Xlib.h>
 #include	<X11/IntrinsicP.h>
 #include	<X11/StringDefs.h>
+#include	<X11/Xmu/Drawing.h>
+#include	<X11/Xmu/Misc.h>
 
 /* #### This may be risky, lwlib-internal.h redefines abort() */
 #include	"lwlib-fonts.h"
 #include	"lwlib-colors.h"
 #include	"lwlib-internal.h"
-#include	"../src/xmu.h"
 #include	"xlwtabsP.h"
 #include	"xlwgcs.h"
 
@@ -1570,9 +1571,7 @@
 	XtReleaseGC(w, tw->tabs.backgroundGC) ;
 	XtReleaseGC(w, tw->tabs.topGC) ;
 	XtReleaseGC(w, tw->tabs.botGC) ;
-#ifdef HAVE_XMU
 	XmuReleaseStippledPixmap(XtScreen(w), tw->tabs.grey50) ;
-#endif
 }
 
 
@@ -2481,7 +2480,6 @@
 #else
 	  tw->tabs.font->fid;
 #endif
-#ifdef HAVE_XMU
 	if (tw->tabs.be_nice_to_cmap || w->core.depth == 1)
 	{
 	  values.fill_style = FillStippled;
@@ -2502,7 +2500,6 @@
 		  GCDashList|GCArcMode);
 	}
 	else
-#endif
 	{
 	  tw->tabs.greyGC =
 	    XtAllocateGC(w, w->core.depth,
--- a/man/ChangeLog	Wed Dec 09 09:50:36 2009 -0700
+++ b/man/ChangeLog	Thu Dec 10 12:42:09 2009 -0700
@@ -1,3 +1,9 @@
+2009-12-09  Jerry James  <james@xemacs.org>
+
+	* internals/internals.texi (A Summary of the Various XEmacs Modules):
+	Remove references to xmu.c and xmu.h.
+	(Modules for Interfacing with X Windows): Ditto.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* internals/internals.texi (XEmacs from the Perspective of Building):
--- a/man/internals/internals.texi	Wed Dec 09 09:50:36 2009 -0700
+++ b/man/internals/internals.texi	Thu Dec 10 12:42:09 2009 -0700
@@ -3238,8 +3238,6 @@
 @item @file{xmmanagerp.h} @tab @ref{Modules for Interfacing with X Windows}.
 @item @file{xmotif.h} @tab
 @item @file{xmprimitivep.h} @tab @ref{Modules for Interfacing with X Windows}.
-@item @file{xmu.c} @tab @ref{Modules for Interfacing with X Windows}.
-@item @file{xmu.h} @tab @ref{Modules for Interfacing with X Windows}.
 @end multitable
 
 
@@ -21576,16 +21574,6 @@
 
 
 @example
-xmu.c
-xmu.h
-@end example
-
-These files provide an emulation of the Xmu library for those systems
-(i.e. HPUX) that don't provide it as a standard part of X.
-
-
-
-@example
 ExternalClient-Xlib.c
 ExternalClient.c
 ExternalClient.h
--- a/nt/ChangeLog	Wed Dec 09 09:50:36 2009 -0700
+++ b/nt/ChangeLog	Thu Dec 10 12:42:09 2009 -0700
@@ -1,3 +1,7 @@
+2009-12-09  Jerry James  <james@xemacs.org>
+
+	* xemacs.dsp: Drop references to xmu.c and xmu.h.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* xemacs.dsp: Drop references to removed source files.
--- a/nt/xemacs.dsp	Wed Dec 09 09:50:36 2009 -0700
+++ b/nt/xemacs.dsp	Thu Dec 10 12:42:09 2009 -0700
@@ -1317,13 +1317,5 @@
 
 SOURCE=..\src\xmprimitivep.h
 # End Source File
-# Begin Source File
-
-SOURCE=..\src\xmu.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\src\xmu.h
-# End Source File
 # End Target
 # End Project
--- a/src/ChangeLog	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/ChangeLog	Thu Dec 10 12:42:09 2009 -0700
@@ -1,3 +1,15 @@
+2009-12-09  Jerry James  <james@xemacs.org>
+
+	* config.h.in: Remove HAVE_XMU.
+	* s/windowsnt.h: Ditto.
+	* device-x.c: Include needed Xmu headers instead of obsolete xmu.h.
+	* EmacsFrame.c: Ditto.
+	* glyphs-x.c: Ditto.
+	* frame-x.c: Ditto.  Always include editres code.
+	* xmu.c: Removed, obsolete.
+	* xmu.h: Ditto.
+	* depend: Regenerate.
+
 2009-12-05  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* faces.c (complex_vars_of_faces): Explain why "*" isn't rewritten
--- a/src/EmacsFrame.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/EmacsFrame.c	Thu Dec 10 12:42:09 2009 -0700
@@ -40,9 +40,9 @@
 #include "objects-x.h"
 
 #include <X11/Shell.h>
+#include <X11/Xmu/CharSet.h>
 #include "EmacsFrameP.h"
 #include "EmacsManager.h"	/* for EmacsManagerChangeSize */
-#include "xmu.h"
 #include "../lwlib/xt-wrappers.h"
 
 static void EmacsFrameClassInitialize (void);
--- a/src/config.h.in	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/config.h.in	Thu Dec 10 12:42:09 2009 -0700
@@ -528,10 +528,6 @@
 /* Compile in support for GZIP compression */
 #undef HAVE_ZLIB
 
-/* Do you have the Xmu library?
-   This should always be the case except on losing HP-UX systems. */
-#undef HAVE_XMU
-
 /* Compile in support for DBM databases?  May require libgdbm or libdbm. */
 #undef HAVE_DBM
 /* Full #include file path for GDBM's or platforms ndbm.h */
--- a/src/depend	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/depend	Thu Dec 10 12:42:09 2009 -0700
@@ -35,17 +35,17 @@
 objects-xlike-inc.o: 
 #endif
 #if defined(HAVE_X_WINDOWS)
-EmacsFrame.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h
+EmacsFrame.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h toolbar.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h
 EmacsManager.o: $(CONFIG_H) $(LWLIB_SRCDIR)/lwlib.h EmacsManager.h EmacsManagerP.h compiler.h xintrinsicp.h xmmanagerp.h xmotif.h xmprimitivep.h
 EmacsShell-sub.o: $(CONFIG_H) $(LWLIB_SRCDIR)/lwlib.h EmacsShell.h EmacsShellP.h xintrinsic.h xintrinsicp.h
 EmacsShell.o: $(CONFIG_H) EmacsShell.h ExternalShell.h xintrinsicp.h
 balloon-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h balloon_help.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h
 balloon_help.o: $(CONFIG_H) balloon_help.h compiler.h xintrinsic.h
 console-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h process.h redisplay.h specifier.h symeval.h symsinit.h text.h vdb.h xintrinsic.h
-device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h
+device-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h elhash.h events.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysdep.h sysdll.h sysfile.h systime.h text.h vdb.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h
 dialog-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h dumper.h events.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window.h xintrinsic.h
-frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h xmu.h
-glyphs-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h xmu.h
+frame-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h EmacsShell.h ExternalShell.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h dumper.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar-x.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmotif.h xmprimitivep.h
+glyphs-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs-x.h glyphs.h gui.h imgproc.h insdel.h lisp-disunion.h lisp-union.h lisp.h lrecord.h lstream.h mc-alloc.h number-gmp.h number-mp.h number.h objects-impl.h objects-x-impl.h objects-x.h objects.h opaque.h process.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h
 gui-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h events.h frame.h gc.h general-slots.h glyphs.h gui.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h xmotif.h
 intl-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h compiler.h console-x.h console.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h xintrinsic.h
 menubar-x.o: $(CONFIG_H) $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dumper.h events.h frame-impl.h frame.h frameslots.h gc.h general-slots.h gui.h keymap.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h menubar.h number-gmp.h number-mp.h number.h opaque.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h systime.h text.h vdb.h window-impl.h window.h winslots.h xintrinsic.h
@@ -256,4 +256,3 @@
 widget.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h dumper.h gc.h general-slots.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h symeval.h symsinit.h text.h vdb.h
 win32.o: $(CONFIG_H) $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h compiler.h console-msw.h console.h dumper.h gc.h general-slots.h hash.h intl-auto-encap-win32.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h profile.h symeval.h symsinit.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h text.h vdb.h
 window.o: $(CONFIG_H) $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h compiler.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h dumper.h elhash.h faces.h frame-impl.h frame.h frameslots.h gc.h general-slots.h glyphs.h gutter.h lisp-disunion.h lisp-union.h lisp.h lrecord.h mc-alloc.h number-gmp.h number-mp.h number.h objects.h redisplay.h scrollbar.h specifier.h symeval.h symsinit.h text.h vdb.h window-impl.h window.h winslots.h
-xmu.o: $(CONFIG_H)
--- a/src/device-x.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/device-x.c	Thu Dec 10 12:42:09 2009 -0700
@@ -55,7 +55,7 @@
 				   use XtGetValues(), but ... */
 #include "xgccache.h"
 #include <X11/Shell.h>
-#include "xmu.h"
+#include <X11/Xmu/Error.h>
 
 #if defined(HAVE_SHLIB) && defined(LWLIB_USES_ATHENA) && !defined(HAVE_ATHENA_3D)
 #include "sysdll.h"
--- a/src/frame-x.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/frame-x.c	Thu Dec 10 12:42:09 2009 -0700
@@ -48,7 +48,7 @@
 				   use XtGetValues(), but ... */
 #include <X11/Shell.h>
 #include <X11/ShellP.h>
-#include "xmu.h"
+#include <X11/Xmu/Editres.h>
 #include "EmacsManager.h"
 #include "EmacsFrameP.h"
 #include "EmacsShell.h"
@@ -2044,7 +2044,6 @@
   XIM_init_frame (f);
 #endif /* HAVE_XIM */
 
-#ifdef HACK_EDITRES
   /* Allow XEmacs to respond to EditRes requests.  See the O'Reilly Xt */
   /* Intrinsics Programming Manual, Motif Edition, Aug 1993, Sect 14.14, */
   /* pp. 483-493. */
@@ -2053,7 +2052,6 @@
 		     True,                   /* called on non-maskable events? */
 		     (XtEventHandler) _XEditResCheckMessages, /* the handler */
 		     NULL);
-#endif /* HACK_EDITRES */
 
 #ifdef HAVE_CDE
   {
--- a/src/glyphs-x.c	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/glyphs-x.c	Thu Dec 10 12:42:09 2009 -0700
@@ -70,7 +70,6 @@
 #include "console-x-impl.h"
 #include "glyphs-x.h"
 #include "objects-x-impl.h"
-#include "xmu.h"
 
 #include "sysfile.h"
 #include "sysproc.h" /* for qxe_getpid() */
@@ -82,6 +81,7 @@
 #include <Xm/Scale.h>
 #endif
 #include <X11/IntrinsicP.h>
+#include <X11/Xmu/CurUtil.h>
 
 #define LISP_DEVICE_TO_X_SCREEN(dev) XDefaultScreenOfDisplay (DEVICE_X_DISPLAY (XDEVICE (dev)))
 
--- a/src/s/windowsnt.h	Wed Dec 09 09:50:36 2009 -0700
+++ b/src/s/windowsnt.h	Thu Dec 10 12:42:09 2009 -0700
@@ -39,7 +39,6 @@
 #define HAVE_XREGISTERIMINSTANTIATECALLBACK
 
 #define THIS_IS_X11R6
-#define HAVE_XMU
 #define HAVE_XLOCALE_H
 #define HAVE_X11_LOCALE_H
 #define GETTIMEOFDAY_ONE_ARGUMENT
--- a/src/xmu.c	Wed Dec 09 09:50:36 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,327 +0,0 @@
-/* This file contains compatibility routines for systems without Xmu.
- * You would be better served by installing Xmu on your machine or
- * yelling at your vendor to ship it.
- */
-
-/* XEmacs changes: rindex -> strrchr */
-
-/* Synched up with: Not in FSF. */
-
-#include <config.h>
-
-#ifndef HAVE_XMU
-/*
- * Copyright 1989 Massachusetts Institute of Technology
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising
- * or publicity pertaining to distribution of the software without specific,
- * written prior permission.  M.I.T. makes no representations about the
- * suitability of this software for any purpose.  It is provided "as is"
- * without express or implied warranty.
- *
- * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-#include <X11/cursorfont.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/Intrinsic.h>
-
-/* for XmuCopyISOLatin1Lowered */
-#define XK_LATIN1
-#include <X11/keysymdef.h>
-#undef XK_LATIN1
-
-#if (XtSpecificationRelease >= 5)
-/*
- * Don't know why, but this works with X11R5, not X11R4.
- * Anyway, _XExtension is defined in Xlib.h in X11R4, so we do not need
- * Xlibint in that case...
- */
-#include <X11/Xlibint.h>
-#endif
-#include <X11/Xproto.h>
-#include <stdio.h>
-#include <ctype.h>
-
-
-int XmuCursorNameToIndex (const char *name)
-{
-    static const struct _CursorName {
-	const char	*name;
-	unsigned int	shape;
-    } cursor_names[] = {
-			{"x_cursor",		XC_X_cursor},
-			{"arrow",		XC_arrow},
-			{"based_arrow_down",	XC_based_arrow_down},
-			{"based_arrow_up",	XC_based_arrow_up},
-			{"boat",		XC_boat},
-			{"bogosity",		XC_bogosity},
-			{"bottom_left_corner",	XC_bottom_left_corner},
-			{"bottom_right_corner",	XC_bottom_right_corner},
-			{"bottom_side",		XC_bottom_side},
-			{"bottom_tee",		XC_bottom_tee},
-			{"box_spiral",		XC_box_spiral},
-			{"center_ptr",		XC_center_ptr},
-			{"circle",		XC_circle},
-			{"clock",		XC_clock},
-			{"coffee_mug",		XC_coffee_mug},
-			{"cross",		XC_cross},
-			{"cross_reverse",	XC_cross_reverse},
-			{"crosshair",		XC_crosshair},
-			{"diamond_cross",	XC_diamond_cross},
-			{"dot",			XC_dot},
-			{"dotbox",		XC_dotbox},
-			{"double_arrow",	XC_double_arrow},
-			{"draft_large",		XC_draft_large},
-			{"draft_small",		XC_draft_small},
-			{"draped_box",		XC_draped_box},
-			{"exchange",		XC_exchange},
-			{"fleur",		XC_fleur},
-			{"gobbler",		XC_gobbler},
-			{"gumby",		XC_gumby},
-			{"hand1",		XC_hand1},
-			{"hand2",		XC_hand2},
-			{"heart",		XC_heart},
-			{"icon",		XC_icon},
-			{"iron_cross",		XC_iron_cross},
-			{"left_ptr",		XC_left_ptr},
-			{"left_side",		XC_left_side},
-			{"left_tee",		XC_left_tee},
-			{"leftbutton",		XC_leftbutton},
-			{"ll_angle",		XC_ll_angle},
-			{"lr_angle",		XC_lr_angle},
-			{"man",			XC_man},
-			{"middlebutton",	XC_middlebutton},
-			{"mouse",		XC_mouse},
-			{"pencil",		XC_pencil},
-			{"pirate",		XC_pirate},
-			{"plus",		XC_plus},
-			{"question_arrow",	XC_question_arrow},
-			{"right_ptr",		XC_right_ptr},
-			{"right_side",		XC_right_side},
-			{"right_tee",		XC_right_tee},
-			{"rightbutton",		XC_rightbutton},
-			{"rtl_logo",		XC_rtl_logo},
-			{"sailboat",		XC_sailboat},
-			{"sb_down_arrow",	XC_sb_down_arrow},
-			{"sb_h_double_arrow",	XC_sb_h_double_arrow},
-			{"sb_left_arrow",	XC_sb_left_arrow},
-			{"sb_right_arrow",	XC_sb_right_arrow},
-			{"sb_up_arrow",		XC_sb_up_arrow},
-			{"sb_v_double_arrow",	XC_sb_v_double_arrow},
-			{"shuttle",		XC_shuttle},
-			{"sizing",		XC_sizing},
-			{"spider",		XC_spider},
-			{"spraycan",		XC_spraycan},
-			{"star",		XC_star},
-			{"target",		XC_target},
-			{"tcross",		XC_tcross},
-			{"top_left_arrow",	XC_top_left_arrow},
-			{"top_left_corner",	XC_top_left_corner},
-			{"top_right_corner",	XC_top_right_corner},
-			{"top_side",		XC_top_side},
-			{"top_tee",		XC_top_tee},
-			{"trek",		XC_trek},
-			{"ul_angle",		XC_ul_angle},
-			{"umbrella",		XC_umbrella},
-			{"ur_angle",		XC_ur_angle},
-			{"watch",		XC_watch},
-			{"xterm",		XC_xterm},
-    };
-    const struct _CursorName *table;
-    int i;
-    char tmp[40];
-
-    if (strlen (name) >= sizeof (tmp)) return -1;
-    for (i=0; i<strlen(name); i++)
-        if (isupper((unsigned char) name[i]))
-            tmp[i] = tolower((unsigned char) name[i]);
-        else
-            tmp[i] = name[i];
-    tmp[i] = 0;
-
-    for (i=0, table=cursor_names; i < XtNumber(cursor_names); i++, table++ ) {
-	if (strcmp(tmp, table->name) == 0) return table->shape;
-    }
-
-    return -1;
-}
-
-/* Definition of XmuReadBitmapDataFromFile replaced with the code in
- * glyphs-shared.c
- *
- * wmperry Jun 1, 2001
- */
-
-/*
- * XmuPrintDefaultErrorMessage - print a nice error that looks like the usual
- * message.  Return 1 if the caller should consider exiting, else 0.
- */
-int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp)
-{
-    char buffer[BUFSIZ];
-    char mesg[BUFSIZ];
-    char number[32];
-    char *mtype = "XlibMessage";
-    _XExtension *ext = (_XExtension *)NULL;
-    XGetErrorText(dpy, event->error_code, buffer, BUFSIZ);
-    XGetErrorDatabaseText(dpy, mtype, "XError", "X Error", mesg, BUFSIZ);
-    fprintf(fp, "%s:  %s\n  ", mesg, buffer);
-    XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d",
-	mesg, BUFSIZ);
-    fprintf(fp, mesg, event->request_code);
-    if (event->request_code < 128) {
-	sprintf(number, "%d", event->request_code);
-	XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
-    } else {
-	/* XXX this is non-portable */
-	for (ext = dpy->ext_procs;
-	     ext && (ext->codes.major_opcode != event->request_code);
-	     ext = ext->next)
-	  ;
-	if (ext)
-	    strcpy(buffer, ext->name);
-	else
-	    buffer[0] = '\0';
-    }
-    fprintf(fp, " (%s)", buffer);
-    fputs("\n  ", fp);
-#if (XtSpecificationRelease >= 5)
-    if (event->request_code >= 128) {
-	XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
-			      mesg, BUFSIZ);
-	fprintf(fp, mesg, event->minor_code);
-	if (ext) {
-	    sprintf(mesg, "%s.%d", ext->name, event->minor_code);
-	    XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
-	    fprintf(fp, " (%s)", buffer);
-	}
-	fputs("\n  ", fp);
-    }
-    if (event->error_code >= 128) {
-	/* let extensions try to print the values */
-	/* XXX this is non-portable code */
-	for (ext = dpy->ext_procs; ext; ext = ext->next) {
-	    if (ext->error_values)
-		(*ext->error_values)(dpy, event, fp);
-	}
-	/* the rest is a fallback, providing a simple default */
-	/* kludge, try to find the extension that caused it */
-	buffer[0] = '\0';
-	for (ext = dpy->ext_procs; ext; ext = ext->next) {
-	    if (ext->error_string)
-		(*ext->error_string)(dpy, event->error_code, &ext->codes,
-				     buffer, BUFSIZ);
-	    if (buffer[0])
-		break;
-	}
-	if (buffer[0])
-	    sprintf(buffer, "%s.%d", ext->name,
-		    event->error_code - ext->codes.first_error);
-	else
-	    strcpy(buffer, "Value");
-	XGetErrorDatabaseText(dpy, mtype, buffer, "", mesg, BUFSIZ);
-	if (*mesg) {
-	    fprintf(fp, mesg, event->resourceid);
-	    fputs("\n  ", fp);
-	}
-    } else if ((event->error_code == BadWindow) ||
-	       (event->error_code == BadPixmap) ||
-	       (event->error_code == BadCursor) ||
-	       (event->error_code == BadFont) ||
-	       (event->error_code == BadDrawable) ||
-	       (event->error_code == BadColor) ||
-	       (event->error_code == BadGC) ||
-	       (event->error_code == BadIDChoice) ||
-	       (event->error_code == BadValue) ||
-	       (event->error_code == BadAtom)) {
-	if (event->error_code == BadValue)
-	    XGetErrorDatabaseText(dpy, mtype, "Value", "Value 0x%x",
-				  mesg, BUFSIZ);
-	else if (event->error_code == BadAtom)
-	    XGetErrorDatabaseText(dpy, mtype, "AtomID", "AtomID 0x%x",
-				  mesg, BUFSIZ);
-	else
-	    XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
-				  mesg, BUFSIZ);
-	fprintf(fp, mesg, event->resourceid);
-	fputs("\n  ", fp);
-    }
-#elif (XtSpecificationRelease == 4)
-    XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
-			  mesg, BUFSIZ);
-    fprintf(fp, mesg, event->minor_code);
-    fputs("\n  ", fp);
-    if (ext) {
-      sprintf(mesg, "%s.%d", ext->name, event->minor_code);
-      XGetErrorDatabaseText(dpy, "XRequest", mesg, "", buffer, BUFSIZ);
-      fprintf(fp, " (%s)", buffer);
-    }
-    XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
-			  mesg, BUFSIZ);
-    fprintf(fp, mesg, event->resourceid);
-    fputs("\n  ", fp);
-#else
-ERROR! Unsupported release of X11
-#endif
-    XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
-	mesg, BUFSIZ);
-    fprintf(fp, mesg, event->serial);
-    fputs("\n  ", fp);
-    XGetErrorDatabaseText(dpy, mtype, "CurrentSerial", "Current Serial #%d",
-	mesg, BUFSIZ);
-    fprintf(fp, mesg, NextRequest(dpy)-1);
-    fputs("\n", fp);
-    if (event->error_code == BadImplementation) return 0;
-    return 1;
-}
-
-
-/*
- * XmuSimpleErrorHandler - ignore errors for XQueryTree, XGetWindowAttributes,
- * and XGetGeometry; print a message for everything else.  In all case, do
- * not exit.
- */
-int XmuSimpleErrorHandler (Display *dpy, XErrorEvent *errorp)
-{
-    switch (errorp->request_code) {
-      case X_QueryTree:
-      case X_GetWindowAttributes:
-        if (errorp->error_code == BadWindow) return 0;
-	break;
-      case X_GetGeometry:
-	if (errorp->error_code == BadDrawable) return 0;
-	break;
-    }
-    /* got a "real" X error */
-    return XmuPrintDefaultErrorMessage (dpy, errorp, stderr);
-}
-
-void XmuCopyISOLatin1Lowered(char *dst, const char *src)
-{
-    unsigned char *dest   = (unsigned char *) dst;
-    unsigned char *source = (unsigned char *) src;
-
-    for ( ; *source; source++, dest++)
-    {
-        if ((*source >= XK_A) && (*source <= XK_Z))
-            *dest = *source + (XK_a - XK_A);
-        else if ((*source >= XK_Agrave) && (*source <= XK_Odiaeresis))
-            *dest = *source + (XK_agrave - XK_Agrave);
-        else if ((*source >= XK_Ooblique) && (*source <= XK_Thorn))
-            *dest = *source + (XK_oslash - XK_Ooblique);
-        else
-            *dest = *source;
-    }
-    *dest = '\0';
-}
-#endif /* !HAVE_XMU */
--- a/src/xmu.h	Wed Dec 09 09:50:36 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/* Compatibility routines based on code from the MIT Xmu library */
-
-/* Synched up with: Not in FSF. */
-
-#ifndef INCLUDED_xmu_h_
-#define INCLUDED_xmu_h_
-
-#ifdef HAVE_XMU
-
-# include <X11/Xmu/CharSet.h>
-# include <X11/Xmu/Converters.h>
-# include <X11/Xmu/CurUtil.h>
-# include <X11/Xmu/Drawing.h>
-# include <X11/Xmu/Error.h>
-# include <X11/Xmu/Misc.h>
-
-/* Do the EDITRES protocol if running X11R5 (or later) version */
-#if (XtSpecificationRelease >= 5) 
-/* #### No dice if we don't have XMU until someone ports
-   _XEditResCheckMessages to xmu.c */
-#define HACK_EDITRES
-#include <X11/Xmu/Editres.h>
-#endif /* R5+ */
-
-#else
-
-int XmuCursorNameToIndex (const char *name);
-int XmuReadBitmapDataFromFile (const char *filename, unsigned int *width,
-                               unsigned int *height, unsigned char **datap,
-                               int *x_hot, int *y_hot);
-int XmuPrintDefaultErrorMessage (Display *dpy, XErrorEvent *event, FILE *fp);
-void XmuCopyISOLatin1Lowered (char *, const char *);
-
-#define Max(x, y)       (((x) > (y)) ? (x) : (y))
-#define Min(x, y)       (((x) < (y)) ? (x) : (y))
-#define AssignMax(x, y) {if ((y) > (x)) x = (y);}
-#define AssignMin(x, y) {if ((y) < (x)) x = (y);}
-typedef enum {XtorientHorizontal, XtorientVertical} XtOrientation;
-
-#endif /* HAVE_XMU */
-
-#endif /* INCLUDED_xmu_h_ */