changeset 4789:56049bea9231

Merge Adrian's issue634 commit (fixup ChangeLog).
author Stephen J. Turnbull <stephen@xemacs.org>
date Tue, 22 Dec 2009 19:07:40 +0900
parents 5cca06f930ea (diff) 6e6f7b79c1fc (current diff)
children bc4f2511bbea
files src/ChangeLog
diffstat 114 files changed, 824 insertions(+), 3792 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,30 @@
+2009-12-21  Jerry James  <james@xemacs.org>
+
+	* INSTALL: Replace reference to yow.
+
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* INSTALL: Remove reference to rcs-checkin.
+
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* build-msw-release.sh: Add copyright and GPL v2 or later header
+	with permission of Andy Piper.
+
+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
+	testing $ndbm_h_found which is never set.
+	* configure: ditto
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* Makefile.in.in: Remove dynodump support.  Delete out-of-date comment
--- a/INSTALL	Fri Nov 27 00:51:41 2009 +0100
+++ b/INSTALL	Tue Dec 22 19:07:40 2009 +0900
@@ -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
@@ -573,7 +570,7 @@
 
 `/usr/local/bin' holds the executable programs users normally run -
 		`xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc',
-		`gnuclient', `gnudoit', `gnuattach', and `rcs-checkin'.
+		`gnuclient', `gnudoit', and `gnuattach'.
 
 `/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
 		`VERSION' stands for the number of the XEmacs version
@@ -589,7 +586,7 @@
 		`/usr/local/lib/xemacs/site-lisp/*'.
 
 `/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
-		`yow' database, and other architecture-independent
+		Unicode database, and other architecture-independent
 		files XEmacs might need while running.  VERSION is as
 		specified for `.../lisp'.
 
--- a/build-msw-release.sh	Fri Nov 27 00:51:41 2009 +0100
+++ b/build-msw-release.sh	Tue Dec 22 19:07:40 2009 +0900
@@ -1,5 +1,24 @@
 #!/bin/sh
 
+# Copyright (C) 2000 Andy Piper
+
+# This file is part of XEmacs.
+
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your
+# option) any later version.
+
+# XEmacs is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
 # This file builds the release kits for both cygwin and win32. You
 # must have both environments configured for it to work properly. In
 # particular you must provide a suitable value for NATIVE_ZLIB_DIR.
--- a/configure	Fri Nov 27 00:51:41 2009 +0100
+++ b/configure	Tue Dec 22 19:07:40 2009 +0900
@@ -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
@@ -38578,7 +38552,7 @@
 
 done
 
-  if test "$ndbm_h_found" != "yes"; then
+  if test "x$ndbm_h_file" = "x"; then
     test "$enable_database_gdbm" = "yes" -o \
          "$enable_database_dbm"  = "yes" && \
       { echo "Error:" "Required DBM support cannot be provided." >&2; exit 1; }
@@ -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
--- a/configure.ac	Fri Nov 27 00:51:41 2009 +0100
+++ b/configure.ac	Tue Dec 22 19:07:40 2009 +0900
@@ -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])
@@ -5035,7 +5025,7 @@
 if test "$enable_database_gdbm $enable_database_dbm" != "no no"; then
   ndbm_h_file=""
   AC_CHECK_HEADERS([ndbm.h gdbm/ndbm.h],[ndbm_h_file=$ac_header; break;],[],[])
-  if test "$ndbm_h_found" != "yes"; then
+  if test "x$ndbm_h_file" = "x"; then
     test "$enable_database_gdbm" = "yes" -o \
          "$enable_database_dbm"  = "yes" && \
       XE_DIE("Required DBM support cannot be provided.")
@@ -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/etc/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/etc/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,20 @@
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* idd/drop: Remove.
+	* idd/dropmsk: Remove.
+
+2009-12-10  Jerry James  <james@xemacs.org>
+
+	* sparcworks/SW.Editor.xpm: Remove obsolete file.
+	* sparcworks/sunpro-mailcap: Ditto.
+	* sparcworks: Remove empty directory.
+
+2009-12-03  Jerry James  <james@xemacs.org>
+
+	* custom/example-themes/europe-theme.el:
+	* custom/example-themes/example-theme.el: Add copyright and GPL
+	notices as authorized by Jan Vroonhof.
+
 2009-06-14  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* gdbinit.in: 
--- a/etc/custom/example-themes/europe-theme.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/etc/custom/example-themes/europe-theme.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,26 @@
+;;; europe-theme.el --- Settings for European users
+
+;; Copyright (C) 1999 Free Software Foundation, Inc.
+
+;; Author: Jan Vroonhof <jan@xemacs.org>
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+;; MA 02111-1301, USA.
+
 ;;;autoload 
 (deftheme europe
   "Settings for European users."
--- a/etc/custom/example-themes/example-theme.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/etc/custom/example-themes/example-theme.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,26 @@
+;;; example-theme.el --- An example customize theme
+
+;; Copyright (C) 1999 Free Software Foundation, Inc.
+
+;; Author: Jan Vroonhof <jan@xemacs.org>
+
+;; This file is part of XEmacs.
+
+;; XEmacs is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; XEmacs is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+;; MA 02111-1301, USA.
+
 ;;;autoload 
 (deftheme example
   "A sample theme for customize theme support."
@@ -12,4 +35,4 @@
 (provide-theme 'example)
 
 
-  
\ No newline at end of file
+  
--- a/etc/idd/drop	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#define drop_width 16
-#define drop_height 16
-#define drop_x_hot 6
-#define drop_y_hot 4
-static unsigned char drop_bits[] = {
-   0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0xc2, 0x04,
-   0xc2, 0x05, 0xc2, 0x07, 0xc2, 0x07, 0xc2, 0x0f, 0xfe, 0x1f, 0xc0, 0x07,
-   0xc0, 0x06, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x08};
--- a/etc/idd/dropmsk	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#define drop_width 16
-#define drop_height 16
-#define drop_x_hot 6
-#define drop_y_hot 4
-static unsigned char drop_bits[] = {
-   0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x42, 0x04, 0xc2, 0x04,
-   0xc2, 0x05, 0xc2, 0x07, 0xc2, 0x07, 0xc2, 0x0f, 0xfe, 0x1f, 0xc0, 0x07,
-   0xc0, 0x06, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x08};
--- a/etc/sparcworks/SW.Editor.xpm	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/* XPM */
-static char *noname[] = {
-/* width height ncolors chars_per_pixel */
-"64 64 17 1",
-/* colors */
-"` c #ABABAB",
-"a c #C34C4C",
-"b c #DBB794",
-"c c #94DBB7",
-"d c #DBFFEE",
-"e c #A0A0A0",
-"f c #BAEADA",
-"g c #888888",
-"h c #7C7C7C",
-"i c #FFFFB7",
-"j c #DB9494",
-"k c #FFB7B7",
-"l c #FFFFFF",
-"m c #4C4C4C",
-"n c #F3F3F3",
-"o c #DBDBDB",
-"p c #CFCFCF",
-/* pixels */
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom",
-"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm",
-"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm",
-"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom",
-"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm",
-"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm",
-"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom",
-"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm",
-"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm",
-"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom",
-"mlnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnpm",
-"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm",
-"mllllllllllllllll````````````````````````````````lllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooooooooooooooooooooooooooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooooooooooooooooooooooooooooolooooooooooooopm",
-"mllllllllllllllll`oooooooooooooooooooooooooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`ooooooooooooooooooooooommmoooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`ooogggggggggggggggoooomkkjmooolooooooooooooopm",
-"mllllllllllllllll`oooglllllllllllllgmooomkkjmooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooglllllllllllllglmommkjmmooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`ooogllmmmlmmmllllgllmmimmmeeoolooooooooooooopm",
-"mllllllllllllllll`oooglllllllllllllmmmmiiibmeeoollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`ooogllmmmmmlllllllllmiibmeeooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllllllllllllllmiiibmeeooolooooooooooooopm",
-"mllllllllllllllll`ooogllllmmmmmmmmlllmiibmeeoooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`ooogllllllllllllllmiiibmeeoooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllllllmmmmlmmmiibmeeooooolooooooooooooopm",
-"mllllllllllllllll`ooogllllllllllllllmiibmeeooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooglllmmmmlmmmmllmmimeeoooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllllaaaaaaallmmmmeooooooolooooooooooooopm",
-"mllllllllllllllll`oooglllaammmmmmmllmmemoooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooglllalllllllllameemoooooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllaallmmmmmaahllmoooooooolooooooooooooopm",
-"mllllllllllllllll`oooglllllaaaaaaalllllmoooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`ooogllllmmlmmmmmlllllmoooooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllllllllllllllllmoooooooolooooooooooooopm",
-"mllllllllllllllll`oooglllmmmlllllllllllmoooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooglllllllllllllllllmoooooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooglllllllllllllllllmoooooooolooooooooooooopm",
-"mllllllllllllllll`ooommmmmmmmmmmmmmmmmmmoooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`oooooooooooooooooooooooooooooolnnnnnnnnnnnnnpm",
-"mlooooooooooooooo`oooooooooooooooooooooooooooooolooooooooooooopm",
-"mllllllllllllllll`oooooooooooooooooooooooooooooollllllllllllllom",
-"mlnnnnnnnnnnnnnnn`lllllllllllllllllllllllllllllllnnnnnnnnnnnnnpm",
-"mloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooopm",
-"mlllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllom",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcm",
-"mfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
-};
--- a/etc/sparcworks/sunpro-mailcap	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-application/postscript; pageview %s; needsx11
--- a/lib-src/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/lib-src/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,40 @@
+2009-12-21  Jerry James  <james@xemacs.org>
+
+	* Makefile.in.in: Remove rules for building yow.
+	* yow.c: Removed.
+
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* Makefile.in.in: Don't install rcs-checkin.
+	* rcs-checkin: Remove obsolete file.
+
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* installexe.sh: Add copyright and GPL v2 or later header with
+	permission of Andy Piper.
+
+2009-12-15  Jerry James  <james@xemacs.org>
+
+	* ad2c: Add GPL v2 or later notice with permission of George Ferguson.
+	See the xemacs-beta thread beginning with message
+	<870180fe0912090940mac19378ydab5b5a04bf06cf8@mail.gmail.com>.
+
+2009-12-15  Jerry James  <james@xemacs.org>
+
+	* Makefile.in.in: Remove build dependency and rule for wakeup.  Thanks
+	to Mats Lidell for the patch.
+
+2009-12-10  Jerry James  <james@xemacs.org>
+
+	* gnudepend.pl: Remove obsolete file.
+	* leditcfns.c: Ditto.
+	* wakeup.c: Ditto.
+
+2009-12-08  Sjoerd Mullender  <sjoerd@acm.org>
+
+	* etags.c (absolute_filename): Use memmove instead of strcpy to move
+	characters within a string.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* fakemail.c (MAIL_PROGRAM_NAME): No s&m files define this now, so
--- a/lib-src/Makefile.in.in	Fri Nov 27 00:51:41 2009 +0100
+++ b/lib-src/Makefile.in.in	Tue Dec 22 19:07:40 2009 +0900
@@ -96,11 +96,11 @@
 #endif
  etags ctags b2m ootags
 
-PUBLIC_INSTALLABLE_SCRIPTS=\
 #ifdef INSTALL_GNUSERV
- gnudoit gnuattach\
+PUBLIC_INSTALLABLE_SCRIPTS=gnudoit gnuattach
+#else
+PUBLIC_INSTALLABLE_SCRIPTS=
 #endif
- rcs-checkin
 
 PUBLIC_INSTALLABLES = ${PUBLIC_INSTALLABLE_EXES} ${PUBLIC_INSTALLABLE_SCRIPTS}
 
@@ -117,8 +117,8 @@
 #else
  fakemail\
 #endif
- wakeup profile make-docfile digest-doc\
- sorted-doc movemail cvtmail yow hexl mmencode
+ profile make-docfile digest-doc\
+ sorted-doc movemail cvtmail hexl mmencode
 
 GEN_SCRIPTS = rcs2log vcdiff gzip-el.sh
 PKG_SCRIPTS = add-big-package.sh
@@ -337,9 +337,6 @@
 ctags: ${etags_deps} etags
 	$(CC) -DCTAGS ${etags_args} -o $@
 
-wakeup: ${srcdir}/wakeup.c
-	$(CC) $(cflags) ${srcdir}/wakeup.c $(ldflags) -o $@
-
 profile: ${srcdir}/profile.c
 	$(CC) $(cflags) ${srcdir}/profile.c $(ldflags) -o $@
 
@@ -366,9 +363,6 @@
 fakemail: ${srcdir}/fakemail.c ../src/config.h
 	$(CC) $(cflags) ${srcdir}/fakemail.c $(ldflags) -o $@
 
-yow: ${srcdir}/yow.c ../src/paths.h
-	$(CC) $(cflags) ${srcdir}/yow.c $(ldflags) -o $@
-
 i: ${srcdir}/i.c
 	$(CC) $(cflags) ${srcdir}/i.c $(ldflags) -o $@
 
--- a/lib-src/ad2c	Fri Nov 27 00:51:41 2009 +0100
+++ b/lib-src/ad2c	Tue Dec 22 19:07:40 2009 +0900
@@ -12,6 +12,23 @@
 #	7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier)
 #		Escape quotes after escaping backslashes.
 #
+# This file is part of XEmacs.
+#
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# XEmacs is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+# Boston, MA 02111-1301, USA.  */
+#
 # Synched up with: Not in FSF.
 
 sed '
--- a/lib-src/etags.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/lib-src/etags.c	Tue Dec 22 19:07:40 2009 +0900
@@ -6829,13 +6829,13 @@
 	      else if (cp[0] != '/')
 		cp = slashp;
 #endif
-	      strcpy (cp, slashp + 3);
+	      memmove (cp, slashp + 3, strlen (slashp + 3) + 1);
 	      slashp = cp;
 	      continue;
 	    }
 	  else if (slashp[2] == '/' || slashp[2] == '\0')
 	    {
-	      strcpy (slashp, slashp + 2);
+	      memmove (slashp, slashp + 2, strlen (slashp + 2) + 1);
 	      continue;
 	    }
 	}
--- a/lib-src/gnudepend.pl	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-#!/usr/bin/perl
-
-while (<>)
-{
-    if (/\\$/)
-    {
-        chop;
-        $foo .= $_;
-    }
-    else
-    {
-        @foo = split (/[ \\:]+/, $foo);
-        $filename = $foo[0];
-	if (($filename =~ /^unex/) ||
-	    ($filename =~ /^sgiplay/) ||
-	    ($filename =~ /^Extern/) ||
-	    ($filename =~ /^extw/))
-	{
-	    $foo = "";
-	    next;
-	}
-        @foo = grep (!/\.c$/, @foo);
-        @foo = grep ((s/\/.*lwlib\//\$(LWLIBSRCDIR)\//, 1), @foo);
-        @foo = grep (!/lisp\.h/, @foo);
-	@foo = grep (!/lisp\.h/, @foo);
-	@foo = grep (!/lisp-union\.h/, @foo);
-	@foo = grep (!/lisp-disunion\.h/, @foo);
-	@foo = grep (!/lrecord\.h/, @foo);
-	@foo = grep (!/emacsfns\.h/, @foo);
-	@foo = grep (!/symeval\.h/, @foo);
-	@foo = grep (!/symsinit\.h/, @foo);
-	@foo = grep (!/syssignal\.h/, @foo);
-	@foo = grep (!/intl\.h/, @foo);
-	@foo = grep (!/tt_c\.h/, @foo);
-	@foo = grep (!/descrip\.h/, @foo);
-        shift @foo;
-        foreach $i (0 .. $#foo)
-	{
-            $foo[$i] = $filename . ": " . $foo[$i];
-	}
-	print $filename . ": config.h\n";
-        print join ("\n", @foo);
-        print "\n";
-        $foo = "";
-    }
-}
--- a/lib-src/installexe.sh	Fri Nov 27 00:51:41 2009 +0100
+++ b/lib-src/installexe.sh	Tue Dec 22 19:07:40 2009 +0900
@@ -1,5 +1,24 @@
 #!bash
 
+# Copyright (C) 1998 Andy Piper
+
+# This file is part of XEmacs.
+
+# XEmacs is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your
+# option) any later version.
+
+# XEmacs is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with XEmacs; see the file COPYING.  If not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
 install_prog=$1
 shift
 
--- a/lib-src/leditcfns.c	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/* Synched up with: FSF 19.28. */
-
-#include <sgtty.h>
-#include <signal.h>
-#define STRLEN 100
-static char str[STRLEN+1] = "%?emacs"; /* extra char for the null */
-
-switch_to_proc(){
-    char *ptr = str;
-    while (*ptr) ioctl(0, TIOCSTI, ptr++);
-    ioctl(0, TIOCSTI, "\n");
-    kill(getpid(), SIGTSTP);
-    }
-
-set_proc_str(ptr) char *ptr; {
-    if (strlen(ptr) <= STRLEN)
-	strcpy(str, ptr);
-    else
-	printf("string too long for set-proc-str: %s\n", ptr);
-    }
--- a/lib-src/rcs-checkin	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#! /bin/sh
-
-# This script accepts any number of file arguments and checks them into RCS.
-#
-# Arguments which are detectably either RCS masters (with names ending in ,v)
-# or Emacs version files  (with names of the form foo.~<number>~) are ignored.
-# For each file foo, the script looks for Emacs version files related to it.
-# These files are checked in as deltas, oldest first, so that the contents of
-# the file itself becomes the latest revision in the master.
-#
-# The first line of each file is used as its description text.  The file itself
-# is not deleted, as under VC with vc-keep-workfiles at its default of t, but
-# all the version files are.
-#
-# If an argument file is already version-controlled under RCS, any version 
-# files are added to the list of deltas and deleted, and then the workfile
-# is checked in again as the latest version.  This is probably not quite
-# what was wanted, and is the main reason VC doesn't simply call this to
-# do checkins.
-#
-# This script is intended to be used to convert files with an old-Emacs-style
-# version history for use with VC (the Emacs 19 version-control interface),
-# which likes to use RCS as its back end.  It was written by Paul Eggert
-# and revised/documented for use with VC by Eric S. Raymond, Mar 19 1993.
-
-case $# in
-0)
-	echo "rcs-checkin: usage: rcs-checkin file ..."
-	echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file"
-	echo "rcs-checkin: function: uses the file's first line for the description"
-esac
-
-# expr pattern to extract owner from ls -l output
-ls_owner_pattern='[^ ][^ ]*  *[^ ][^ ]*  *\([^ ][^ ]*\)'
-
-for file
-do
-	# Make it easier to say `rcs-checkin *'
-	# by ignoring file names that already contain `~', or end in `,v'.
-	case $file in
-	*~* | *,v) continue
-	esac
-	# Ignore non-files too.
-	test -f "$file" || continue
-
-	# Check that file is readable.
-	test -r "$file" || exit
-
-	# If the RCS file does not already exist,
-	# initialize it with a description from $file's first line.
-	rlog -R "$file" >/dev/null 2>&1 ||
-	rcs -i -q -t-"`sed 1q $file`" "$file" || exit
-
-	# Get list of old files.
-	oldfiles=`
-		ls $file.~[0-9]*~ 2>/dev/null |
-		sort -t~ -n +1
-	`
-
-	# Check that they are properly sorted by date.
-	case $oldfiles in
-	?*)
-		oldfiles_by_date=`ls -rt $file $oldfiles`
-		test " $oldfiles
-$file" = " $oldfiles_by_date" || {
-			echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order.
-
-Sorted by mod time:
-$oldfiles_by_date
-
-Sorted by name:
-$oldfiles
-$file"
-			continue
-		}
-	esac
-
-	echo >&2 rcs-checkin: checking in: $oldfiles $file
-
-	# Save $file as $file.~-~ temporarily.
-	mv "$file" "$file.~-~" || exit
-
-	# Rename each old file to $file, and check it in.
-	for oldfile in $oldfiles
-	do
-		mv "$oldfile" "$file" || exit
-		ls_l=`ls -l "$file"` || exit
-		owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
-		echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit
-	done
-
-	# Bring $file back from $file.~-~, and check it in.
-	mv "$file.~-~" "$file" || exit
-	ls_l=`ls -l "$file"` || exit
-	owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
-	ci -d -q -u $owner -m"entered into RCS" "$file" || exit
-done
-
--- a/lib-src/wakeup.c	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/* Program to produce output at regular intervals.  */
-
-#include <config.h>
-
-#if __STDC__ || defined(STDC_HEADERS)
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef WIN32_NATIVE
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#undef sleep
-#define sleep(t) Sleep ((t) * 1000)
-#define getppid() (0)
-#undef HAVE_SYS_TIME_H
-#endif /* WIN32_NATIVE */
-
-#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#else
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#endif
-
-int
-main (int argc, char *argv[])
-{
-  int period = 60;
-
-  if (argc > 1)
-    period = atoi (argv[1]);
-
-  while (1)
-    {
-      /* Make sure wakeup stops when Emacs goes away.  */
-      if (getppid () == 1)
-	return 0;
-      printf ("Wake up!\n");
-      /* If fflush fails, then our stdout pipe is broken. */
-      if (fflush (stdout) != 0)
-	return 0;
-      /* If using a period of 60, produce the output when the minute
-	 changes. */
-      if (period == 60)
-	{
-	  time_t when;
-	  struct tm *tp;
-	  time (&when);
-	  tp = localtime (&when);
-	  sleep (60 - tp->tm_sec);
-	}
-      else
-	sleep (period);
-    }
-}
--- a/lib-src/yow.c	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
- * yow.c
- * 
- * Print a quotation from Zippy the Pinhead.
- * Qux <Kaufman-David@Yale> March 6, 1986
- * 
- * With dynamic memory allocation.
- */
-
-/* Synched up with: FSF 19.28. */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <ctype.h>
-#include <../src/paths.h>      /* For PATH_DATA.  */
-
-#if __STDC__ || defined(STDC_HEADERS)
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <time.h> /* for time() */
-#endif
-
-#define BUFSIZE  80
-#define SEP      '\0'
-
-#ifndef YOW_FILE
-#define YOW_FILE "yow.lines"
-#endif
-
-void yow (FILE *fp);
-void setup_yow (FILE *fp);
-
-#ifdef WIN32_NATIVE
-#define rootrelativepath(rel) \
-({\
-    static char res[BUFSIZE], *p;\
-    strcpy (res, argv[0]);\
-    p = res + strlen (res);\
-    while (p != res && *p != '/' && *p != '\\' && *p != ':') p--;\
-    strcpy (p + 1, "../");\
-    strcpy (p + 4, rel);\
-    &res;})
-#endif
-
-int
-main (int argc, char *argv[])
-{
-  FILE *fp;
-  char file[BUFSIZ];
-
-  if (argc > 2 && !strcmp (argv[1], "-f"))
-    strcpy (file, argv[2]);
-  else
-#ifdef PATH_DATA
-#ifdef vms
-    sprintf (file, "%s%s", PATH_DATA, YOW_FILE);
-#else
-    sprintf (file, "%s/%s", PATH_DATA, YOW_FILE);
-#endif
-#else /* !PATH_DATA */
-  {
-    fprintf (stderr,
-     "%s: the location of the \"%s\" file was not supplied at compile-time.\n\
-        You must supply it with the -f command-line option.\n",
-             argv[0], YOW_FILE);
-    exit (1);
-  }
-#endif
-
-  if ((fp = fopen(file, "r")) == NULL) {
-    perror(file);
-    exit(1);
-  }
-
-  /* initialize random seed */
-  srand((int) (getpid() + time((time_t *) 0)));
-
-  setup_yow(fp);
-  yow(fp);
-  fclose(fp);
-  return 0;
-}
-
-static long len = -1;
-static long header_len;
-
-#define AVG_LEN 40		/* average length of a quotation */
-
-/* Sets len and header_len */
-void
-setup_yow (FILE *fp)
-{
-  int c;
-
-  /* Get length of file */
-  /* Because the header (stuff before the first SEP) can be very long,
-   * thus biasing our search in favor of the first quotation in the file,
-   * we explicitly skip that. */
-  while ((c = getc(fp)) != SEP) {
-    if (c == EOF) {
-      fprintf(stderr, "File contains no separators.\n");
-      exit(2);
-    }
-  }
-  header_len = ftell(fp);
-  if (header_len > AVG_LEN)
-    header_len -= AVG_LEN;	/* allow the first quotation to appear */
-	
-  if (fseek(fp, 0L, 2) == -1) {
-    perror("fseek 1");
-    exit(1);
-  }
-  len = ftell(fp) - header_len;
-}
-
-
-/* go to a random place in the file and print the quotation there */
-void
-yow (FILE *fp)
-{
-  long offset;
-  int c, i = 0;
-  char *buf;
-  int bufsize;
-
-  offset = rand() % len + header_len;
-  if (fseek(fp, offset, 0) == -1) {
-    perror("fseek 2");
-    exit(1);
-  }
-
-  /* Read until SEP, read next line, print it.
-     (Note that we will never print anything before the first separator.)
-     If we hit EOF looking for the first SEP, just recurse. */
-  while ((c = getc(fp)) != SEP)
-    if (c == EOF) {
-      yow(fp);
-      return;
-    }
-
-  /* Skip leading whitespace, then read in a quotation.
-     If we hit EOF before we find a non-whitespace char, recurse. */
-  while (isspace(c = getc(fp)))
-    ;
-  if (c == EOF) {
-    yow(fp);
-    return;
-  }
-
-  bufsize = BUFSIZE;
-  buf = (char *) malloc(bufsize);
-  if (buf == (char *)0) {
-    fprintf(stderr, "can't allocate any memory\n");
-    exit (3);
-  }
-
-  buf[i++] = c;
-  while ((c = getc(fp)) != SEP && c != EOF) {
-    buf[i++] = c;
-	
-    if (i == bufsize-1) {
-      /* Yow! Is this quotation too long yet? */
-      bufsize *= 2;
-      buf = (char *)realloc(buf, bufsize);
-      if (buf == (char *)0) {
-	fprintf(stderr, "can't allocate more memory\n");
-	exit (3);
-      }
-    }
-  }
-  buf[i++] = 0;
-  printf("%s\n", buf);
-}
-
--- a/lisp/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,85 @@
+2009-12-21  Adrian Aichner  <adrian@xemacs.org>
+
+	* package-get.el (package-get-download-sites): Remove
+	dk.xemacs.org from list of package download sites.
+	* package-get.el (package-get-pre-release-download-sites): Ditto.
+
+2009-12-21  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule/arabic.el (arabic-iso8859-6): 
+	Move the creation of this character set to this (dumped) file,
+	since it's needed for input on X11. 
+	* mule/iso-with-esc.el: 
+	Remove arabic-iso8859-6 and its Unicode map from this file.
+	* unicode.el (load-unicode-tables): 
+	Load arabic-iso8859-6 on startup again.
+
+2009-12-18  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* alist.el (modify-alist): 
+	* autoload.el (update-autoload-files, autoload-print-form): 
+	* bytecomp.el (batch-byte-compile-1)
+	(byte-compile-multiple-value-call, byte-compile-funcall)
+	(byte-compile-insert, byte-compile-concat, byte-compile-list)
+	(byte-compile-normal-call, byte-compile-flush-pending): 
+	* cl-macs.el (letf): 
+	* cl.el:
+	* disass.el (disassemble-1): 
+	* easy-mmode.el (easy-mmode-define-syntax): 
+	* faces.el (set-face-parent): 
+	* files.el (cd): 
+	* finder.el (finder-list-matches, finder-list-keywords)
+	(finder-compile-keywords): 
+	* frame.el (frame-notice-user-settings)
+	(frame-remove-geometry-props): 
+	* ldap.el (ldap-delete-entries, ldap-modify-entries)
+	(ldap-add-entries): 
+	* loadhist.el (unload-feature): 
+	* map-ynp.el (map-y-or-n-p): 
+	* menubar-items.el (default-menubar): 
+	* mouse.el (default-mouse-track-next-move-rect)
+	(default-mouse-track-next-move-rect)
+	(default-mouse-track-cleanup-hook)
+	(default-mouse-track-cleanup-extent): 
+	* mule/ethio-util.el (ethio-fidel-to-sera-buffer)
+	(ethio-modify-vowel): 
+	* obsolete.el: 
+	* package-get.el (package-get-update-all): 
+	* package-ui.el (pui-list-packages)
+	(pui-install-selected-packages, pui-install-selected-packages): 
+	* select.el (select-make-extent-for-selection)
+	(dehilight-selection): 
+	* simple.el (clone-buffer): 
+	* term/tvi970.el: 
+	* term/wyse50.el: 
+	* unicode.el: 
+	(load-unicode-tables): 
+	* x-font-menu.el (fc-make-font-menu-entry)
+	(x-reset-device-font-menus-xft): 
+	* x-misc.el (x-init-specifier-from-resources): 
+	Eliminate byte-compile warnings, with the exception of Stephen's
+	various non-defined fontconfig functions, as I don't know if he
+	plans to add them and is keeping the warnings around as a
+	reminder. The warnings actually eliminated involve i) using mapcar
+	instead of mapc where the result is discarded and ii) using a
+	lambda quoted as data in a context where it is unequivocally used
+	as a function. 
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule/make-coding-system.el
+	(fixed-width-create-decode-encode-tables):
+	Use a rehash threshold of 0.999 for this hash table, now that hash
+	table rehash thresholds are serialised correctly; these hash
+	tables will never be resized, and it's not even that important
+	that they are *that* fast, for most of the coding systems they're
+	used a minority of the time.
+
+2009-12-05  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* font.el (x-font-create-object): Check for Xft before using it.
+	This fixes the symptom in openSUSE bug #558764.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* device.el (device-type): Remove (mostly imaginary) support for
@@ -61,6 +143,13 @@
 	* buffer.el (switch-to-buffer): Don't offer the current buffer in
 	the completion list.
 
+2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* bytecomp.el (save-window-excursion): 
+	Remove the compiler form for this bytecode, we no longer generate
+	calls to it. Keep the information about the bytecode's numeric
+	value, we want that for disassembling code.
+
 2009-11-01  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* cl-extra.el (equalp): 
@@ -95,6 +184,20 @@
 	(narrow-to-defun):
 	Document that optional ARG is ignored.
 
+2009-11-01  Stephen Turnbull  <stephen@xemacs.org>
+
+	* faces.el (Face-frob-property):
+	Give mapper for TTYs 2 args.
+	(make-face-family):
+	(make-face-size):
+	Generic mapper ignores TTYs and null devices.
+	(make-face-bold):
+	(make-face-italic):
+	(make-face-bold-italic):
+	(make-face-unbold):
+	(make-face-unitalic):
+	TTY mapper takes 2 args.
+
 2009-10-09  Stephen Turnbull  <stephen@xemacs.org>
 
 	* lisp.el (beginning-of-defun-function):
--- a/lisp/alist.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/alist.el	Tue Dec 22 19:07:40 2009 +0900
@@ -89,11 +89,11 @@
 ;;;###autoload
 (defun modify-alist (modifier default)
   "Modify alist DEFAULT into alist MODIFIER."
-  (mapcar (function
-	   (lambda (as)
-	     (setq default (put-alist (car as)(cdr as) default))
-	     ))
-	  modifier)
+  (mapc
+   (function
+    (lambda (as)
+      (setq default (put-alist (car as)(cdr as) default))))
+   modifier)
   default)
 
 ;;;###autoload
--- a/lisp/autoload.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/autoload.el	Tue Dec 22 19:07:40 2009 +0900
@@ -767,10 +767,10 @@
 		  ;;#### FSF 21.2 (print-escape-nonascii t)
 		  (p (point outbuf))
 		  p2)
-	      (mapcar #'(lambda (elt)
-			  (prin1 elt outbuf)
-			  (princ " " outbuf))
-		      form)
+	      (mapc #'(lambda (elt)
+                        (prin1 elt outbuf)
+                        (princ " " outbuf))
+                    form)
 	      (with-current-buffer outbuf
 		(setq p2 (point-marker))
 		(goto-char p)
@@ -1021,8 +1021,8 @@
 		  (search-forward generate-autoload-section-trailer)
 		  (delete-region begin (point)))))
 	    ;; Update or create autoload sections for existing files.
-	    (mapcar 'update-file-autoloads
-		    (directory-files arg t "^[^=].*\\.\\(el\\|c\\)$")))))
+	    (mapc 'update-file-autoloads
+                  (directory-files arg t "^[^=].*\\.\\(el\\|c\\)$")))))
        ((file-exists-p arg)
 	(setq generated-autoload-file
 	      (or into-file (expand-file-name autoload-file-name
--- a/lisp/bytecomp.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/bytecomp.el	Tue Dec 22 19:07:40 2009 +0900
@@ -684,7 +684,7 @@
 
 (byte-defop 138  0 byte-save-excursion
   "to make a binding to record the buffer, point and mark")
-(byte-defop 139  0 byte-save-window-excursion
+(byte-defop 139  0 byte-save-window-excursion ; almost obsolete
   "to make a binding to record entire window configuration")
 (byte-defop 140  0 byte-save-restriction
   "to make a binding to record the current buffer clipping restrictions")
@@ -2071,7 +2071,7 @@
   (if byte-compile-output
       (let ((form (byte-compile-out-toplevel t 'file)))
 	(cond ((eq (car-safe form) 'progn)
-	       (mapcar 'byte-compile-output-file-form (cdr form)))
+	       (mapc 'byte-compile-output-file-form (cdr form)))
 	      (form
 	       (byte-compile-output-file-form form)))
 	(setq byte-compile-constants nil
@@ -2862,7 +2862,7 @@
   (if byte-compile-generate-call-tree
       (byte-compile-annotate-call-tree form))
   (byte-compile-push-constant (car form))
-  (mapcar 'byte-compile-form (cdr form)) ; wasteful, but faster.
+  (mapc 'byte-compile-form (cdr form)) ; wasteful, but faster.
   (byte-compile-out 'byte-call (length (cdr form))))
 
 ;; kludge added to XEmacs to work around the bogosities of a nonlexical lisp.
@@ -3392,12 +3392,12 @@
      ((= nargs 0)
       (byte-compile-constant nil))
      ((< nargs 5)
-      (mapcar 'byte-compile-form args)
+      (mapc 'byte-compile-form args)
       (byte-compile-out
        (aref [byte-list1 byte-list2 byte-list3 byte-list4] (1- nargs))
        0))
      ((< nargs 256)
-      (mapcar 'byte-compile-form args)
+      (mapc 'byte-compile-form args)
       (byte-compile-out 'byte-listN nargs))
      (t (byte-compile-normal-call form)))))
 
@@ -3407,14 +3407,14 @@
     ;; Concat of one arg is not a no-op if arg is not a string.
     (cond
      ((memq nargs '(2 3 4))
-      (mapcar 'byte-compile-form args)
+      (mapc 'byte-compile-form args)
       (byte-compile-out
        (aref [byte-concat2 byte-concat3 byte-concat4] (- nargs 2))
        0))
      ((eq nargs 0)
       (byte-compile-form ""))
      ((< nargs 256)
-      (mapcar 'byte-compile-form args)
+      (mapc 'byte-compile-form args)
       (byte-compile-out 'byte-concatN nargs))
      ((byte-compile-normal-call form)))))
 
@@ -3588,7 +3588,7 @@
   (cond ((null (cdr form))
 	 (byte-compile-constant nil))
 	((<= (length form) 256)
-	 (mapcar 'byte-compile-form (cdr form))
+	 (mapc 'byte-compile-form (cdr form))
 	 (if (cdr (cdr form))
 	     (byte-compile-out 'byte-insertN (length (cdr form)))
 	   (byte-compile-out 'byte-insert 0)))
@@ -3945,7 +3945,7 @@
     (setq for-effect nil)))
 
 (defun byte-compile-funcall (form)
-  (mapcar 'byte-compile-form (cdr form))
+  (mapc 'byte-compile-form (cdr form))
   (byte-compile-out 'byte-call (length (cdr (cdr form)))))
 
 
@@ -4029,7 +4029,6 @@
 (byte-defop-compiler-1 save-excursion)
 (byte-defop-compiler-1 save-current-buffer)
 (byte-defop-compiler-1 save-restriction)
-(byte-defop-compiler-1 save-window-excursion)
 (byte-defop-compiler-1 with-output-to-temp-buffer)
 ;; no track-mouse.
 
@@ -4128,11 +4127,6 @@
     (byte-compile-body-do-effect (cdr form))
     (byte-compile-out 'byte-unbind 1)))
 
-(defun byte-compile-save-window-excursion (form)
-  (byte-compile-push-constant
-   (byte-compile-top-level-body (cdr form) for-effect))
-  (byte-compile-out 'byte-save-window-excursion 0))
-
 (defun byte-compile-with-output-to-temp-buffer (form)
   (byte-compile-form (car (cdr form)))
   (byte-compile-out 'byte-temp-output-buffer-setup 0)
@@ -4154,7 +4148,7 @@
     ;; and pushes a new value, the specpdl_depth() at the time it was
     ;; called.
     (byte-compile-out 'byte-bind-multiple-value-limits 0)
-    (mapcar 'byte-compile-form (cdr form))
+    (mapc 'byte-compile-form (cdr form))
     ;; Most of the other code puts this sort of value in the program stream,
     ;; not pushing it on the stack.
     (byte-compile-push-constant (+ 3 (length form)))
@@ -4586,7 +4580,7 @@
      (if (fboundp 'display-error) ; XEmacs 19.8+
 	 (display-error err nil)
        (princ (or (get (car err) 'error-message) (car err)))
-       (mapcar #'(lambda (x) (princ " ") (prin1 x)) (cdr err)))
+       (mapc #'(lambda (x) (princ " ") (prin1 x)) (cdr err)))
      (princ "\n")
      nil)))
 
--- a/lisp/cl-macs.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/cl-macs.el	Tue Dec 22 19:07:40 2009 +0900
@@ -2637,8 +2637,7 @@
 			  (gensym "--letf-val--")))
                (syms (and (eq 'values (car place))
                           (gensym "--letf-syms--")))
-               (cursor (and syms (gensym "--letf-cursor--")))
-               (sym (and syms (gensym "--letf-sym--"))))
+               (cursor (and syms (gensym "--letf-cursor--"))))
 	  (setq lets (nconc (car method)
                             (cond
                              (syms
--- a/lisp/cl.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/cl.el	Tue Dec 22 19:07:40 2009 +0900
@@ -644,9 +644,9 @@
 ;; XEmacs change: omit the autoload rules; we handle those a different way
 
 ;;; Define data for indentation and edebug.
-(mapcar
+(mapc-internal
  #'(lambda (entry)
-     (mapcar
+     (mapc-internal
       #'(lambda (func)
 	  (put func 'lisp-indent-function (nth 1 entry))
 	  (put func 'lisp-indent-hook (nth 1 entry))
--- a/lisp/disass.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/disass.el	Tue Dec 22 19:07:40 2009 +0900
@@ -247,7 +247,7 @@
 			 (+ indent disassemble-recursive-indent)))
 		       ((eq (car-safe (car-safe arg)) 'byte-code)
 			(insert "(<byte code>...)\n")
-			(mapcar		;recurse on list of byte-code objects
+			(mapc		;recurse on list of byte-code objects
 			 #'(lambda (obj)
 			     (disassemble-1
 			      obj
--- a/lisp/easy-mmode.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/easy-mmode.el	Tue Dec 22 19:07:40 2009 +0900
@@ -525,7 +525,7 @@
       (let ((char (car cs))
 	    (syntax (cdr cs)))
 	(if (sequencep char)
-	    (mapcar (lambda (c) (modify-syntax-entry c syntax st)) char)
+	    (mapc (lambda (c) (modify-syntax-entry c syntax st)) char)
 	  (modify-syntax-entry char syntax st))))
     ;; XEmacs change: we do not have set-char-table-parent
     (if parent (derived-mode-merge-syntax-tables
--- a/lisp/faces.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/faces.el	Tue Dec 22 19:07:40 2009 +0900
@@ -407,11 +407,11 @@
   "Set the parent of FACE to PARENT, for all properties.
 This makes all properties of FACE inherit from PARENT."
   (setq parent (get-face parent))
-  (mapcar (lambda (x)
-	    (set-face-property face x (vector parent) locale tag-set
-			       how-to-add))
-	  (set-difference built-in-face-specifiers
-			  '(display-table background-pixmap inherit)))
+  (mapc (lambda (x)
+          (set-face-property face x (vector parent) locale tag-set
+                             how-to-add))
+        (set-difference built-in-face-specifiers
+                        '(display-table background-pixmap inherit)))
   (set-face-background-pixmap face (vector 'inherit ':face parent)
 			      locale tag-set how-to-add)
   nil)
@@ -933,10 +933,11 @@
   ;; and EXACT-P are as in that call.  UNFROBBED-FACE and FROBBED-FACE are
   ;; what we expect the original face and the result to look like,
   ;; respectively.  TTY-PROPS is a list of face properties to frob in place
-  ;; of `font' for TTY's.  FROB-MAPPING is either a plist mapping device
+  ;; of `font' for TTYs.  FROB-MAPPING is either a plist mapping device
   ;; types to functions of two args (NAME DEVICE) that will frob the
-  ;; instantiator as appropriate for the device type (this includes TTY's),
-  ;; or a function to handle the mapping for all device types.
+  ;; instantiator to NAME as appropriate for DEVICE's type (this includes
+  ;; TTYs #### TTYs are not passed the device, just the symbol 'tty), or a
+  ;; function to handle the mapping for all device types.
   ;; STANDARD-FACE-MAPPING is an alist of mappings of inheritance
   ;; instantiators to be replaced with other inheritance instantiators, meant
   ;; for e.g. converting [bold] into [bold-italic].
@@ -1038,7 +1039,11 @@
 			       (t
 				(let ((value
 				       (if (eq devtype-spec 'tty)
-					   (funcall mapper x)
+					   ;; #### not quite right but need
+					   ;; two args to match documentation
+					   ;; mostly we just ignore TTYs so
+					   ;; for now just pass the devtype
+					   (funcall mapper x 'tty)
 					 (funcall mapper x
 						  (derive-domain-from-locale
 						   locale devtype-spec
@@ -1193,11 +1198,16 @@
 
   (Face-frob-property face locale tags exact-p
 		      nil nil 'font nil
+		      ;; #### this code is duplicated in make-face-size
 		      `(lambda (f d)
-			  ;; keep the dependency on font.el for now
-			  (let ((fo (font-create-object f d)))
-			    (set-font-family fo ,family)
-			    (font-create-name fo d)))
+			 ;; keep the dependency on font.el for now
+			 ;; #### The filter on null d is a band-aid.
+			 ;; Frob-face-property should not be passing in
+			 ;; null devices.
+			 (unless (or (null d) (eq d 'tty))
+			   (let ((fo (font-create-object f d)))
+			     (set-font-family fo ,family)
+			     (font-create-name fo d))))
 		      nil))
 
 ;; Style (ie, typographical face) frobbing
@@ -1311,7 +1321,7 @@
   (interactive (list (read-face-name "Make which face bold: ")))
   (Face-frob-property face locale tags exact-p
 		      'default 'bold 'font '(highlight)
-		      '(tty		(lambda (x) t)
+		      '(tty		(lambda (f d) t)
 			x		x-make-font-bold
 			gtk		gtk-make-font-bold
 			mswindows	mswindows-make-font-bold
@@ -1330,7 +1340,7 @@
   (interactive (list (read-face-name "Make which face italic: ")))
   (Face-frob-property face locale tags exact-p
 		      'default 'italic 'font '(underline)
-		      '(tty		(lambda (x) t)
+		      '(tty		(lambda (f d) t)
 			x		x-make-font-italic
 			gtk		gtk-make-font-italic
 			mswindows	mswindows-make-font-italic
@@ -1349,7 +1359,7 @@
   (interactive (list (read-face-name "Make which face bold-italic: ")))
   (Face-frob-property face locale tags exact-p
 		      'default 'bold-italic 'font '(underline highlight)
-		      '(tty		(lambda (x) t)
+		      '(tty		(lambda (f d) t)
 			x		x-make-font-bold-italic
 			gtk		gtk-make-font-bold-italic
 			mswindows	mswindows-make-font-bold-italic
@@ -1369,7 +1379,7 @@
   (interactive (list (read-face-name "Make which face non-bold: ")))
   (Face-frob-property face locale tags exact-p
 		      'bold 'default 'font '(highlight)
-		      '(tty		(lambda (x) nil)
+		      '(tty		(lambda (f d) nil)
 			x		x-make-font-unbold
 			gtk		gtk-make-font-unbold
 			mswindows	mswindows-make-font-unbold
@@ -1388,7 +1398,7 @@
   (interactive (list (read-face-name "Make which face non-italic: ")))
   (Face-frob-property face locale tags exact-p
 		      'italic 'default 'font '(underline)
-		      '(tty		(lambda (x) nil)
+		      '(tty		(lambda (f d) nil)
 			x		x-make-font-unitalic
 			gtk		gtk-make-font-unitalic
 			mswindows	mswindows-make-font-unitalic
@@ -1408,11 +1418,16 @@
 		     (read-number "Size to set: " t 10)))
   (Face-frob-property face locale tags exact-p
 		      nil nil 'font nil
+		      ;; #### this code is duplicated in make-face-family
 		      `(lambda (f d)
 			 ;; keep the dependency on font.el for now
-			 (let ((fo (font-create-object f d)))
-			   (set-font-size fo ,size)
-			   (font-create-name fo d)))
+			 ;; #### The filter on null d is a band-aid.
+			 ;; Frob-face-property should not be passing in
+			 ;; null devices.
+			 (unless (or (null d) (eq d 'tty))
+			   (let ((fo (font-create-object f d)))
+			     (set-font-size fo ,size)
+			     (font-create-name fo d))))
 		      nil))
 
 ;; Why do the following two functions lose so badly in so many
--- a/lisp/files.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/files.el	Tue Dec 22 19:07:40 2009 +0900
@@ -607,13 +607,13 @@
 			       (mapcar #'file-name-as-directory trypath))
 			  (list (file-name-as-directory "")))))
       (or (catch 'found
-	    (mapcar #'(lambda (x)
-			(let ((f (expand-file-name (concat x dir))))
-			  (if (file-directory-p f)
-			      (progn
-				(cd-absolute f)
-				(throw 'found t)))))
-		    cd-path)
+	    (mapc #'(lambda (x)
+                      (let ((f (expand-file-name (concat x dir))))
+                        (if (file-directory-p f)
+                            (progn
+                              (cd-absolute f)
+                              (throw 'found t)))))
+                  cd-path)
 	    nil)
 	  ;; jwz: give a better error message to those of us with the
 	  ;; good taste not to use a kludge like $CDPATH.
--- a/lisp/finder.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/finder.el	Tue Dec 22 19:07:40 2009 +0900
@@ -172,7 +172,7 @@
       (insert ";; Don't edit this file.  It's generated by finder.el\n\n")
       (insert ";;; Code:\n")
       (insert "\n(defconst finder-package-info '(\n")
-      (mapcar
+      (mapc
        (lambda (d)
 	 (mapcar
 	  (lambda (f) 
@@ -243,7 +243,7 @@
   (interactive)
   (setq buffer-read-only nil)
   (erase-buffer)
-  (mapcar
+  (mapc
    (lambda (assoc)
      (let ((keyword (car assoc)))
        (insert (symbol-name keyword))
@@ -266,7 +266,7 @@
     (insert
      "The following packages match the keyword `" key "':\n\n")
     (setq finder-headmark (point))
-    (mapcar
+    (mapc
      (lambda (x)
        (if (memq id (car (cdr (cdr x))))
 	   (progn
--- a/lisp/font.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/font.el	Tue Dec 22 19:07:40 2009 +0900
@@ -569,6 +569,7 @@
     (if (or (not (stringp fontname))
 	    (not (string-match font-x-font-regexp fontname)))
 	(if (and (stringp fontname)
+		 (featurep 'xft-fonts)
 		 (string-match font-xft-font-regexp fontname))
 	    ;; Return an XFT font. 
 	    (xft-font-create-object fontname)
--- a/lisp/frame.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/frame.el	Tue Dec 22 19:07:40 2009 +0900
@@ -499,7 +499,7 @@
 
 		      ;; Wean the frames using frame-initial-frame as
 		      ;; their minibuffer frame.
-		      (mapcar
+		      (mapc
 		       #'(lambda (frame)
 			   (set-frame-property frame 'minibuffer
 					       new-minibuffer))
@@ -750,15 +750,15 @@
 Emacs uses this to avoid overriding explicit moves and resizings from
 the user during startup."
   (setq plist (canonicalize-lax-plist (copy-sequence plist)))
-  (mapcar #'(lambda (property)
-	      (if (lax-plist-member plist property)
-		  (progn
-		    (setq frame-initial-geometry-arguments
-			  (cons property
-				(cons (lax-plist-get plist property)
-				      frame-initial-geometry-arguments)))
-		    (setq plist (lax-plist-remprop plist property)))))
-	  '(height width top left user-size user-position))
+  (mapc #'(lambda (property)
+            (if (lax-plist-member plist property)
+                (progn
+                  (setq frame-initial-geometry-arguments
+                        (cons property
+                              (cons (lax-plist-get plist property)
+                                    frame-initial-geometry-arguments)))
+                  (setq plist (lax-plist-remprop plist property)))))
+        '(height width top left user-size user-position))
   plist)
 
 ;; XEmacs change: Emacs has focus-follows-mouse here, which lets them
--- a/lisp/ldap.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/ldap.el	Tue Dec 22 19:07:40 2009 +0900
@@ -533,13 +533,13 @@
     (setq ldap (ldap-open host host-plist))
     (if ldap-verbose
 	(message "Adding LDAP entries..."))
-    (mapcar (function
-	     (lambda (thisentry)
-	       (ldap-add ldap (car thisentry) (cdr thisentry))
-	       (if ldap-verbose
-		   (message "%d added" i))
-	       (setq i (1+ i))))
-	    entries)
+    (mapc (function
+           (lambda (thisentry)
+             (ldap-add ldap (car thisentry) (cdr thisentry))
+             (if ldap-verbose
+                 (message "%d added" i))
+             (setq i (1+ i))))
+          entries)
     (ldap-close ldap)))
 
 
@@ -549,7 +549,7 @@
   (DN MOD-SPEC1 MOD-SPEC2 ...) where DN is the distinguished name of
 the entry to modify, the following are modification specifications.
 A modification specification is itself a list of the form
-(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory,
+\(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory,
 VALUEs are optional depending on MOD-OP.
 MOD-OP is the type of modification, one of the symbols `add', `delete'
 or `replace'. ATTR is the LDAP attribute type to modify.
@@ -573,13 +573,13 @@
     (setq ldap (ldap-open host host-plist))
     (if ldap-verbose
 	(message "Modifying LDAP entries..."))
-    (mapcar (function
-	     (lambda (thisentry)
-	       (ldap-modify ldap (car thisentry) (cdr thisentry))
-	       (if ldap-verbose
-		   (message "%d modified" i))
-	       (setq i (1+ i))))
-	    entry-mods)
+    (mapc (function
+           (lambda (thisentry)
+             (ldap-modify ldap (car thisentry) (cdr thisentry))
+             (if ldap-verbose
+                 (message "%d modified" i))
+             (setq i (1+ i))))
+          entry-mods)
     (ldap-close ldap)))
 
 
@@ -608,13 +608,13 @@
 	(let ((i 1))
 	  (if ldap-verbose
 	      (message "Deleting LDAP entries..."))
-	  (mapcar (function
-		   (lambda (thisdn)
-		     (ldap-delete ldap thisdn)
-		     (if ldap-verbose
-			 (message "%d deleted" i))
-		     (setq i (1+ i))))
-		  dn))
+	  (mapc (function
+                 (lambda (thisdn)
+                   (ldap-delete ldap thisdn)
+                   (if ldap-verbose
+                       (message "%d deleted" i))
+                   (setq i (1+ i))))
+                dn))
       (if ldap-verbose
 	  (message "Deleting LDAP entry..."))
       (ldap-delete ldap dn))
--- a/lisp/loadhist.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/loadhist.el	Tue Dec 22 19:07:40 2009 +0900
@@ -177,7 +177,7 @@
     (flet ((reset-aload (x)
 	     (let ((aload (get x 'autoload)))
 	       (if aload (fset x (cons 'autoload aload))))))
-    (mapcar
+    (mapc
      #'(lambda (x)
 	 (cond ((stringp x) nil)
 	       ((consp x)
--- a/lisp/map-ynp.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/map-ynp.el	Tue Dec 22 19:07:40 2009 +0900
@@ -141,14 +141,14 @@
 	    ;; its definition.
 	    ;; XEmacs
 	    map (let ((foomap (make-sparse-keymap)))
-		  (mapcar #'(lambda (elt)
-			      (define-key
-				foomap
-				(if (characterp (car elt))
-				    (char-to-string (car elt))
-				  (car elt))
-				(vector (nth 1 elt))))
-			  action-alist)
+		  (mapc #'(lambda (elt)
+                            (define-key
+                              foomap
+                              (if (characterp (car elt))
+                                  (char-to-string (car elt))
+                                (car elt))
+                              (vector (nth 1 elt))))
+                        action-alist)
 		  (set-keymap-parents foomap (list query-replace-map))
 		  foomap)))
     (unwind-protect
--- a/lisp/menubar-items.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/menubar-items.el	Tue Dec 22 19:07:40 2009 +0900
@@ -247,7 +247,7 @@
 		      (submenu-generate-accelerator-spec
 		       (mapcar #'(lambda (bmk)
 				   `[,bmk (bookmark-jump ',bmk)])
-			       (bookmark-all-names)))))
+			       (declare-fboundp (bookmark-all-names))))))
 		 (append menu '("---") items)))))
       "---"
       ["Insert %_Contents" bookmark-menu-insert
--- a/lisp/mouse.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/mouse.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1003,7 +1003,7 @@
       (let ((tmp start)) (setq start end end tmp)))
   (cond
    ((= start end)		; never delete the last remaining extent
-    (mapcar 'delete-extent (cdr extents))
+    (mapc 'delete-extent (cdr extents))
     (setcdr extents nil)
     (set-extent-endpoints (car extents) start start))
    (t
@@ -1049,7 +1049,7 @@
 	    (setq last rest
 		  rest (cdr rest)))
 	  (cond (rest
-		 (mapcar 'delete-extent rest)
+		 (mapc 'delete-extent rest)
 		 (setcdr last nil))
 		((not (eobp))
 		 (while (not (eobp))
@@ -1320,7 +1320,7 @@
 			 (set-extent-face e 'primary-selection)))))
       (add-hook 'pre-command-hook 'default-mouse-track-cleanup-extents-hook)
       (if (consp extent)		; rectangle-p
-	  (mapcar func extent)
+	  (mapc func extent)
 	(if extent
 	    (funcall func extent)))))
   t)
@@ -1334,10 +1334,10 @@
     (if (consp extent)
 	(if (funcall dead-func extent)
 	    (let (newval)
-	      (mapcar (function (lambda (x)
-				  (if (not (funcall dead-func x))
-				      (setq newval (cons x newval)))))
-		      extent)
+	      (mapc (function (lambda (x)
+                                (if (not (funcall dead-func x))
+                                    (setq newval (cons x newval)))))
+                    extent)
 	      (setq default-mouse-track-extent (nreverse newval))))
       (if (funcall dead-func extent)
 	  (setq default-mouse-track-extent nil)))))
--- a/lisp/mule/arabic.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/mule/arabic.el	Tue Dec 22 19:07:40 2009 +0900
@@ -28,8 +28,34 @@
 
 ;;; Code:
 
-;; See iso-with-esc.el for commentary on the ISO standard Arabic character
-;; set.
+;; ISO 8859-6 is such a useless character set that it seems a waste of
+;; codespace to dump it. Let me count the ways: 
+;; 
+;; 1. It doesn't support Persian or Urdu, let alone Sinhalese, despite
+;;    plenty of unallocated code points.
+;;
+;; 2. It doesn't encode all the vowel diacritics (the Harakaat) despite that
+;;    they are necessary, even for the Arabs, for basic things like
+;;    dictionary entries, children's books, and occasional disambiguation.
+;;
+;; 3. The Arabs don't use it, they use Windows-1256, which also supports
+;;    Persian, at least, as well as the French characters necessary in
+;;    Lebanon and North Africa.
+
+;; But; it's necessary for input on X11.
+
+(make-charset
+ 'arabic-iso8859-6 
+ "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
+ '(dimension 1
+   registry "ISO8859-6"
+   chars 96
+   columns 1
+   direction r2l
+   final ?G
+   graphic 1
+   short-name "RHP of ISO8859/6"
+   long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"))
 
 (make-coding-system
  'iso-8859-6 'fixed-width "ISO 8859-6 (Arabic)"
--- a/lisp/mule/ethio-util.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/mule/ethio-util.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1055,7 +1055,7 @@
       (aset ethio-fidel-to-sera-map 359 "`?")
       (aset ethio-fidel-to-sera-map 463 "?"))
 
-    (mapcar
+    (mapc
      #'(lambda (x)
          (aset (aref ethio-fidel-to-sera-map x)
                2
@@ -1300,7 +1300,10 @@
 
     (cond
      ;; in case of gemination
-     ((eq (char-charset ch) 'composition)
+     ;; XEmacs change; the (and nil ...) eliminates a warning about using
+     ;; decompose-composite-char. The name of the composite charset is
+     ;; composite, anyway, not composition; and it has never worked. 
+     ((and nil (eq (char-charset ch) 'composition))
       (setq ch (string-to-char (decompose-composite-char ch))
 	    composite t))
      ;; neither gemination nor fidel
--- a/lisp/mule/iso-with-esc.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/mule/iso-with-esc.el	Tue Dec 22 19:07:40 2009 +0900
@@ -120,89 +120,6 @@
    safe-charsets (ascii greek-iso8859-7)
    mnemonic "Grk"))
 
-;; ISO 8859-6 is such a useless character set that it seems a waste of
-;; codespace to dump it. Let me count the ways: 
-;; 
-;; 1. It doesn't support Persian or Urdu, let alone Sinhalese, despite
-;;    plenty of unallocated code points.
-;;
-;; 2. It doesn't encode all the vowel diacritics (the Harakaat) despite that
-;;    they are necessary, even for the Arabs, for basic things like
-;;    dictionary entries, children's books, and occasional disambiguation.
-;;
-;; 3. The Arabs don't use it, they use Windows-1256, which also supports
-;;    Persian, at least, as well as the French characters necessary in
-;;    Lebanon and North Africa.
-
-(make-charset
- 'arabic-iso8859-6 
- "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
- '(dimension 1
-   registry "ISO8859-6"
-   chars 96
-   columns 1
-   direction r2l
-   final ?G
-   graphic 1
-   short-name "RHP of ISO8859/6"
-   long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"))
-
-(loop
-  for (iso8859-6 unicode)
-  in '((#xA0 #x00A0) ;; NO-BREAK SPACE
-       (#xA4 #x00A4) ;; CURRENCY SIGN
-       (#xAC #x060C) ;; ARABIC COMMA
-       (#xAD #x00AD) ;; SOFT HYPHEN
-       (#xBB #x061B) ;; ARABIC SEMICOLON
-       (#xBF #x061F) ;; ARABIC QUESTION MARK
-       (#xC1 #x0621) ;; ARABIC LETTER HAMZA
-       (#xC2 #x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
-       (#xC3 #x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
-       (#xC4 #x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
-       (#xC5 #x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
-       (#xC6 #x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
-       (#xC7 #x0627) ;; ARABIC LETTER ALEF
-       (#xC8 #x0628) ;; ARABIC LETTER BEH
-       (#xC9 #x0629) ;; ARABIC LETTER TEH MARBUTA
-       (#xCA #x062A) ;; ARABIC LETTER TEH
-       (#xCB #x062B) ;; ARABIC LETTER THEH
-       (#xCC #x062C) ;; ARABIC LETTER JEEM
-       (#xCD #x062D) ;; ARABIC LETTER HAH
-       (#xCE #x062E) ;; ARABIC LETTER KHAH
-       (#xCF #x062F) ;; ARABIC LETTER DAL
-       (#xD0 #x0630) ;; ARABIC LETTER THAL
-       (#xD1 #x0631) ;; ARABIC LETTER REH
-       (#xD2 #x0632) ;; ARABIC LETTER ZAIN
-       (#xD3 #x0633) ;; ARABIC LETTER SEEN
-       (#xD4 #x0634) ;; ARABIC LETTER SHEEN
-       (#xD5 #x0635) ;; ARABIC LETTER SAD
-       (#xD6 #x0636) ;; ARABIC LETTER DAD
-       (#xD7 #x0637) ;; ARABIC LETTER TAH
-       (#xD8 #x0638) ;; ARABIC LETTER ZAH
-       (#xD9 #x0639) ;; ARABIC LETTER AIN
-       (#xDA #x063A) ;; ARABIC LETTER GHAIN
-       (#xE0 #x0640) ;; ARABIC TATWEEL
-       (#xE1 #x0641) ;; ARABIC LETTER FEH
-       (#xE2 #x0642) ;; ARABIC LETTER QAF
-       (#xE3 #x0643) ;; ARABIC LETTER KAF
-       (#xE4 #x0644) ;; ARABIC LETTER LAM
-       (#xE5 #x0645) ;; ARABIC LETTER MEEM
-       (#xE6 #x0646) ;; ARABIC LETTER NOON
-       (#xE7 #x0647) ;; ARABIC LETTER HEH
-       (#xE8 #x0648) ;; ARABIC LETTER WAW
-       (#xE9 #x0649) ;; ARABIC LETTER ALEF MAKSURA
-       (#xEA #x064A) ;; ARABIC LETTER YEH
-       (#xEB #x064B) ;; ARABIC FATHATAN
-       (#xEC #x064C) ;; ARABIC DAMMATAN
-       (#xED #x064D) ;; ARABIC KASRATAN
-       (#xEE #x064E) ;; ARABIC FATHA
-       (#xEF #x064F) ;; ARABIC DAMMA
-       (#xF0 #x0650) ;; ARABIC KASRA
-       (#xF1 #x0651) ;; ARABIC SHADDA
-       (#xF2 #x0652));; ARABIC SUKUN
-  do (set-unicode-conversion (make-char 'arabic-iso8859-6 iso8859-6)
-                             unicode))
-
 ;;;###autoload
 (make-coding-system
  'arabic-iso-8bit-with-esc 'iso2022  ;; GNU's iso-8859-6 is
--- a/lisp/mule/make-coding-system.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/mule/make-coding-system.el	Tue Dec 22 19:07:40 2009 +0900
@@ -322,7 +322,7 @@
 to 256 distinct characters."
   (check-argument-type #'listp unicode-map)
   (let ((decode-table (make-vector 256 nil))
-        (encode-table (make-hash-table :size 256))
+        (encode-table (make-hash-table :size 256 :rehash-threshold 0.999))
 	(private-use-start (encode-char fixed-width-private-use-start 'ucs))
         (invalid-sequence-code-point-start
          (eval-when-compile
--- a/lisp/obsolete.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/obsolete.el	Tue Dec 22 19:07:40 2009 +0900
@@ -243,7 +243,7 @@
   ;; Don't provide the last three functions unless the menubar feature is
   ;; available. This approach (with #'unintern) avoids warnings about lost
   ;; docstrings since make-docfile doesn't parse bytecode.
-  (mapcar #'unintern '(add-menu-item add-menu package-get-download-menu)))
+  (mapc #'unintern '(add-menu-item add-menu package-get-download-menu)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; minibuffer
 
--- a/lisp/package-get.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/package-get.el	Tue Dec 22 19:07:40 2009 +0900
@@ -227,7 +227,6 @@
 ;     ("Chile (cl.xemacs.org)" "ftp.cl.xemacs.org" "packages")
     ("China (ftp.cn.xemacs.org)" "ftp.cn.xemacs.org" "pub/xemacs/packages")
     ("Czech Republic (cz.xemacs.org)" "ftp.cz.xemacs.org" "MIRRORS/ftp.xemacs.org/pub/xemacs/packages")
-    ("Denmark (dk.xemacs.org)" "ftp.dk.xemacs.org" "xemacs/packages")
     ("Finland (fi.xemacs.org)" "ftp.fi.xemacs.org" "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/packages")
     ("France (fr.xemacs.org)" "ftp.fr.xemacs.org" "pub/xemacs/packages")
     ("France (mirror.cict.fr)" "mirror.cict.fr" "xemacs/packages")
@@ -302,8 +301,6 @@
      "pub/xemacs/beta/experimental/packages")
     ("Czech Republic Pre-Releases (cz.xemacs.org)" "ftp.cz.xemacs.org"
      "MIRRORS/ftp.xemacs.org/pub/xemacs/xemacs-21.5/experimental/packages")
-    ("Denmark Pre-Releases (dk.xemacs.org)" "ftp.dk.xemacs.org"
-     "xemacs/beta/experimental/packages")
     ("Finland Pre-Releases (fi.xemacs.org)" "ftp.fi.xemacs.org"
      "pub/mirrors/ftp.xemacs.org/pub/tux/xemacs/beta/experimental/packages")
     ("France Pre-Releases (fr.xemacs.org)" "ftp.fr.xemacs.org"
@@ -667,10 +664,10 @@
   (package-get-require-base t)
   ;; Load a fresh copy
   (catch 'exit
-    (mapcar (lambda (pkg)
-	      (if (not (package-get (car pkg) nil 'never))
-		  (throw 'exit nil)))		;; Bail out if error detected
-	    packages-package-list))
+    (mapc (lambda (pkg)
+            (if (not (package-get (car pkg) nil 'never))
+                (throw 'exit nil)))		;; Bail out if error detected
+          packages-package-list))
   (package-net-update-installed-db))
 
 ;;;###autoload
--- a/lisp/package-ui.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/package-ui.el	Tue Dec 22 19:07:40 2009 +0900
@@ -350,10 +350,10 @@
 	(kill-buffer tmpbuf))	    
       (when do-delete
 	(message "Deleting selected packages ...") (sit-for 0)
-	(mapcar (lambda (pkg)
-		  (package-admin-delete-binary-package
-		   pkg (package-admin-get-install-dir pkg)))
-		(nreverse pui-deleted-packages))
+	(mapc (lambda (pkg)
+                (package-admin-delete-binary-package
+                 pkg (package-admin-get-install-dir pkg)))
+              (nreverse pui-deleted-packages))
 	(message "Packages deleted"))))
 	 
   (let ((tmpbuf "*Packages-To-Install*") 
@@ -385,11 +385,11 @@
 		  (erase-buffer package-admin-temp-buffer))
 		(message "Installing selected packages ...") (sit-for 0)
 		(if (catch 'done
-		      (mapcar (lambda (pkg)
-				(if (not (package-get pkg nil nil
-                                                      pui-package-install-dest-dir))
-				    (throw 'done nil)))
-			      (nreverse pui-selected-packages))
+		      (mapc (lambda (pkg)
+                              (if (not (package-get pkg nil nil
+                                                    pui-package-install-dest-dir))
+                                  (throw 'done nil)))
+                            (nreverse pui-selected-packages))
 		      t)
 		    (progn
 		      (pui-list-packages)
@@ -615,7 +615,7 @@
 "))
     (insert sep-string)
     (setq start (point))
-    (mapcar
+    (mapc
      #'(lambda (pkg)
 	 (let (pkg-sym info version desc
 		       b e extent current-vers disp)
--- a/lisp/select.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/select.el	Tue Dec 22 19:07:40 2009 +0900
@@ -231,7 +231,7 @@
 	 (if primary-selection-extent
 	     (let ((inhibit-quit t))
 	       (if (consp primary-selection-extent)
-		   (mapcar 'delete-extent primary-selection-extent)
+		   (mapc 'delete-extent primary-selection-extent)
 		 (delete-extent primary-selection-extent))
 	       (setq primary-selection-extent nil)))
 	 (if zmacs-regions (zmacs-deactivate-region)))
@@ -239,7 +239,7 @@
 	 (if secondary-selection-extent
 	     (let ((inhibit-quit t))
 	       (if (consp secondary-selection-extent)
-		   (mapcar 'delete-extent secondary-selection-extent)
+		   (mapc 'delete-extent secondary-selection-extent)
 		 (delete-extent secondary-selection-extent))
 	       (setq secondary-selection-extent nil)))))
   nil)
@@ -324,7 +324,7 @@
 	nil
       (condition-case ()
 	  (if (listp previous-extent)
-	      (mapcar 'delete-extent previous-extent)
+	      (mapc 'delete-extent previous-extent)
 	    (delete-extent previous-extent))
 	(error nil)))
 
--- a/lisp/simple.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/simple.el	Tue Dec 22 19:07:40 2009 +0900
@@ -3716,13 +3716,13 @@
       (funcall mode)
 
       ;; Set up other local variables.
-      (mapcar (lambda (v)
-		(condition-case ()	;in case var is read-only
-		    (if (symbolp v)
-			(makunbound v)
-		      (set (make-local-variable (car v)) (cdr v)))
-		  (error nil)))
-	      lvars)
+      (mapc (lambda (v)
+              (condition-case ()	;in case var is read-only
+                  (if (symbolp v)
+                      (makunbound v)
+                    (set (make-local-variable (car v)) (cdr v)))
+                (error nil)))
+            lvars)
 
       ;; Run any hooks (typically set up by the major mode
       ;; for cloning to work properly).
--- a/lisp/term/tvi970.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/term/tvi970.el	Tue Dec 22 19:07:40 2009 +0900
@@ -34,7 +34,7 @@
 ;;    (define-key function-key-map "\eO" (make-keymap)))
 
 ;; Miscellaneous keys
-(mapcar (function (lambda (key-binding)
+(mapc   (function (lambda (key-binding)
 		    (define-key function-key-map
 		      (car key-binding) (nth 1 key-binding))))
 	'(
--- a/lisp/term/wyse50.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/term/wyse50.el	Tue Dec 22 19:07:40 2009 +0900
@@ -37,7 +37,7 @@
 ;;; Code:
 
 (define-key function-key-map "\C-a" (make-keymap))
-(mapcar (function (lambda (key-definition)
+(mapc   (function (lambda (key-definition)
 		    (define-key function-key-map
 		      (car key-definition) (nth 1 key-definition))))
 	'(
@@ -116,7 +116,7 @@
 M-r	M-x move-to-window-line, Funct up-arrow or down-arrow are similar
 "
   (interactive)
-  (mapcar (function (lambda (key-definition)
+  (mapc   (function (lambda (key-definition)
 		      (global-set-key (car key-definition)
 				      (nth 1 key-definition))))
 	  ;; By unsetting C-a and then binding it to a prefix, we
--- a/lisp/unicode.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/unicode.el	Tue Dec 22 19:07:40 2009 +0900
@@ -73,6 +73,7 @@
 	    ("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80)
 	    ("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80)
 	    ("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80)
+	    ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80)
 	    ("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80)
 	    ("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80)
 	    ("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80)
@@ -135,14 +136,14 @@
 	    ("lao.txt" lao)
 	    )
 	   )))
-    (mapcar #'(lambda (tables)
-		(let ((undir
-		       (expand-file-name (car tables) data-directory)))
-		  (mapcar #'(lambda (args)
-			      (apply 'load-unicode-mapping-table
-				     (expand-file-name (car args) undir)
-				     (cdr args)))
-			  (cdr tables))))
+    (mapc #'(lambda (tables)
+              (let ((undir
+                     (expand-file-name (car tables) data-directory)))
+                (mapc #'(lambda (args)
+                          (apply 'load-unicode-mapping-table
+                                 (expand-file-name (car args) undir)
+                                 (cdr args)))
+                      (cdr tables))))
 	    parse-args)
     ;; The default-unicode-precedence-list. We set this here to default to
     ;; *not* mapping various European characters to East Asian characters;
@@ -619,11 +620,11 @@
   ;; make-docfile.c pick up symbol and function documentation correctly. An
   ;; alternative approach would be to fix make-docfile.c to be able to read
   ;; Lisp.
-  (mapcar #'unintern
-          '(ccl-encode-to-ucs-2 unicode-error-default-translation-table
-            unicode-invalid-regexp-range frob-unicode-errors-region
-            unicode-error-translate-region unicode-query-coding-region
-            unicode-query-coding-skip-chars-arg)))
+  (mapc #'unintern
+        '(ccl-encode-to-ucs-2 unicode-error-default-translation-table
+          unicode-invalid-regexp-range frob-unicode-errors-region
+          unicode-error-translate-region unicode-query-coding-region
+          unicode-query-coding-skip-chars-arg)))
 
 ;; #### UTF-7 is not yet implemented, and it's tricky to do.  There's
 ;; an implementation in appendix A.1 of the Unicode Standard, Version
--- a/lisp/x-font-menu.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/x-font-menu.el	Tue Dec 22 19:07:40 2009 +0900
@@ -119,14 +119,14 @@
     (vector
      family
      (mapcar 
-      '(lambda (weight-symbol) 
-	 (let ((pair (assoc weight-symbol
-			    '((:light "Light")
-			      (:medium "Medium")
-			      (:demibold "Demibold")
-			      (:bold "Bold")
-			      (:black "Black")))))
-	   (if pair (cadr pair))))
+      (lambda (weight-symbol) 
+        (let ((pair (assoc weight-symbol
+                           '((:light "Light")
+                             (:medium "Medium")
+                             (:demibold "Demibold")
+                             (:bold "Bold")
+                             (:black "Black")))))
+          (if pair (cadr pair))))
       weights)
      '(0)
      nil)))
@@ -140,24 +140,24 @@
 	  (vector
 	   (mapcar 'fc-make-font-menu-entry families)
 	   (mapcar 
-	    '(lambda (family)
-	       (vector family `(font-menu-set-font ,family nil nil)
-		       :style 'radio :active nil :selected nil))
+            (lambda (family)
+              (vector family `(font-menu-set-font ,family nil nil)
+                      :style 'radio :active nil :selected nil))
 	    families)
 	   (mapcar
-	    '(lambda (size)
-	       (vector
-		(number-to-string size)
-		`(font-menu-set-font nil nil ,size)
-		:style 'radio :active nil :selected nil))
+	    (lambda (size)
+              (vector
+               (number-to-string size)
+               `(font-menu-set-font nil nil ,size)
+               :style 'radio :active nil :selected nil))
 	    ;; common size list in decipoints, fontconfig wants points
 	    (mapcar (lambda (x) (/ x 10)) font-menu-common-sizes))
 	   (mapcar
-	    '(lambda (weight)
-	       (vector
-		weight
-		`(font-menu-set-font nil ,weight nil)
-		:style 'radio :active nil :selected nil))
+	    (lambda (weight)
+              (vector
+               weight
+               `(font-menu-set-font nil ,weight nil)
+               :style 'radio :active nil :selected nil))
 	    '("Light" "Medium" "Demibold" "Bold" "Black"))))
 	 ;; get or initialize the entry for device
 	 (dev-cache (or (assq device device-fonts-cache)
--- a/lisp/x-misc.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/lisp/x-misc.el	Tue Dec 22 19:07:40 2009 +0900
@@ -60,9 +60,9 @@
 has a spec in LOCALE, nothing is done.) Finally, if LOCALE is 'global,
 a check is done for bogus resource specifications."
   (if (eq locale 'global)
-      (mapcar #'(lambda (x)
-		  (x-bogosity-check-resource (car x) (cdr x) type))
-	      resource-list))
+      (mapc #'(lambda (x)
+                (x-bogosity-check-resource (car x) (cdr x) type))
+            resource-list))
   (if (not (specifier-spec-list specifier locale))
       (catch 'done
 	(while resource-list
--- a/lwlib/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/lwlib-Xlw.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwcheckbox.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwgauge.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwgcs.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwgcs.h	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwradio.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/lwlib/xlwtabs.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/man/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,14 @@
+2009-12-10  Jerry James  <james@xemacs.org>
+
+	* lispref/processes.texi (Functions that Create Subprocesses): Refer
+	to etags instead of the obsolete wakeup program.
+
+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	Fri Nov 27 00:51:41 2009 +0100
+++ b/man/internals/internals.texi	Tue Dec 22 19:07:40 2009 +0900
@@ -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/man/lispref/processes.texi	Fri Nov 27 00:51:41 2009 +0100
+++ b/man/lispref/processes.texi	Tue Dec 22 19:07:40 2009 +0900
@@ -111,12 +111,10 @@
 Environment}.
 
 @defvar exec-directory
-@pindex wakeup
+@pindex etags
 The value of this variable is the name of a directory (a string) that
 contains programs that come with XEmacs, that are intended for XEmacs
-to invoke.  The program @code{wakeup} is an example of such a program;
-the @code{display-time} command uses it to get a reminder once per
-minute.
+to invoke.  The program @code{etags} is an example of such a program.
 @end defvar
 
 @defopt exec-path
--- a/nt/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/nt/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,16 @@
+2009-12-15  Jerry James  <james@xemacs.org>
+
+	* xemacs.mak: Remove build dependency for lib-src/wakeup.  Thanks to
+	Vin Shelton for the patch.
+
+2009-12-14  Jerry James  <james@xemacs.org>
+
+	* installer: Remove unused Wise installer sources.
+
+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/installer/Wise/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-2009-05-18  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.29 "garbanzo" is released.
-
-2007-05-21  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.28 "fuki" is released.
-
-2006-05-16  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.27 "fiddleheads" is released.
-
-2006-03-31  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.26 "endive" is released.
-
-2006-02-26  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.25 "eggplant" is released.
-
-2005-12-18  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.24 "dandelion" is released.
-
-2005-10-26  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.23 "daikon" is released.
-
-2005-09-14  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.22 "cucumber" is released.
-
-2005-05-28  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.21 "corn" is released.
-
-2005-03-11  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.20 "cilantro" is released.
-
-2005-02-18  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.19 "chives" is released.
-
-2004-11-16  Ben Wing  <ben@xemacs.org>
-
-	* display-readme.dlg:
-
-2004-10-22  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.18 "chestnut" is released.
-
-2004-03-22  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.17 "chayote" is released.
-
-2003-09-26  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.16 "celeriac" is released.
-
-2003-09-03  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.15 "celery" is released.
-
-2003-06-01  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.14 "cassava" is released.
-
-2003-05-10  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.13 "cauliflower" is released.
-
-2003-04-24  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.12 "carrot" is released.
-
-2003-02-16  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.11 "cabbage" is released.
-
-2003-01-04  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.10 "burdock" is released.
-
-2002-08-30  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.9 "brussels sprouts" is released.
-
-2002-07-27  Steve Youngs  <youngs@xemacs.org>
-
-	* XEmacs 21.5.8 "broccoli" is released.
-
-2002-07-02  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.7 "broccoflower" is released.
-
-2002-04-05  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.6 "bok choi" is released.
-
-2002-03-12  Ben Wing  <ben@xemacs.org>
-
-	* The Great Mule Merge of March 2002:
-	see node by that name in the Internals Manual.
-
-2002-03-05  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.5 "beets" is released.
-
-2002-01-08  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.4 "bamboo" is released.
-
-2001-09-07  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.3 "asparagus" is released.
-
-2001-07-28  Stephen J. Turnbull  <stephen@xemacs.org>
-
-	* XEmacs 21.5.2 "artichoke" is released.
-
-2001-05-09  Martin Buchholz <martin@xemacs.org>
-
-	* XEmacs 21.5.1 "anise" is released.
-
-2001-04-27  Ben Wing  <ben@xemacs.org>
-
-	* renamed file `display readme.dlg' to display-readme.dlg.
-
--- a/nt/installer/Wise/README	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-To use:
-
-You need to build and install the XEmacs distribution.  Also you need
-the xemacs packages in both source and installed versions.
-
-Edit "dirs.py" to reflect the locations of the above components.
-
-Edit "version.py" to reflect the current version, as well as the
-welcome message.
-
-Run 
-	python pre_wise.py > xemacs-XXX.wse
-
-	(for XXX use a version or date code of your choosing)
-
-Run 
-	cmd /c xemacs-XXX.wse 
-
-to produce xemacs-XXX.exe
-
-
-"pre_wise.py" is a preprocessor for the Wise installer maker.  It
-reads "xemacs.tmpl" which is a Wise input file, except that certain
-portions are enclosed in triple angle brackets <<<like this>>>
-
-These portions are evaluated as Python expressions and replaced by the 
-string representations of the resulting value.  This allows for
-things to change from release to release without having to re-do the
-Wise installation each time.  Also it keeps you from having to
-manually drag-n-drop all the package files, which is rather tedious!
-
--- a/nt/installer/Wise/dirs.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#Configuration variables
-
-#where the source is:
-
-source = r"X:\XEmacs-21"
-#where the installed distribution is:
-installed = r"C:\Program Files\XEmacs\xemacs-21.0-b62"
-
-#where the (built and installed) packages are
-packages = r"C:\Program Files\XEmacs\xemacs-packages"
-
-#where the package source is
-pkg_src = r"X:\xemacs-packages"
-
-#Subdirs relative to the base installation directory
-#Everything except packages goes here:
-dst = "XEmacs-21.0-b62"
-#packages go here:
-pkg_dst = "xemacs-packages"
-
-
--- a/nt/installer/Wise/display-readme.dlg	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-Document Type: DLG
-item: Custom Dialog
-  Name=Display ReadMe
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Read Me File
-    Title French=Fichier Lisez-moi
-    Title German=Liesmich-Datei
-    Title Portuguese=Ficheiro Leia-me
-    Title Spanish=Archivo Léeme
-    Title Italian=File Leggimi
-    Title Danish=Vigtigt fil
-    Title Dutch=Leesmij-bestand
-    Title Norwegian=Informasjonsfil
-    Title Swedish=Läs mig-fil
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=I &Agree >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Slet
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Editbox
-      Rectangle=85 11 254 170
-      Value=%TEMP%\%READMEFILE%
-      Help Context=16711681
-      Create Flags=01010000101000000000100000000100
-    end
-  end
-end
--- a/nt/installer/Wise/el.reg	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-
-REGEDIT4
-
-[HKEY_CLASSES_ROOT\.el]
-@="elfile"
-"Content Type"="text/plain"
-
-[HKEY_CLASSES_ROOT\elfile]
-@="Emacs lisp"
-"EditFlags"=hex:00,00,01,00
-
-[HKEY_CLASSES_ROOT\elfile\Shell]
-@=""
-
-[HKEY_CLASSES_ROOT\elfile\Shell\open]
-
-[HKEY_CLASSES_ROOT\elfile\Shell\open\command]
-@="\"C:\\Program Files\\XEmacs\\XEmacs-21.0\\i386-pc-win32\\runemacs.exe\" \"%1\""
-
-[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec]
-@="open(\"%1\")"
-
-[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec\Application]
-@="XEmacs"
-
-[HKEY_CLASSES_ROOT\elfile\Shell\open\ddeexec\topic]
-@="System"
-
-[HKEY_CLASSES_ROOT\elfile\DefaultIcon]
-@="C:\\Program Files\\XEmacs\\XEmacs-21.0\\i386-pc-win32\\runemacs.exe,2"
-
-[HKEY_CLASSES_ROOT\elfile\QuickView]
-@="*"
-
-
-
--- a/nt/installer/Wise/filelist.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-import os
-import dirs
-import string
-
-def listdir_recursive(basedir):
-    ret = []
-    for f in os.listdir(basedir):
-	if os.path.isfile(basedir+"\\"+f):
-	    ret.append(f)
-	elif os.path.isdir(basedir+"\\"+f):
-	    for f1 in listdir_recursive(basedir+"\\"+f):
-		ret.append(f+"\\"+f1)
-    return ret
-
-all = []
-
-
-
-for f in listdir_recursive(dirs.installed):
-    if string.find(f,'CVS')>=0:
-        continue
-    all.append((f, dirs.installed, dirs.dst))
-    
--- a/nt/installer/Wise/files.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-import os
-import dirs
-
-def listdir_recursive(basedir):
-    ret = []
-    for f in os.listdir(basedir):
-	if os.path.isfile(basedir+"\\"+f):
-	    ret.append(f)
-	elif os.path.isdir(basedir+"\\"+f):
-	    for f1 in listdir_recursive(basedir+"\\"+f):
-		ret.append(f+"\\"+f1)
-    return ret
-
-install = []
-
-for f in os.listdir(dirs.source+"\\lib-src"):
-    if f == "DOC" or f[-4:]==".exe":
-	install.append((f,dirs.source+"\\lib-src",dirs.bin_dst))
-
-
-for f in ['runemacs.exe', 'xemacs.exe']:
-    install.append((f,dirs.source+"\\src",dirs.bin_dst))
-
-for f in listdir_recursive(dirs.source+"\\lisp"):
-    install.append((f,dirs.source+"\\lisp",dirs.lisp_dst))
-
-for f in listdir_recursive(dirs.source+"\\etc"):
-    install.append((f,dirs.source+"\\etc",dirs.etc_dst))
-
-
-for f in os.listdir(dirs.source+"\\info"):
-    install.append((f,dirs.source+"\\info",dirs.info_dst))
-
-
-
-    
Binary file nt/installer/Wise/gnu.bmp has changed
--- a/nt/installer/Wise/libs.dlg	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-Document Type: DLG
-item: Custom Dialog
-  Name=Select Components
-  Display Variable=DISPLAY
-  Flags=00000001
-  item: Dialog
-    Title=Select Components 
-    Title French=Sélectionner les éléments
-    Title German=Komponenten auswählen
-    Title Portuguese=Seleccionar Componentes
-    Title Spanish=Seleccione los Componentes
-    Title Italian=Seleziona Componenti
-    Title Danish=Vælg komponenter
-    Title Dutch=Selecteer onderdelen
-    Title Norwegian=Velg komponenter
-    Title Swedish=Välj komponenter
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=130 185 172 199
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Text=< &Back
-      Text French=<&Retour
-      Text German=<&Zurück
-      Text Portuguese=<&Retornar
-      Text Spanish=<&Retroceder
-      Text Italian=< &Indietro
-      Text Danish=<&Tilbage
-      Text Dutch=<&Terug
-      Text Norwegian=<&Tilbake
-      Text Swedish=< &Tillbaka
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=205 156 253 166
-      Variable=COMPONENTS
-      Value=MAINDIR
-      Create Flags=01010000000000000000000000000010
-    end
-    item: Static
-      Rectangle=205 148 253 157
-      Variable=COMPONENTS
-      Create Flags=01010000000000000000000000000010
-    end
-    item: Static
-      Rectangle=95 147 184 158
-      Create Flags=01010000000000000000000000000000
-      Text=Disk Space Required:
-      Text French=Espace disque requis
-      Text German=Benötigter Festplattenspeicher:
-      Text Portuguese=Espaço de disco necessário:
-      Text Spanish=Espacio de Disco Requerido:
-      Text Italian=Spazio su disco richiesto:
-      Text Danish=Nødvendig diskplads:
-      Text Dutch=Vereiste hoeveelheid schijfruimte
-      Text Norwegian=Diskplass nødvendig:
-      Text Swedish=Erforderligt diskutrymme
-    end
-    item: Static
-      Rectangle=95 157 190 167
-      Create Flags=01010000000000000000000000000000
-      Text=Disk Space Remaining:
-      Text French=Espace disque disponible
-      Text German=Verbleibender Festplattenspeicher:
-      Text Portuguese=Espaço de disco restante:
-      Text Spanish=Espacio de Disco Remanente:
-      Text Italian=Spazio su disco rimanente:
-      Text Danish=Ledig diskplads:
-      Text Dutch=Resterende schijfruimte
-      Text Norwegian=Ledig diskplass:
-      Text Swedish=Återstående diskutrymme
-    end
-    item: Static
-      Rectangle=90 138 264 168
-      Action=1
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=90 8 260 41
-      Create Flags=01010000000000000000000000000000
-      Text=In the options list below, select the checkboxes for the options that you would like to have installed.  The disk space fields reflect the requirements of the options you have selected.
-      Text French=Dans la liste d'options suivante, veuillez sélectionner les cases des options que vous désirez installer. Le champ d'espace disque indique les conditions requises pour les options choisies
-      Text German=Wählen Sie in der Optionenliste unten die Kontrollkästchen für diejenigen Optionen, die Sie installieren möchten. Die Speicherfelder zeigen die benötigte Speicherkapazität für die gewählten Optionen an.
-      Text Portuguese=Na lista de opções abaixo, seleccione as caixas de verificação para as opções que gostaria de ter instalado. Os campos de espaço de disco reflectem os requerimentos das opções que seleccionou.
-      Text Spanish=En la lista de opciones que se ofrece a continuación, seleccione las casillas de comprobación para las opciones que desea instalar. Los campos del espacio en el disco reflejan los requerimientos de las opciones que ha seleccionado.
-      Text Italian=Nell’elenco delle opzioni sotto, marca le caselle di controllo delle opzioni che vuoi installare. I campi dello spazio sul disco riflettono i requisiti delle opzioni selezionate.
-      Text Danish=Marker afkrydsningsfelterne for de komponenter, der skal installeres, på listen herunder. Diskpladsfelterne angiver pladskravene for de valgte komponenter.
-      Text Dutch=Kruis in de onderstaande lijst het vakje aan naast de opties die u wilt installeren. Achter elke optie staat de benodigde schijfruimte vermeld.
-      Text Norwegian=I listen over alternativer nedenfor, klikk i kontrollrutene for de alternativene du ønsker å installere. Diskplassfeltene gjenspeiler kravene for de alternativene du har valgt.
-      Text Swedish=Kryssa för i rutorna nedan vilka alternativ du vill få installerade. I diskutrymmesfälten anges utrymmesbehoven för de alternativ du väljer.
-    end
-    item: Checkbox
-      Rectangle=91 41 126 56
-      Variable=COMPONENTS LIBS
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000000011
-      Flags=0000000000000010
-      Text=Libraries
-      Text=
-    end
-    item: Checkbox
-      Rectangle=90 56 148 71
-      Variable=COMPONENTS COMM
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000000011
-      Flags=0000000000000010
-      Text=Communications
-      Text=
-    end
-  end
-  item: Dialog
-    Title=Library Packages
-    Width=268
-    Height=204
-    Font Name=Helv
-    Font Size=8
-  end
-  item: Dialog
-    Title=Library Packages
-    Width=268
-    Height=204
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=219 170 254 185
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000000000
-      Text=OK
-    end
-  end
-end
--- a/nt/installer/Wise/packages.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-#configuration variables
-
-#package categories
-category_names = ["libs", "comm", "oa", "os", "prog", "wp", "games"]
-
-category_descriptions = {"libs":"Libraries",
-                         "comm":"Communication",
-                         "oa": "Productivity", #???
-                         "os": "Operating System",
-                         "prog": "Programming",
-                         "wp": "Word Processing",
-                         "games": "Games and Amusements"}
-
-
-#packages to install by default
-default=["xemacs-base","edit-utils","efs",
-	 "text-modes","prog-modes",
-	 "dired","apel",
-	 "c-support","cc-mode",
-	 "mail-lib","pc","sounds-wav"]
-
-def category_of_letter(x):
-    return category_names[ord(x)-ord('A')]
-
-def letter_of_category(cat):
-    return chr(ord('A')+category_names.index(cat))
-
-def letter_of_package(x):
-    return chr(ord('A')+packages_of_category(category_of_package(x)).index(x))
-
-import dirs, os
-catpkg = {}
-pkgcat = {}
-
-for cat in category_names:
-    pkgcat[cat]=[]
-    dd = os.path.join(dirs.pkg_src,cat)
-    for d in os.listdir(dd):
-        if d == "CVS":
-            continue
-        manifest = dirs.packages + "\\pkginfo\\MANIFEST." + d
-        if not os.path.exists(manifest): #it's not installed, skip it
-            continue
-        if os.path.isdir(os.path.join(dd,d)):
-            catpkg[d] = cat
-            pkgcat[cat].append(d)
-            
-def category_of_package(p):
-    return catpkg[p]
-
-def packages_of_category(c):
-    return pkgcat[c]
-
-#Brief descriptions of the packages.
-#This data is up-to-date as of 13 January 1998.
-package_descriptions={
-    "Sun":"Support for Sparcworks.",
-    "apel":"A Portable Emacs Library",
-    "edebug":"A Lisp debugger",
-    "dired":"The DIRectory EDitor",
-    "efs":"Access remote filesystems",
-    "mail-lib":"Fundamental email support",
-    "tooltalk":"Tooltalk",
-    "xemacs-base":"Fundamental XEmacs support",
-    "xemacs-devel":"Lisp developer support.",
-    "footnote":"Footnoting in mail messages",
-    "gnats":"XEmacs bug reports",
-    "gnus":"Newsreader and Mailreader",
-    "mailcrypt":"Message encryption with PGP.",
-    "mh-e":"Support for MH mailreader",
-    "net-utils":"Networking Utilities",
-    "ph":"CCSO/qi directory client",
-    "rmail":"An obsolete Emacs mailer",
-    "supercite":"Mail/News Citation tool",
-    "tm":"Emacs MIME support",
-    "vm":"An Emacs mailer",
-    "w3":"A Web browser",
-    "cookie":"Spook and Yow (Zippy quotes)",
-    "games":"Tetris, Sokoban, and Snake",
-    "mine":"Minehunt",
-    "misc-games":"Other amusements and diversions",
-    "egg-its":"Wnn(4.2 and 6)/SJ3 support",
-    "leim":"Quail",
-    "locale":"Localized menubars",
-    "mule-base":"Basic Mule support",
-    "skk":"Another Japanese Language Input Method",
-    "calendar":"Calendar and diary",
-    "edit-utils":"Various XEmacs goodies",
-    "forms":"Obsolete forms editing support",
-    "frame-icon":"Change icon based on mode",
-    "hm--html-menus":"HTML editing",
-    "ispell":"Spell-checking with ispell",
-    "pc":"PC style interface emulation",
-    "psgml":"Validated HTML/SGML editing",
-    "sgml":"SGML/Linuxdoc-SGML editing",
-    "slider":"User interface tool",
-    "speedbar":"??? Document me.",
-    "strokes":"Mouse enhancement utility",
-    "text-modes":"Packages for editing text files",
-    "time":"Display time and date",
-    "eterm":"Terminal emulator",
-    "igrep":"Enhanced Grep",
-    "ilisp":"Front-end for Inferior Lisp",
-    "os-utils":"Misc. OS utilities",
-    "view-process":"Unix process viewer",
-    "ada":"Ada language support",
-    "c-support":"Add-ons for editing C code",
-    "cc-mode":"C, C++ and Java language editing",
-    "debug": "GUD, gdb, dbx debugging support",
-    "ediff": "Compare files",
-    "emerge": "Merge files",
-    "pcl-cvs":"CVS frontend.",
-    "prog-modes":"Various programming languages",
-    "scheme":"Front-end for Inferior Scheme",
-    "sh-script":"Support for editing shell scripts",
-    "vc":"Version Control",
-    "vc-cc":"Broken",
-    "vhdl":"Support for VHDL",
-    "auctex":"Basic TeX/LaTeX support",
-    "crisp":"Crisp/Brief emulation",
-    "edt":"DEC EDIT/EDT emulation",
-    "texinfo":"XEmacs TeXinfo support.",
-    "textools":"TeX support",
-    "tpu":"DEC EDIT/TPU support",
-    "viper":"VI emulation",
-    "elib":"Portable elisp utility library",
-    "fsf-compat": "FSF Emacs compatibility files",
-    "sounds-wav": "XEmacs Microsoft sound files",
-    "bbdb": "The Big Brother Data Base",
-    "eudc": "Emacs Unified Directory Client",
-    "mew": "Messaging in an Emacs World",
-    "zenirc": "IRC client",
-    "calc": "Emacs calculator",
-    "jde": "Java development environment",
-    "reftex": "LaTeX cross-referencing and citations"
-}
-
-
-
-
--- a/nt/installer/Wise/pre_wise.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-import string
-import re
-import os
-import types
-
-infile=open("xemacs.tmpl","r")
-
-import version
-import dirs
-import filelist
-import packages
-
-def letter(package):
-    index = packages.all.index(package)
-    if index>29:
-	raise "WISE error: too many components"
-    return chr(ord("A")+index)
-
-def letters(package_list):
-    ret = ""
-    for p in package_list: 
-	ret = ret+letter(p)
-    return ret
-
-def describe(package):
-    if package in packages.descriptions.keys():
-	return ": "+packages.descriptions[package]
-    else: return ""
-
-def ifblock(var,val):
-    return("item: If/While Statement\n  Variable=%s\n  Value=%s\n  Flags=00001010\nend\n" % (var,val))
-
-def endblock():
-    return("item: End Block\nend\n")
-
-def setvar(var,val):
-    return("item: Set Variable\n  Variable=%s\n  Value=%s\n  Flags=10000000\nend\n" % (string.upper(var), val))
-
-def default_letters_of_category(cat):
-    val = ""
-    for p in packages.default:
-        if packages.category_of_package(p) == cat:
-            val = val + packages.letter_of_package(p)
-    return val
-
-def set_category_defaults():
-    ret = ""
-    for c in packages.category_names:
-        ret = ret +  setvar(c, default_letters_of_category(c))
-    return ret
-
-def do_category(cat):
-    ret = ifblock("COMPONENTS", packages.letter_of_category(cat))
-    for pkg in packages.packages_of_category(cat):
-        ret = ret + ifblock(string.upper(cat),packages.letter_of_package(pkg))
-        for f in files_of_package(pkg):
-            ret = ret+install_pkg_file(f)
-        ret = ret + endblock()
-    ret = ret + endblock()
-    return ret
-
-def files_of_package(package):
-    manifest_file = dirs.packages + "\\pkginfo\\MANIFEST." + package
-    manifest = open(manifest_file,"r")
-    lines = manifest.readlines()
-    lines = map(lambda s:s[:-1], lines)
-    lines = map(lambda s:string.replace(s,'/','\\'), lines)
-    return lines
-
-def category_dialog(cat):
-    npkg = len(packages.packages_of_category(cat))
-    ret=""
-    ret=ret+"  item: Dialog\n    Title="+packages.category_descriptions[cat]+" Packages\n"
-    ret=ret+"    Width=210\n"
-    ret=ret+"    Height=%d\n" % (45+npkg*10)
-    ret=ret+"    Font Name=Helv\n"
-    ret=ret+"    Font Size=8\n"
-    ret=ret+"    item: Push Button\n"
-    ret=ret+"      Rectangle=107 %d 147 %d\n" % (5+npkg*10+2, 5+npkg*10+17)
-    ret=ret+"      Create Flags=01010000000000010000000000000001\n"
-    ret=ret+"      Text=OK\n"
-    ret=ret+"    end\n"
-    ret=ret+"    item: Push Button\n"
-    ret=ret+"      Rectangle=153 %d 193 %d\n" % (5+npkg*10+2, 5+npkg*10+17)
-    ret=ret+"      Variable=%s\n" % string.upper(cat)
-    ret=ret+"      Value=%%%s_SAVE%%\n" % string.upper(cat)
-    ret=ret+"      Create Flags=01010000000000010000000000000000\n"
-    ret=ret+"      Flags=0000000000000001\n"
-    ret=ret+"      Text=Cancel\n"
-    ret=ret+"    end\n"
-    ret=ret+"    item: Checkbox\n"
-    ret=ret+"      Rectangle=0 5 191 %d\n" % (10*npkg)
-    ret=ret+"      Variable=%s\n"%string.upper(cat)
-    ret=ret+"      Create Flags=01010000000000010000000000000011\n"
-    ret=ret+"      Flags=0000000000000010\n"
-    for pkg in packages.packages_of_category(cat):
-        ret = ret+"      Text=%s: %s\n"%( pkg, packages.package_descriptions[pkg])
-    ret=ret+"      Text=\n"
-    ret=ret+"    end\n"
-    ret=ret+"  end\n"
-    return ret
-
-def src_path(src,name):
-    return src + "\\" + name
-
-def dst_path(dst,name):
-    return "%MAINDIR%"+"\\"+dst+"\\" + name
-
-def install_file(name,src,dst):
-    return("item: Install File\n  Source=%s\n  Destination=%s\n  Flags=0000000010000010\nend\n" % (src_path(src,name),dst_path(dst,name)))
-
-def install_pkg_file(name):
-    return install_file(name,dirs.packages,dirs.pkg_dst)
-
-def do_package(package):
-    return ifblock("COMPONENTS",letter(package)) + \
-	   string.join(map(install_pkg_file,files(package)),"")+ \
-	   endblock()
-
-for line in infile.readlines():
-    left=string.find(line,"<<<")
-    if left>=0:
-	right=string.find(line,">>>")
-	expr=line[left+3:right]
-	val=eval(expr)
-	if type(val)==types.StringType:
-	    print line[:left] + val + line[right+3:],
-	elif type(val)==types.ListType:
-	    for v in val:
-		print line[:left] + v + line[right+3:],
-    else: print line,
-
-
--- a/nt/installer/Wise/type.dlg	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-Document Type: DLG
-item: Custom Dialog
-  Name=type
-  item: Dialog
-    Title=type
-    Width=238
-    Height=208
-    Font Name=Helv
-    Font Size=8
-    item: Radio Button
-      Rectangle=5 5 40 20
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000001001
-      Text=minimal
-      Text=
-    end
-    item: Radio Button
-      Rectangle=5 25 40 40
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000001001
-      Text=custom
-      Text=
-    end
-    item: Radio Button
-      Rectangle=5 45 40 60
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000010000000000001001
-      Text=full
-      Text=
-    end
-  end
-end
--- a/nt/installer/Wise/version.py	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-title="XEmacs 21.0b62 EXPERIMENTAL"
-welcome="Welcome to the %APPTITLE% setup program.  Please note that this is an experimental release and some features may not work correctly, especially on machines running Windows 95.  Please read the file PROBLEMS in the xemacs installation directory.  Send comments or bug reports to xemacs-nt@xemacs.org.  For more info see http://www.xemacs.org"
-
--- a/nt/installer/Wise/welcome.dlg	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-Document Type: DLG
-item: Custom Dialog
-  Name=Welcome
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Welcome
-    Title French=Bienvenue
-    Title German=Willkommen
-    Title Portuguese=Bem-vindo 
-    Title Spanish=Bienvenido
-    Title Italian=Benvenuto
-    Title Danish=Velkommen
-    Title Dutch=Welkom
-    Title Norwegian=Velkommen
-    Title Swedish=Välkommen
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=91 22 245 118
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000000000000000000000
-      Text=Welcome to the %APPTITLE% setup program.  Please note that this is an experimental release and some features may not work correctly.  Send comments or bug reports to xemacs-nt@xemacs.org rather than one of the other XEmacs mailing lists.  For more info see http://www.xemacs.org
-    end
-  end
-end
Binary file nt/installer/Wise/xemacs-beta.bmp has changed
--- a/nt/installer/Wise/xemacs.tmpl	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1310 +0,0 @@
-Document Type: WSE
-item: Global
-  Version=7.0
-  Title=<<<version.title + " Installation">>>
-  Flags=00000100
-  Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-  Japanese Font Name=MS Gothic
-  Japanese Font Size=10
-  Progress Bar DLL=%_WISE_%\Progress\WIZ%_EXE_OS_TYPE_%.DLL
-  Start Gradient=0 0 255
-  End Gradient=0 0 0
-  Windows Flags=00000100000000010010110000001000
-  Log Pathname=%MAINDIR%\INSTALL.LOG
-  Message Font=MS Sans Serif
-  Font Size=8
-  Disk Filename=SETUP
-  Patch Flags=0000000000000001
-  Patch Threshold=85
-  Patch Memory=4000
-  FTP Cluster Size=20
-  Dialogs Version=6
-  Variable Name1=_SYS_
-  Variable Default1=C:\WINDOWS\SYSTEM
-  Variable Flags1=00001000
-  Variable Name2=_WISE_
-  Variable Default2=C:\PROGRAM FILES\WISE INSTALLBUILDER
-  Variable Flags2=00001000
-end
-item: Get Temporary Filename
-  Variable=READMEFILE
-end
-item: Install File
-  Source=<<<dirs.source>>>\nt\Wise\Copying.txt
-  Destination=%TEMP%\%READMEFILE%
-  Flags=0000000000100010
-end
-item: Open/Close INSTALL.LOG
-  Flags=00000001
-end
-item: Check if File/Dir Exists
-  Pathname=%SYS%
-  Flags=10000100
-end
-item: Set Variable
-  Variable=SYS
-  Value=%WIN%
-end
-item: End Block
-end
-item: Set Variable
-  Variable=APPTITLE
-  Value=<<<version.title>>>
-  Flags=10000000
-end
-item: Set Variable
-  Variable=GROUP
-  Value=XEmacs
-  Flags=10000000
-end
-item: Set Variable
-  Variable=DISABLED
-  Value=!
-end
-item: Set Variable
-  Variable=MAINDIR
-  Value=XEmacs
-  Flags=10000000
-end
-item: Check Configuration
-  Flags=10111011
-end
-item: Get Registry Key Value
-  Variable=COMMON
-  Key=SOFTWARE\Microsoft\Windows\CurrentVersion
-  Default=C:\Program Files\Common Files
-  Value Name=CommonFilesDir
-  Flags=00000100
-end
-item: Get Registry Key Value
-  Variable=PROGRAM_FILES
-  Key=SOFTWARE\Microsoft\Windows\CurrentVersion
-  Default=C:\Program Files
-  Value Name=ProgramFilesDir
-  Flags=00000100
-end
-item: Set Variable
-  Variable=MAINDIR
-  Value=%PROGRAM_FILES%\%MAINDIR%
-  Flags=00001100
-end
-item: Set Variable
-  Variable=EXPLORER
-  Value=1
-end
-item: Else Statement
-end
-item: Set Variable
-  Variable=MAINDIR
-  Value=C:\%MAINDIR%
-  Flags=00001100
-end
-item: End Block
-end
-item: Set Variable
-  Variable=BACKUP
-  Value=%MAINDIR%\BACKUP
-  Flags=10000000
-end
-item: Set Variable
-  Variable=DOBACKUP
-  Value=B
-  Flags=10000000
-end
-item: Set Variable
-  Variable=COMPONENTS
-  Value=ACE
-  Flags=10000000
-end
-<<<set_category_defaults()>>>
-item: Wizard Block
-  Direction Variable=DIRECTION
-  Display Variable=DISPLAY
-  Bitmap Pathname=<<<dirs.source>>>\nt\Wise\gnu.bmp
-  X Position=9
-  Y Position=10
-  Filler Color=8421440
-  Dialog=Select Program Manager Group
-  Dialog=Select Backup Directory
-  Dialog=Display Registration Information
-  Dialog=Get Registration Information
-  Variable=EXPLORER
-  Variable=DOBACKUP
-  Variable=DOBRAND
-  Variable=DOBRAND
-  Value=1
-  Value=A
-  Value=1
-  Value=1
-  Compare=0
-  Compare=1
-  Compare=0
-  Compare=1
-  Flags=00000011
-end
-item: Custom Dialog Set
-  Name=Welcome
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Welcome
-    Title French=Bienvenue
-    Title German=Willkommen
-    Title Portuguese=Bem-vindo 
-    Title Spanish=Bienvenido
-    Title Italian=Benvenuto
-    Title Danish=Velkommen
-    Title Dutch=Welkom
-    Title Norwegian=Velkommen
-    Title Swedish=Välkommen
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=91 22 245 118
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000000000000000000000
-      Text=<<<version.welcome>>>
-    end
-  end
-end
-item: Custom Dialog Set
-  Name=Display ReadMe
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Read Me File
-    Title French=Fichier Lisez-moi
-    Title German=Liesmich-Datei
-    Title Portuguese=Ficheiro Leia-me
-    Title Spanish=Archivo Léeme
-    Title Italian=File Leggimi
-    Title Danish=Vigtigt fil
-    Title Dutch=Leesmij-bestand
-    Title Norwegian=Informasjonsfil
-    Title Swedish=Läs mig-fil
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=I &Agree >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Slet
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Editbox
-      Rectangle=85 11 254 170
-      Value=%TEMP%\%READMEFILE%
-      Help Context=16711681
-      Create Flags=01010000101000000000100000000100
-    end
-  end
-end
-item: Custom Dialog Set
-  Name=Select Destination Directory
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Choose Destination Location
-    Title French=Choisissez la localisation de destination
-    Title German=Zielpfad wählen
-    Title Portuguese=Escolher Local de Destino
-    Title Spanish=Elegir una localización de destino
-    Title Italian=Scegli Posizione di Destinazione
-    Title Danish=Vælg destinationsmappe
-    Title Dutch=Kies doellocatie
-    Title Norwegian=Velg målplassering
-    Title Swedish=Välj ställe för installationen
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=130 185 172 199
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Flags=0000000000000001
-      Text=< &Back
-      Text French=<&Retour
-      Text German=<&Zurück
-      Text Portuguese=<&Retornar
-      Text Spanish=<&Retroceder
-      Text Italian=< &Indietro
-      Text Danish=<&Tilbage
-      Text Dutch=<&Terug
-      Text Norwegian=<&Tilbake
-      Text Swedish=< &Tillbaka
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=90 10 260 122
-      Create Flags=01010000000000000000000000000000
-      Text=Setup will install %APPTITLE% in the following folder.
-      Text=
-      Text=To install into a different folder, click Browse, and select another folder. 
-      Text=
-      Text=You can choose not to install %APPTITLE% by clicking Cancel to exit Setup.
-      Text French=%APPTITLE% va être installé dans le répertoire ci-dessous
-      Text French=
-      Text French=Pour l'installer dans un répertoire différent, cliquez sur Parcourir et sélectionnez un autre répertoire
-      Text French=
-      Text French=Vous pouvez choisir de ne pas installer %APPTITLE% en cliquant sur Annuler pour quitter l'Installation
-      Text German=Installation speichert %APPTITLE% im unten angegebenen Ordner:
-      Text German=
-      Text German=Zur Installation in einem anderen Ordner auf Blättern klicken und einen anderen Ordner wählen.
-      Text German=
-      Text German=Wenn Sie %APPTITLE% nicht installieren möchten, können Sie durch Klicken auf Abbrechen die Installation beenden.
-      Text Portuguese=Configuração instalará %APPTITLE% na seguinte pasta
-      Text Portuguese=
-      Text Portuguese=Para instalar numa pasta diferente, faça um clique sobre Procurar, e seleccione uma outra pasta.
-      Text Portuguese=
-      Text Portuguese=Pode escolher não instalar %APPTITLE% clicando no botão Cancelar para sair da Configuração
-      Text Spanish=El programa de Configuración instalará %APPTITLE% en la siguiente carpeta.
-      Text Spanish=
-      Text Spanish=Para instalar en una carpeta diferente, haga un clic en Visualizar, y seleccione otra carpeta.
-      Text Spanish=
-      Text Spanish=Puede elegir no instalar %APPTITLE% haciendo un clic en Cancelar para salir de Configuración.
-      Text Italian=Il programma di installazione installerà %APPTITLE% nella seguente cartella.
-      Text Italian=
-      Text Italian=Per effettuare l’installazione in una cartella diversa, fai clic su Sfoglia, e scegli un’altra cartella.
-      Text Italian=
-      Text Italian=Puoi scegliere di non installare %APPTITLE% facendo clic su Annulla per uscire dal programma di installazione
-      Text Danish=Installationsprogrammet installerer %APPTITLE% i denne mappe.
-      Text Danish=
-      Text Danish=Man installerer i en anden mappe ved at klikke på Browse og vælge en anden mappe.
-      Text Danish=
-      Text Danish=Man kan vælge ikke at installere %APPTITLE% ved at klikke på Slet og forlade installationsprogrammet.
-      Text Dutch=Het installatieprogramma installeert %APPTITLE% in de volgende directory.
-      Text Dutch=
-      Text Dutch=Als u het in een andere directory wilt installeren, klik dan op Bladeren en kies een andere locatie.
-      Text Dutch=
-      Text Dutch=U kunt ervoor kiezen om %APPTITLE% niet te installeren: klik op Annuleren om het installatieprogramma te verlaten.
-      Text Norwegian=Oppsett vil installere %APPTITLE% i følgende mappe.
-      Text Norwegian=
-      Text Norwegian=For å installere i en annen mappe, klikk Bla igjennom og velg en annen mappe.
-      Text Norwegian=
-      Text Norwegian=Du kan velge å ikke installere %APPTITLE% ved å velge Avbryt for å gå ut av Oppsett.
-      Text Swedish=Installationsprogrammet installerar %APPTITLE% i följande mapp.
-      Text Swedish=
-      Text Swedish=Om du vill att installationen ska göras i en annan mapp, klickar du på Bläddra och väljer en annan mapp.
-      Text Swedish=
-      Text Swedish=Du kan välja att inte installera %APPTITLE% genom att klicka på Avbryt för att lämna installationsprogrammet.
-    end
-    item: Static
-      Rectangle=90 134 260 162
-      Action=1
-      Create Flags=01010000000000000000000000000111
-      Text=Destination Folder
-      Text French=Répertoire de destination
-      Text German=Zielordner
-      Text Portuguese=Pasta de Destino
-      Text Spanish=Carpeta de Destino
-      Text Italian=Cartella di destinazione
-      Text Danish=Destinationsmappe
-      Text Dutch=Doeldirectory
-      Text Norwegian=Målmappe
-      Text Swedish=Destinationsmapp
-    end
-    item: Push Button
-      Rectangle=213 143 255 157
-      Variable=MAINDIR_SAVE
-      Value=%MAINDIR%
-      Destination Dialog=1
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=B&rowse...
-      Text French=P&arcourir
-      Text German=B&lättern...
-      Text Portuguese=P&rocurar
-      Text Spanish=V&isualizar...
-      Text Italian=Sfoglia...
-      Text Danish=&Gennemse...
-      Text Dutch=B&laderen...
-      Text Norwegian=Bla igjennom
-      Text Swedish=&Bläddra
-    end
-    item: Static
-      Rectangle=95 146 211 157
-      Destination Dialog=2
-      Create Flags=01010000000000000000000000000000
-      Text=%MAINDIR%
-      Text French=%MAINDIR%
-      Text German=%MAINDIR%
-      Text Portuguese=%MAINDIR%
-      Text Spanish=%MAINDIR%
-      Text Italian=%MAINDIR%
-      Text Danish=%MAINDIR%
-      Text Dutch=%MAINDIR%
-      Text Norwegian=%MAINDIR%
-      Text Swedish=%MAINDIR%
-    end
-  end
-  item: Dialog
-    Title=Select Destination Directory
-    Title French=Choisissez le répertoire de destination
-    Title German=Zielverzeichnis wählen
-    Title Portuguese=Seleccionar Directório de Destino
-    Title Spanish=Seleccione el Directorio de Destino
-    Title Italian=Seleziona Directory di destinazione
-    Title Danish=Vælg Destinationsbibliotek
-    Title Dutch=Kies doeldirectory
-    Title Norwegian=Velg målkatalog
-    Title Swedish=Välj destinationskalatog
-    Width=221
-    Height=173
-    Font Name=Helv
-    Font Size=8
-    item: Listbox
-      Rectangle=5 2 160 149
-      Variable=MAINDIR
-      Create Flags=01010000100000010000000101000000
-      Flags=0000110000100010
-      Text=%MAINDIR%
-      Text French=%MAINDIR%
-      Text German=%MAINDIR%
-      Text Portuguese=%MAINDIR%
-      Text Spanish=%MAINDIR%
-      Text Italian=%MAINDIR%
-      Text Danish=%MAINDIR%
-      Text Dutch=%MAINDIR%
-      Text Norwegian=%MAINDIR%
-      Text Swedish=%MAINDIR%
-    end
-    item: Push Button
-      Rectangle=167 6 212 21
-      Create Flags=01010000000000010000000000000001
-      Text=OK
-      Text French=OK
-      Text German=OK
-      Text Portuguese=OK
-      Text Spanish=ACEPTAR
-      Text Italian=OK
-      Text Danish=OK
-      Text Dutch=OK
-      Text Norwegian=OK
-      Text Swedish=OK
-    end
-    item: Push Button
-      Rectangle=167 25 212 40
-      Variable=MAINDIR
-      Value=%MAINDIR_SAVE%
-      Create Flags=01010000000000010000000000000000
-      Flags=0000000000000001
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen 
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Slet
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-  end
-end
-item: Custom Dialog Set
-  Name=Select Packages
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Select Packages
-    Width=271
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=150 187 195 202
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suite >
-      Text German=&Weiter >
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-    end
-    item: Push Button
-      Rectangle=105 187 150 202
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Text=< &Back
-      Text French=< &Retour
-      Text German=< &Zurück
-      Text Spanish=< &Atrás
-      Text Italian=< &Indietro
-    end
-    item: Push Button
-      Rectangle=211 187 256 202
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=&Cancel
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Static
-      Rectangle=8 180 256 181
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=86 8 258 28
-      Create Flags=01010000000000000000000000000000
-      Flags=0000000000000001
-      Name=Times New Roman
-      Font Style=-24 0 0 0 700 255 0 0 0 3 2 1 18
-      Text=Select Packages
-      Text French=Sélectionner les composants
-      Text German=Komponenten auswählen
-      Text Spanish=Seleccione componentes
-      Text Italian=Selezionare i componenti
-    end
-    item: Checkbox
-      Rectangle=83 62 211 146
-      Variable=COMPONENTS LIBS,COMM,OA,OS,PROG,WP,GAMES
-      Create Flags=01010000000000010000000000000011
-      Flags=0000000000000110
-      Text=Libraries
-      Text=Communication
-      Text=Productivity
-      Text=Operating System
-      Text=Programming
-      Text=Word Processing
-      Text=Games and Amusements
-      Text=
-    end
-    item: Static
-      Rectangle=194 162 242 172
-      Variable=COMPONENTS, LIBS, COMM, OA, OS, PROG, WP, GAMES
-      Value=MAINDIR
-      Create Flags=01010000000000000000000000000010
-    end
-    item: Static
-      Rectangle=194 153 242 162
-      Variable=COMPONENTS, LIBS, COMM, OA, OS, PROG, WP, GAMES
-      Create Flags=01010000000000000000000000000010
-    end
-    item: Static
-      Rectangle=107 153 196 164
-      Create Flags=01010000000000000000000000000000
-      Text=Disk Space Required:
-      Text French=Espace disque requis :
-      Text German=Notwendiger Speicherplatz:
-      Text Spanish=Espacio requerido en el disco:
-      Text Italian=Spazio su disco necessario:
-    end
-    item: Static
-      Rectangle=107 162 196 172
-      Create Flags=01010000000000000000000000000000
-      Text=Disk Space Remaining:
-      Text French=Espace disque disponible :
-      Text German=Verbleibender Speicherplatz:
-      Text Spanish=Espacio en disco disponible:
-      Text Italian=Spazio su disco disponibile:
-    end
-    item: Static
-      Rectangle=80 146 256 175
-      Action=1
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=83 30 256 57
-      Create Flags=01010000000000000000000000000000
-      Text=Choose which package categories to install by checking the boxes below. Press the Options buttons to select individual packages.
-      Text French=Choisissez les composants que vous voulez installer en cochant les cases ci-dessous.
-      Text German=Wählen Sie die zu installierenden Komponenten, indem Sie in die entsprechenden Kästchen klicken.
-      Text Spanish=Elija los componentes que desee instalar marcando los cuadros de abajo.
-      Text Italian=Scegliere quali componenti installare selezionando le caselle sottostanti.
-    end
-    item: Push Button
-      Rectangle=230 62 254 72
-      Variable=LIBS_SAVE
-      Value=%LIBS%
-      Destination Dialog=1
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 74 254 84
-      Variable=COMM_SAVE
-      Value=%COMM%
-      Destination Dialog=2
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 86 254 96
-      Variable=OA_SAVE
-      Value=%OA%
-      Destination Dialog=3
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 98 254 108
-      Variable=OS_SAVE
-      Value=%OS%
-      Destination Dialog=4
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 110 254 120
-      Variable=PROG_SAVE
-      Value=%PROG%
-      Destination Dialog=5
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 122 254 132
-      Variable=WP_SAVE
-      Value=%WP%
-      Destination Dialog=6
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Push Button
-      Rectangle=230 134 254 144
-      Variable=GAMES_SAVE
-      Value=%GAMES%
-      Destination Dialog=7
-      Action=2
-      Create Flags=01010000000000010000000000000000
-      Text=Options
-      Text French=&Annuler
-      Text German=&Abbrechen
-      Text Spanish=&Cancelar
-      Text Italian=&Annulla
-    end
-    item: Set Variable
-      Variable=COMPONENTS
-      Value=X
-      Flags=00000001
-    end
-  end
-<<<string.join(map(category_dialog,packages.category_names),"")>>>
-end
-item: Custom Dialog Set
-  Name=Select Program Manager Group
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Select Program Manager Group
-    Title French=Sélectionnez le Groupe du Gestionnaire de Programmes
-    Title German=Programm-Managergruppe wählen
-    Title Portuguese=Seleccionar o Grupo Gestor de Programas
-    Title Spanish=Seleccione el Grupo del Administrador del Programa
-    Title Italian=Seleziona il gruppo Program Manager
-    Title Danish=Vælg Programstyringsgruppen
-    Title Dutch=Kies Programmabeheergroep.
-    Title Norwegian=Velg Programbehandlingsgruppen
-    Title Swedish=Välj grupp i Programhanteraren
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=130 185 172 199
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Flags=0000000000000001
-      Text=< &Back
-      Text French=<&Retour
-      Text German=<&Zurück
-      Text Portuguese=<&Retornar
-      Text Spanish=<&Retroceder
-      Text Italian=< &Indietro
-      Text Danish=<&Back
-      Text Dutch=<&Terug
-      Text Norwegian=<&Tilbake
-      Text Swedish=< &Tillbaka
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Slet
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=90 10 260 38
-      Create Flags=01010000000000000000000000000000
-      Text=Enter the name of the Program Manager group to add %APPTITLE% icons to:
-      Text French=Entrez le nom du groupe du Gestionnaire de Programmes où placer les icônes %APPTITLE% à :
-      Text German=Den Namen der Programm-Managergruppe wählen, in der die %APPTITLE%-Symbole gespeichert werden sollen:
-      Text Portuguese=Introduzir o nome do Grupo Gestor de Programa para acrescentar os ícones %APPTITLE% para:
-      Text Spanish=Introduzca el nombre del grupo del Administrador del Programa para añadir los iconos %APPTITLE para:
-      Text Italian=Inserisci il nome del gruppo Program Manager per aggiungere le icone di %APPTITLE% a:
-      Text Danish=Indtast navnet på Programstyringsgruppen der skal tilføjes %APPTITLE% elementer:
-      Text Dutch=Breng de naam van de programmabeheergroep in waaraan u %APPTITLE%-pictogrammen wilt toevoegen.
-      Text Norwegian=Tast inn navnet på programbehandlingsgruppen for å legge %APPTITLE%-ikoner til:
-      Text Swedish=Skriv in namnet på den grupp i Programhanteraren där du vill ha ikonerna för %APPTITLE%:
-    end
-    item: Combobox
-      Rectangle=90 42 260 148
-      Variable=GROUP
-      Create Flags=01010000001000010000001100000001
-      Flags=0000000000000001
-      Text=%GROUP%
-      Text=
-      Text French=%GROUP%
-      Text French=
-      Text German=%GROUP%
-      Text German=
-      Text Portuguese=%GROUP%
-      Text Portuguese=
-      Text Spanish=%GROUP%
-      Text Spanish=
-      Text Italian=%GROUP%
-      Text Italian=
-      Text Danish=%GROUP%
-      Text Danish=
-      Text Dutch=%GROUP%
-      Text Dutch=
-      Text Norwegian=%GROUP%
-      Text Norwegian=
-      Text Swedish=%GROUP%
-      Text Swedish=
-    end
-  end
-end
-item: Custom Dialog Set
-  Name=Start Installation
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Start Installation
-    Title French=Commencer l'installation
-    Title German=Installation beginnen
-    Title Portuguese=Iniciar Instalação
-    Title Spanish=Comenzar la Instalación
-    Title Italian=Avvia Installazione
-    Title Danish=Start installationen
-    Title Dutch=Start de installatie.
-    Title Norwegian=Start installeringen
-    Title Swedish=Starta installationen
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=172 185 214 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Next >
-      Text French=&Suivant>
-      Text German=&Weiter>
-      Text Portuguese=&Próximo>
-      Text Spanish=&Siguiente >
-      Text Italian=&Avanti >
-      Text Danish=&Næste>
-      Text Dutch=&Volgende>
-      Text Norwegian=&Neste>
-      Text Swedish=&Nästa >
-    end
-    item: Push Button
-      Rectangle=130 185 172 199
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Text=< &Back
-      Text French=<&Retour
-      Text German=<&Zurück
-      Text Portuguese=<&Retornar
-      Text Spanish=<&Retroceder
-      Text Italian=< &Indietro
-      Text Danish=<&Tilbage
-      Text Dutch=<&Terug
-      Text Norwegian=<&Tilbake
-      Text Swedish=< &Tillbaka
-    end
-    item: Push Button
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=90 10 260 70
-      Create Flags=01010000000000000000000000000000
-      Text=You are now ready to install %APPTITLE%.
-      Text=
-      Text=Press the Next button to begin the installation or the Back button to reenter the installation information.
-      Text French=Vous êtes maintenant prêt à installer %APPTITLE%
-      Text French=
-      Text French=Cliquez sur Suivant pour commencer l'installation ou Retour pour entrer à nouveau les informations d'installation
-      Text German=Sie sind jetzt zur Installation von %APPTITLE% bereit.
-      Text German=
-      Text German=Auf die Schaltfläche Weiter klicken, um mit dem Start der Installation zu beginnen, oder auf die Schaltfläche Zurück, um die Installationsinformationen nochmals aufzurufen.
-      Text Portuguese=Está agora pronto para instalar %APPTITLE%
-      Text Portuguese=
-      Text Portuguese=Pressione o botão Próximo para começar a instalação ou o botão Retornar para introduzir novamente a informação sobre a instalação
-      Text Spanish=Ahora estará listo para instalar %APPTITLE%.
-      Text Spanish=
-      Text Spanish=Pulse el botón de Próximo para comenzar la instalación o el botón Retroceder para volver a introducir la información sobre la instalación.
-      Text Italian=Sei pronto ad installare %APPTITLE%.
-      Text Italian=
-      Text Italian=Premi il tasto Avanti per iniziare l’installazione o il tasto Indietro per rientrare nuovamente nei dati sull’installazione
-      Text Danish=Du er nu klar til at installere %APPTITLE%.
-      Text Danish=
-      Text Danish=Klik på Næste for at starte installationen eller på Tilbage for at ændre installationsoplysningerne.
-      Text Dutch=U bent nu klaar om %APPTITLE% te installeren.
-      Text Dutch=
-      Text Dutch=Druk op Volgende om met de installatie te beginnen of op Terug om de installatie-informatie opnieuw in te voeren.
-      Text Norwegian=Du er nå klar til å installere %APPTITLE%
-      Text Norwegian=
-      Text Norwegian=Trykk på Neste-tasten for å starte installeringen, eller Tilbake-tasten for å taste inn installasjonsinformasjonen på nytt.
-      Text Swedish=Du är nu redo att installera %APPTITLE%.
-      Text Swedish=
-      Text Swedish=Tryck på Nästa för att starta installationen eller på Tillbaka för att skriva in installationsinformationen på nytt.
-    end
-  end
-end
-item: If/While Statement
-  Variable=DISPLAY
-  Value=Select Destination Directory
-end
-item: Set Variable
-  Variable=BACKUP
-  Value=%MAINDIR%\BACKUP
-end
-item: End Block
-end
-item: End Block
-end
-item: If/While Statement
-  Variable=DOBACKUP
-  Value=A
-end
-item: Set Variable
-  Variable=BACKUPDIR
-  Value=%BACKUP%
-end
-item: End Block
-end
-item: Open/Close INSTALL.LOG
-end
-item: Check Disk Space
-  Component=COMPONENTS
-end
-item: Display Graphic
-  Pathname=<<<dirs.source>>>\nt\Wise\xemacs-beta.bmp
-  X Position=32784
-  Y Position=16
-end
-item: Include Script
-  Pathname=%_WISE_%\INCLUDE\uninstal.wse
-end
-<<<ifblock("COMPONENTS","X")>>>
-<<<string.join(map(lambda x:install_file(x[0],x[1],x[2]),filelist.all),"")>>>
-<<<endblock()>>>
-<<<map(do_category,packages.category_names)>>>
-item: Set Variable
-  Variable=COMMON
-  Value=%COMMON%
-  Flags=00010100
-end
-item: Set Variable
-  Variable=MAINDIR
-  Value=%MAINDIR%
-  Flags=00010100
-end
-item: Check Configuration
-  Flags=10111011
-end
-item: Get Registry Key Value
-  Variable=STARTUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%WIN%\Start Menu\Programs\StartUp
-  Value Name=StartUp
-  Flags=00000010
-end
-item: Get Registry Key Value
-  Variable=DESKTOPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%WIN%\Desktop
-  Value Name=Desktop
-  Flags=00000010
-end
-item: Get Registry Key Value
-  Variable=STARTMENUDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%WIN%\Start Menu
-  Value Name=Start Menu
-  Flags=00000010
-end
-item: Get Registry Key Value
-  Variable=GROUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%WIN%\Start Menu\Programs
-  Value Name=Programs
-  Flags=00000010
-end
-item: Get Registry Key Value
-  Variable=CSTARTUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%STARTUPDIR%
-  Value Name=Common Startup
-  Flags=00000100
-end
-item: Get Registry Key Value
-  Variable=CDESKTOPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%DESKTOPDIR%
-  Value Name=Common Desktop
-  Flags=00000100
-end
-item: Get Registry Key Value
-  Variable=CSTARTMENUDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%STARTMENUDIR%
-  Value Name=Common Start Menu
-  Flags=00000100
-end
-item: Get Registry Key Value
-  Variable=CGROUPDIR
-  Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
-  Default=%GROUPDIR%
-  Value Name=Common Programs
-  Flags=00000100
-end
-item: Set Variable
-  Variable=CGROUP_SAVE
-  Value=%GROUP%
-end
-item: Set Variable
-  Variable=GROUP
-  Value=%GROUPDIR%\%GROUP%
-end
-item: Create Shortcut
-  Source=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe
-  Destination=%GROUP%\XEmacs.lnk
-  Working Directory=\
-  Icon Number=0
-end
-item: Create Shortcut
-  Source=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe
-  Destination=%DESKTOPDIR%\XEmacs.lnk
-  Working Directory=\
-  Icon Number=0
-end
-item: Else Statement
-end
-item: Add ProgMan Icon
-  Group=%GROUP%
-  Icon Name=XEmacs
-  Command Line=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe
-  Default Directory=\
-  Flags=01000000
-end
-item: End Block
-end
-item: Edit Registry
-  Total Keys=16
-  item: Key
-    Key=SOFTWARE\GNU\XEmacs
-    New Value=%MAINDIR%
-    Value Name=emacs_dir
-    Root=2
-  end
-  item: Key
-    Key=SOFTWARE\GNU\XEmacs
-    New Value=%MAINDIR%\xemacs-packages
-    Value Name=EMACSPACKAGEPATH
-    Root=2
-  end
-  item: Key
-    Key=SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\runemacs.exe
-    New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32
-    Value Name=Path
-    Root=2
-  end
-  item: Key
-    Key=SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\xemacs.exe
-    New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32
-    Value Name=Path
-    Root=2
-  end
-  item: Key
-    Key=.el
-    New Value=elfile
-  end
-  item: Key
-    Key=.el
-    New Value=text/plain
-    Value Name=Content Type
-  end
-  item: Key
-    Key=elfile
-    New Value=Emacs lisp
-  end
-  item: Key
-    Key=elfile
-    New Value=00 00 01 00
-    Value Name=EditFlags
-    Data Type=4
-  end
-  item: Key
-    Key=elfile\DefaultIcon
-    New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe,2
-  end
-  item: Key
-    Key=elfile\QuickView
-    New Value=*
-  end
-  item: Key
-    Key=elfile\Shell
-    New Value=
-  end
-  item: Key
-    Key=elfile\Shell\open
-  end
-  item: Key
-    Key=elfile\Shell\open\command
-    New Value=%MAINDIR%\<<<dirs.dst>>>\i386-pc-win32\runemacs.exe "%%1"
-  end
-  item: Key
-    Key=elfile\Shell\open\ddeexec
-    New Value=open("%%1")
-  end
-  item: Key
-    Key=elfile\Shell\open\ddeexec\Application
-    New Value=XEmacs
-    New Value=
-  end
-  item: Key
-    Key=elfile\Shell\open\ddeexec\topic
-    New Value=System
-  end
-end
-item: Wizard Block
-  Direction Variable=DIRECTION
-  Display Variable=DISPLAY
-  Bitmap Pathname=<<<dirs.source>>>\nt\Wise\gnu.bmp
-  X Position=9
-  Y Position=10
-  Filler Color=8421440
-  Flags=00000011
-end
-item: Custom Dialog Set
-  Name=Finished
-  Display Variable=DISPLAY
-  item: Dialog
-    Title=Installation Complete
-    Title French=Installation en cours
-    Title German=Installation abgeschlossen
-    Title Portuguese=Instalação Completa 
-    Title Spanish=Se ha completado la Instalación
-    Title Italian=Installazione completata
-    Title Danish=Installation gennemført
-    Title Dutch=Installatie afgerond
-    Title Norwegian=Installasjonen er fullført
-    Title Swedish=Installationen klar
-    Width=280
-    Height=224
-    Font Name=Helv
-    Font Size=8
-    item: Push Button
-      Rectangle=170 185 212 199
-      Variable=DIRECTION
-      Value=N
-      Create Flags=01010000000000010000000000000001
-      Text=&Finish >
-      Text French=&Terminer>
-      Text German=&Fertigstellen>
-      Text Portuguese=&Terminar >
-      Text Spanish=&Finalizar>
-      Text Italian=&Fine >
-      Text Danish=&Afslut >
-      Text Dutch=&Klaar>
-      Text Norwegian=&Avslutt>
-      Text Swedish=&Sluta>
-    end
-    item: Push Button
-      Control Name=CANCEL
-      Rectangle=222 185 264 199
-      Action=3
-      Create Flags=01010000000000010000000000000000
-      Text=Cancel
-      Text French=Annuler
-      Text German=Abbrechen
-      Text Portuguese=Cancelar
-      Text Spanish=Cancelar
-      Text Italian=Annulla
-      Text Danish=Annuller
-      Text Dutch=Annuleren
-      Text Norwegian=Avbryt
-      Text Swedish=Avbryt
-    end
-    item: Static
-      Rectangle=9 177 263 178
-      Action=3
-      Create Flags=01010000000000000000000000000111
-    end
-    item: Static
-      Rectangle=90 10 260 63
-      Enabled Color=00000000000000001111111111111111
-      Create Flags=01010000000000000000000000000000
-      Text=%APPTITLE% has been successfully installed.
-      Text=
-      Text=
-      Text=Press the Finish button to exit this installation.
-      Text=
-      Text French=L'installation de %APPTITLE% est réussie
-      Text French=
-      Text French=
-      Text French=Cliquez sur Terminer pour quitter cette installation
-      Text French=
-      Text German=%APPTITLE% wurde erfolgreich installiert.
-      Text German=
-      Text German=
-      Text German=Zum Beenden dieser Installation Fertigstellen anklicken.
-      Text German=
-      Text Portuguese=%APPTITLE% foi instalado com êxito
-      Text Portuguese=
-      Text Portuguese=
-      Text Portuguese=Pressionar o botão Terminar para sair desta instalação
-      Text Portuguese=
-      Text Spanish=%APPTITLE% se ha instalado con éxito.
-      Text Spanish=
-      Text Spanish=
-      Text Spanish=Pulse el botón de Finalizar para salir de esta instalación.
-      Text Spanish=
-      Text Italian=%APPTITLE% è stato installato.
-      Text Italian=
-      Text Italian=
-      Text Italian=Premi il pulsante Fine per uscire dal programma di installazione
-      Text Italian=
-      Text Danish=%APPTITLE% er nu installeret korrekt.
-      Text Danish=
-      Text Danish=
-      Text Danish=Klik på Afslut for at afslutte installationen.
-      Text Danish=
-      Text Dutch=%APPTITLE% is met succes geïnstalleerd.
-      Text Dutch=
-      Text Dutch=
-      Text Dutch=Druk op Klaar om deze installatie af te ronden.
-      Text Dutch=
-      Text Norwegian=Installasjonen av %APPTITLE% er suksessfull.
-      Text Norwegian=
-      Text Norwegian=
-      Text Norwegian=Trykk på Avslutt-tasten for å avslutte denne installasjonen.
-      Text Norwegian=
-      Text Swedish=Installationen av %APPTITLE% har lyckats.
-      Text Swedish=
-      Text Swedish=
-      Text Swedish=Tryck på Sluta för att gå ur installationsprogrammet.
-      Text Swedish=
-    end
-    item: Push Button
-      Control Name=BACK
-      Rectangle=128 185 170 199
-      Variable=DIRECTION
-      Value=B
-      Create Flags=01010000000000010000000000000000
-      Text=< &Back
-      Text French=<&Retour
-      Text German=<&Zurück
-      Text Portuguese=<&Retornar
-      Text Spanish=<&Retroceder
-      Text Italian=< &Indietro
-      Text Danish=<&Tilbage
-      Text Dutch=<&Terug
-      Text Norwegian=<&Tilbake
-      Text Swedish=< &Tillbaka
-    end
-    item: Set Control Attribute
-      Control Name=BACK
-      Operation=1
-    end
-    item: Set Control Attribute
-      Control Name=CANCEL
-      Operation=1
-    end
-  end
-end
-item: End Block
-end
-item: New Event
-  Name=Cancel
-end
-item: Include Script
-  Pathname=%_WISE_%\INCLUDE\rollback.wse
-end
--- a/nt/xemacs.dsp	Fri Nov 27 00:51:41 2009 +0100
+++ b/nt/xemacs.dsp	Tue Dec 22 19:07:40 2009 +0900
@@ -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/nt/xemacs.mak	Fri Nov 27 00:51:41 2009 +0100
+++ b/nt/xemacs.mak	Tue Dec 22 19:07:40 2009 +0900
@@ -1139,8 +1139,7 @@
 	$(BLDLIB_SRC)/make-docfile.exe	\
 	$(BLDLIB_SRC)/mmencode.exe	\
 	$(BLDLIB_SRC)/movemail.exe	\
-	$(BLDLIB_SRC)/sorted-doc.exe	\
-	$(BLDLIB_SRC)/wakeup.exe
+	$(BLDLIB_SRC)/sorted-doc.exe
 !if $(USE_MINITAR)
 LIB_SRC_TOOLS = \
 	$(LIB_SRC_TOOLS) \
--- a/src/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -5,6 +5,76 @@
 	against msvcrt8.  This fix was taken from the Mozilla project
 	which experienced the same problem.
 
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* ppc.ldscript: Remove, obsolete.
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* events.h (character_to_event_meta_behavior): New enumeration,
+	describing what character_to_event should do with characters in
+	the range ?\x80-?\xFF, and passed as the third argument to
+	character_to_event instead of the binary use_console_meta_flag.
+	* events.c (character_to_event, Fcharacter_to_event):
+	* event-unixoid.c (read_event_from_tty_or_stream_desc): 
+	* event-stream.c (maybe_kbd_translate, maybe_kbd_translate): 
+	* event-msw.c (mswindows_need_event):
+	Use the new enumeration.
+	* event-Xt.c (x_to_emacs_keysym): 
+	Call character_to_event when we receive XLookupChars events,
+	passing latin_1_maps_to_itself as the meta_behavior flag,
+	addressing the problem FKtPp sees in 87bpi9mwpu.fsf@yahoo.com.cn
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD): 
+	That last change was wrong in theory though not in practice; we're
+	comparing function pointers, not enumeration values.
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD):
+	Cast the enumeration values here to integers before comparing
+	them, fixing the build on VC++. Thank you Vin!
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* elhash.c (HASH_TABLE_DEFAULT_REHASH_THRESHOLD):
+	New macro, giving a default value for a hash table's rehash
+	threshold given its size and test function. 
+	(print_hash_table): Print the hash table's rehash threshold if it
+	has a non-default value. Ditto for its rehash size. 
+	(Fmake_hash_table): Supply the keyword arguments in a format
+	understood by #'function-arglist. 
+
+2009-12-17  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* alloc.c (resize_string): 
+	Don't attempt to free dumped data in this function, avoiding an
+	assertion failure.
+
+2009-12-13  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* unicode.c (unicode_query): Add missing return type.
+	Thanks to 'mnewsam' on the tracker.
+
+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
+	as a full XLFD.
+
 2009-11-19  Vin Shelton  <acs@xemacs.org>
 
 	* sysdep.c (sys_subshell): Restore sys_subshell(); it's necessary
@@ -451,6 +521,18 @@
 
 2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>
 
+	* window.c (Fsave_window_excursion, save_window_excursion_unwind): 
+	Remove these functions, the first was masked by
+	#'save-window-excursion in window.el, and the second can be easily
+	replaced with Lisp primitives.
+	* bytecode.c (Bsave_window_excursion) : Don't pass
+	save_window_excursion_unwind to record_unwind_protect, now the
+	former is gone.
+	* event-stream.c (execute_help_form): 
+	Ditto.
+
+2009-11-08  Aidan Kehoe  <kehoea@parhasard.net>
+
 	* sysfile.h (DEFAULT_DIRECTORY_FALLBACK):
 	New #define, "/" on Unix and "C:\\" on Win32 native, a directory
 	that should "always" be available.
@@ -483,6 +565,11 @@
 	On Darwin, use realpath(3)'s case correction to get the canonical
 	case for a file; thank you Robert Delius Royar!
 
+2009-10-16  Michael Sperber  <mike@xemacs.org>
+
+	* buffer.c (set_buffer_internal): Synchronize the window point
+	with the current point when switching to another buffer.
+
 2009-10-11  Michael Sperber  <mike@xemacs.org>
 
 	* event-stream.c (post_command_hook): Run `post-command-hook'
--- a/src/EmacsFrame.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/EmacsFrame.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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/alloc.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/alloc.c	Tue Dec 22 19:07:40 2009 +0900
@@ -2690,19 +2690,20 @@
 	    }
 	  XSET_STRING_DATA (s, new_data);
 
-	  {
-	    /* We need to mark this chunk of the string_chars_block
-	       as unused so that compact_string_chars() doesn't
-	       freak. */
-	    struct string_chars *old_s_chars = (struct string_chars *)
-	      ((char *) old_data - offsetof (struct string_chars, chars));
-	    /* Sanity check to make sure we aren't hosed by strange
-	       alignment/padding. */
-	    assert (old_s_chars->string == XSTRING (s));
-	    MARK_STRING_CHARS_AS_FREE (old_s_chars);
-	    ((struct unused_string_chars *) old_s_chars)->fullsize =
-	      oldfullsize;
-	  }
+	  if (!DUMPEDP (old_data)) /* Can't free dumped data. */
+	    {
+	      /* We need to mark this chunk of the string_chars_block
+		 as unused so that compact_string_chars() doesn't
+		 freak. */
+	      struct string_chars *old_s_chars = (struct string_chars *)
+		((char *) old_data - offsetof (struct string_chars, chars));
+	      /* Sanity check to make sure we aren't hosed by strange
+		 alignment/padding. */
+	      assert (old_s_chars->string == XSTRING (s));
+	      MARK_STRING_CHARS_AS_FREE (old_s_chars);
+	      ((struct unused_string_chars *) old_s_chars)->fullsize =
+                  oldfullsize;
+	    }
 	}
     }
 #endif /* not NEW_GC */
--- a/src/buffer.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/buffer.c	Tue Dec 22 19:07:40 2009 +0900
@@ -1512,6 +1512,12 @@
 
   if (old_buf)
     {
+      /* synchronize window point */
+      Lisp_Object current_window = Fselected_window (Qnil);
+      if (!NILP (current_window)
+	  && EQ(Fwindow_buffer (current_window), wrap_buffer (old_buf)))
+	Fset_window_point (current_window, make_int (BUF_PT (old_buf)));
+
       /* Put the undo list back in the base buffer, so that it appears
 	 that an indirect buffer shares the undo list of its base.  */
       if (old_buf->base_buffer)
--- a/src/bytecode.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/bytecode.c	Tue Dec 22 19:07:40 2009 +0900
@@ -1455,11 +1455,15 @@
 			     save_excursion_save ());
       break;
 
+      /* This bytecode will eventually go away, once we no longer encounter
+         byte code from 21.4. In 21.5.10 and newer, save-window-excursion is
+         a macro. */
     case Bsave_window_excursion:
       {
 	int count = specpdl_depth ();
-	record_unwind_protect (save_window_excursion_unwind,
-			       call1 (Qcurrent_window_configuration, Qnil));
+	record_unwind_protect (Feval,
+                               list2 (Qset_window_configuration,
+                                      call0 (Qcurrent_window_configuration)));
 	TOP_LVALUE = Fprogn (TOP);
 	unbind_to (count);
 	break;
--- a/src/config.h.in	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/config.h.in	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/depend	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/device-x.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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/elhash.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/elhash.c	Tue Dec 22 19:07:40 2009 +0900
@@ -118,6 +118,8 @@
 #define HASH_TABLE_DEFAULT_SIZE 16
 #define HASH_TABLE_DEFAULT_REHASH_SIZE 1.3
 #define HASH_TABLE_MIN_SIZE 10
+#define HASH_TABLE_DEFAULT_REHASH_THRESHOLD(size, test_function)   \
+  (((size) > 4096 && NULL == (test_function)) ? 0.7 : 0.6)
 
 #define HASHCODE(key, ht)						\
   ((((ht)->hash_function ? (ht)->hash_function (key) : LISP_HASH (key))	\
@@ -353,6 +355,7 @@
 		  int UNUSED (escapeflag))
 {
   Lisp_Hash_Table *ht = XHASH_TABLE (obj);
+  Ascbyte pigbuf[350];
 
   write_c_string (printcharfun,
 		  print_readably ? "#s(hash-table" : "#<hash-table");
@@ -389,6 +392,20 @@
 	  "you-d-better-not-see-this"));
     }
 
+  if (ht->rehash_size != HASH_TABLE_DEFAULT_REHASH_SIZE)
+    {
+      float_to_string (pigbuf, ht->rehash_size);
+      write_fmt_string (printcharfun, " rehash-size %s", pigbuf);
+    }
+
+  if (ht->rehash_threshold
+      != HASH_TABLE_DEFAULT_REHASH_THRESHOLD (ht->size,
+					      ht->test_function))
+    {
+      float_to_string (pigbuf, ht->rehash_threshold);
+      write_fmt_string (printcharfun, " rehash-threshold %s", pigbuf);
+    }
+
   if (ht->count)
     print_hash_table_data (ht, printcharfun);
 
@@ -591,7 +608,7 @@
 
   ht->rehash_threshold =
     rehash_threshold > 0.0 ? rehash_threshold :
-    size > 4096 && !ht->test_function ? 0.7 : 0.6;
+    HASH_TABLE_DEFAULT_REHASH_THRESHOLD (size, ht->test_function);
 
   if (size < HASH_TABLE_MIN_SIZE)
     size = HASH_TABLE_MIN_SIZE;
@@ -912,7 +929,6 @@
 DEFUN ("make-hash-table", Fmake_hash_table, 0, MANY, 0, /*
 Return a new empty hash table object.
 Use Common Lisp style keywords to specify hash table properties.
- (make-hash-table &key test size rehash-size rehash-threshold weakness)
 
 Keyword :test can be `eq', `eql' (default) or `equal'.
 Comparison between keys is done using this function.
@@ -957,7 +973,7 @@
 hash table if the value or key are pointed to by something other than a weak
 hash table, even if the other is not.
 
-arguments: (&rest ARGS)
+arguments: (&key TEST SIZE REHASH-SIZE REHASH-THRESHOLD WEAKNESS)
 */
        (int nargs, Lisp_Object *args))
 {
--- a/src/event-Xt.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/event-Xt.c	Tue Dec 22 19:07:40 2009 +0900
@@ -967,10 +967,12 @@
             Lisp_Object emacs_event = Fmake_event (Qnil, Qnil);
 	    Lisp_Event *ev          = XEVENT (emacs_event);
             ev->channel	            = DEVICE_CONSOLE (d);
+	    XSET_EVENT_TYPE (emacs_event, key_press_event);
+	    /* Make sure space and linefeed and so on get the proper
+	       keysyms. */
+	    character_to_event (ch, ev, XCONSOLE (ev->channel),
+				latin_1_maps_to_itself, 0);
             ev->timestamp	    = event->time;
-	    XSET_EVENT_TYPE (emacs_event, key_press_event);
-	    XSET_EVENT_KEY_MODIFIERS (emacs_event, 0);
-	    XSET_EVENT_KEY_KEYSYM (emacs_event, make_char (ch));
             enqueue_dispatch_event (emacs_event);
           }
 	Lstream_close (istr);
--- a/src/event-msw.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/event-msw.c	Tue Dec 22 19:07:40 2009 +0900
@@ -1616,7 +1616,8 @@
 			  /* Here we really do want to set the
 			     use_console_meta_flag because the char is from the
 			     TTY. */
-			  character_to_event (ch, XEVENT (event), con, 1, 1);
+			  character_to_event (ch, XEVENT (event), con,
+					      use_console_meta_flag, 1);
 			  XSET_EVENT_CHANNEL (event, porca_troia);
 			  enqueue_dispatch_event (event);
 			}
--- a/src/event-stream.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/event-stream.c	Tue Dec 22 19:07:40 2009 +0900
@@ -839,8 +839,9 @@
   struct gcpro gcpro1, gcpro2;
   GCPRO2 (echo, help);
 
-  record_unwind_protect (save_window_excursion_unwind,
-			 call1 (Qcurrent_window_configuration, Qnil));
+  record_unwind_protect (Feval,
+                         list2 (Qset_window_configuration,
+                                call0 (Qcurrent_window_configuration)));
   reset_key_echo (command_builder, 1);
 
   help = IGNORE_MULTIPLE_VALUES (Feval (Vhelp_form));
@@ -3188,7 +3189,8 @@
 	  Lisp_Object ev2 = Fmake_event (Qnil, Qnil);
 
 	  character_to_event (XCHAR (traduit), XEVENT (ev2),
-			      XCONSOLE (XEVENT_CHANNEL (event)), 0, 1);
+			      XCONSOLE (XEVENT_CHANNEL (event)),
+			      high_bit_is_meta, 1);
 	  XSET_EVENT_KEY_KEYSYM (event, XEVENT_KEY_KEYSYM (ev2));
 	  XSET_EVENT_KEY_MODIFIERS (event, XEVENT_KEY_MODIFIERS (ev2));
 	  Fdeallocate_event (ev2);
@@ -3213,7 +3215,8 @@
 	  Lisp_Object ev2 = Fmake_event (Qnil, Qnil);
 
 	  character_to_event (XCHAR (traduit), XEVENT (ev2),
-			      XCONSOLE (XEVENT_CHANNEL (event)), 0, 1);
+			      XCONSOLE (XEVENT_CHANNEL (event)),
+			      high_bit_is_meta, 1);
 	  XSET_EVENT_KEY_KEYSYM (event, XEVENT_KEY_KEYSYM (ev2));
 	  XSET_EVENT_KEY_MODIFIERS (event,
                                XEVENT_KEY_MODIFIERS (event) |
--- a/src/event-unixoid.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/event-unixoid.c	Tue Dec 22 19:07:40 2009 +0900
@@ -118,9 +118,7 @@
     }
   else
     {
-      /* Here we really do want to set the use_console_meta_flag because
-         the char is from the TTY. */
-      character_to_event (ch, event, con, 1, 1);
+      character_to_event (ch, event, con, use_console_meta_flag, 1);
       event->channel = console;
       return 1;
     }
--- a/src/events.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/events.c	Tue Dec 22 19:07:40 2009 +0900
@@ -1195,7 +1195,12 @@
     }
 }
 
-/* USE_CONSOLE_META_FLAG is as in `character-to-event'.
+/* META_BEHAVIOR can be one of the following values, defined in events.h:
+
+    high_bit_is_meta
+    use_console_meta_flag
+    latin_1_maps_to_itself
+
    DO_BACKSPACE_MAPPING means that if CON is a TTY, and C is a the TTY's
    backspace character, the event will have keysym `backspace' instead of
    '(control h).  It is clearly correct to do this conversion is the
@@ -1245,7 +1250,7 @@
 
 void
 character_to_event (Ichar c, Lisp_Event *event, struct console *con,
-		    int use_console_meta_flag,
+		    character_to_event_meta_behavior meta_behavior,
 		    int USED_IF_TTY (do_backspace_mapping))
 {
   Lisp_Object k = Qnil;
@@ -1256,13 +1261,10 @@
 #ifndef MULE
   c &= 255;
 #endif
-  if (c > 127 && c <= 255)
+  if (meta_behavior != latin_1_maps_to_itself && c > 127 && c <= 255)
     {
-      /* #### What if the user wanted a Latin-1 char?  Perhaps the answer
-	 is what was suggested above.
-      */
       int meta_flag = 1;
-      if (use_console_meta_flag && CONSOLE_TTY_P (con))
+      if (meta_behavior == use_console_meta_flag && CONSOLE_TTY_P (con))
 	meta_flag = TTY_FLAGS (con).meta_key;
       switch (meta_flag)
 	{
@@ -1451,7 +1453,7 @@
 inverse functions, since events contain much more information than the
 Lisp character object type can encode.
 */
-       (keystroke, event, console, use_console_meta_flag))
+       (keystroke, event, console, use_console_meta_flag_))
 {
   struct console *con = decode_console (console);
   if (NILP (event))
@@ -1464,7 +1466,8 @@
     {
       CHECK_CHAR_COERCE_INT (keystroke);
       character_to_event (XCHAR (keystroke), XEVENT (event), con,
-			  !NILP (use_console_meta_flag), 1);
+			  (NILP (use_console_meta_flag_) ?
+			   high_bit_is_meta : use_console_meta_flag), 1); 
     }
   return event;
 }
--- a/src/events.h	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/events.h	Tue Dec 22 19:07:40 2009 +0900
@@ -951,13 +951,20 @@
 /* Maybe this should be trickier */
 #define KEYSYM(x) (intern (x))
 
+typedef enum character_to_event_meta_behavior
+{
+  high_bit_is_meta,
+  use_console_meta_flag,
+  latin_1_maps_to_itself
+} character_to_event_meta_behavior;
+
 /* from events.c */
 void format_event_object (Eistring *buf, Lisp_Object event, int brief);
 /*void format_event_data_object (Eistring *buf, Lisp_Object data, int brief);*/
-void character_to_event (Ichar c, Lisp_Event *event,
-                         struct console *con,
-                         int use_console_meta_flag,
+void character_to_event (Ichar, Lisp_Event *, struct console *,
+                         character_to_event_meta_behavior meta_flag,
                          int do_backspace_mapping);
+
 void zero_event (Lisp_Event *e);
 
 #define MECR_DEALLOCATE_EVENT 1
--- a/src/faces.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/faces.c	Tue Dec 22 19:07:40 2009 +0900
@@ -2342,6 +2342,8 @@
       Fcons
       (Fcons
        (list1 (device_symbol),
+	/* grrr.  This really does need to be "*", not an XLFD.
+	   An unspecified XLFD won't pick up stuff like 10x20. */
 	build_string ("*")),
        inst_list);
 #ifdef MULE
--- a/src/frame-x.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/frame-x.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/glyphs-x.c	Tue Dec 22 19:07:40 2009 +0900
@@ -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/keymap.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/keymap.c	Tue Dec 22 19:07:40 2009 +0900
@@ -1103,7 +1103,8 @@
           struct gcpro gcpro1;
           GCPRO1 (event);
 	  character_to_event (XCHAR (idx), XEVENT (event),
-			      XCONSOLE (Vselected_console), 0, 0);
+			      XCONSOLE (Vselected_console),
+			      high_bit_is_meta, 0);
 	  indirection.keysym = XEVENT_KEY_KEYSYM (event);
 	  indirection.modifiers = XEVENT_KEY_MODIFIERS (event);
 	  UNGCPRO;
@@ -1529,7 +1530,7 @@
       struct gcpro gcpro1;
       GCPRO1 (event);
       character_to_event (XCHAR_OR_CHAR_INT (spec), XEVENT (event),
-			  XCONSOLE (Vselected_console), 0, 0);
+			  XCONSOLE (Vselected_console), high_bit_is_meta, 0);
       SET_KEY_DATA_KEYSYM (returned_value, XEVENT_KEY_KEYSYM (event));
       SET_KEY_DATA_MODIFIERS (returned_value, 
                               XEVENT_KEY_MODIFIERS (event));
@@ -3526,7 +3527,8 @@
 	  Lisp_Object event = Fmake_event (Qnil, Qnil);
 	  CHECK_CHAR_COERCE_INT (key);
 	  character_to_event (XCHAR (key), XEVENT (event),
-			      XCONSOLE (Vselected_console), 0, 1);
+			      XCONSOLE (Vselected_console),
+			      high_bit_is_meta, 1);
 	  format_event_object (buf, event, 1);
 	  Fdeallocate_event (event);
 	}
--- a/src/ppc.ldscript	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
-	      "elf32-powerpc")
-OUTPUT_ARCH(powerpc)
-ENTRY(_start)
-SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/powerpc-unknown-linux-gnulibc1/lib);
-/* Do we need any of these for elf?
-   __DYNAMIC = 0;    */
-PROVIDE (__stack = 0);
-SECTIONS
-{
-  /* Read-only sections, merged into text segment: */
-  . = 0x01800000 + SIZEOF_HEADERS;
-  .interp   : { *(.interp) }
-  .hash		  : { *(.hash)		}
-  .dynsym	  : { *(.dynsym)		}
-  .dynstr	  : { *(.dynstr)		}
-  .gnu.version   : { *(.gnu.version)      }
-  .gnu.version_d   : { *(.gnu.version_d)  }
-  .gnu.version_r   : { *(.gnu.version_r)  }
-  .rela.text     :
-    { *(.rela.text) *(.rela.gnu.linkonce.t*) }
-  .rela.data     :
-    { *(.rela.data) *(.rela.gnu.linkonce.d*) }
-  .rela.rodata   :
-    { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
-  .rela.got	  : { *(.rela.got)	}
-  .rela.got1	  : { *(.rela.got1)	}
-  .rela.got2	  : { *(.rela.got2)	}
-  .rela.ctors	  : { *(.rela.ctors)	}
-  .rela.dtors	  : { *(.rela.dtors)	}
-  .rela.init	  : { *(.rela.init)	}
-  .rela.fini	  : { *(.rela.fini)	}
-  .rela.bss	  : { *(.rela.bss)	}
-  .rela.plt	  : { *(.rela.plt)	}
-  .rela.sdata	  : { *(.rela.sdata)	}
-  .rela.sbss	  : { *(.rela.sbss)	}
-  .rela.sdata2	  : { *(.rela.sdata2)	}
-  .rela.sbss2	  : { *(.rela.sbss2)	}
-  .text      :
-  {
-    *(.text)
-    /* .gnu.warning sections are handled specially by elf32.em.  */
-    *(.gnu.warning)
-    *(.gnu.linkonce.t*)
-  } =0
-  .init		  : { *(.init)		} =0
-  .fini		  : { *(.fini)		} =0
-  .rodata	  : { *(.rodata) *(.gnu.linkonce.r*) }
-  .rodata1	  : { *(.rodata1) }
-  _etext = .;
-  PROVIDE (etext = .);
-  .sdata2   : { *(.sdata2) }
-  .sbss2   : { *(.sbss2) }
-  /* Adjust the address for the data segment.  We want to adjust up to
-     the same address within the page on the next page up.  It would
-     be more correct to do this:
-       . = .;
-     The current expression does not correctly handle the case of a
-     text segment ending precisely at the end of a page; it causes the
-     data segment to skip a page.  The above expression does not have
-     this problem, but it will currently (2/95) cause BFD to allocate
-     a single segment, combining both text and data, for this case.
-     This will prevent the text segment from being shared among
-     multiple executions of the program; I think that is more
-     important than losing a page of the virtual address space (note
-     that no actual memory is lost; the page which is skipped can not
-     be referenced).  */
-  . = .;
-  .data    :
-  {
-    *(.data)
-    *(.gnu.linkonce.d*)
-    CONSTRUCTORS
-  }
-  .data1   : { *(.data1) }
-  .got1		  : { *(.got1) }
-  .dynamic	  : { *(.dynamic) }
-  /* Put .ctors and .dtors next to the .got2 section, so that the pointers
-     get relocated with -mrelocatable. Also put in the .fixup pointers.
-     The current compiler no longer needs this, but keep it around for 2.7.2  */
-		PROVIDE (_GOT2_START_ = .);
-  .got2		  :  { *(.got2) }
-		PROVIDE (__CTOR_LIST__ = .);
-  .ctors	  : { *(.ctors) }
-		PROVIDE (__CTOR_END__ = .);
-		PROVIDE (__DTOR_LIST__ = .);
-  .dtors	  : { *(.dtors) }
-		PROVIDE (__DTOR_END__ = .);
-		PROVIDE (_FIXUP_START_ = .);
-  .fixup	  : { *(.fixup) }
-		PROVIDE (_FIXUP_END_ = .);
-		PROVIDE (_GOT2_END_ = .);
-		PROVIDE (_GOT_START_ = .);
-  .got		  : { *(.got) }
-  .got.plt	  : { *(.got.plt) }
-		PROVIDE (_GOT_END_ = .);
-  /* We want the small data sections together, so single-instruction offsets
-     can access them all, and initialized data all before uninitialized, so
-     we can shorten the on-disk segment size.  */
-  .sdata	  : { *(.sdata) }
-  _edata  =  .;
-  PROVIDE (edata = .);
-  .sbss      :
-  {
-  }
-  .bss       :
-  {
-     PROVIDE (__sbss_start = .);
-    *(.sbss)
-    *(.scommon)
-    PROVIDE (__sbss_end = .);
-  PROVIDE (__bss_start = .);
-   *(.dynbss)
-   *(.bss)
-   *(COMMON)
-  }
-  _end = . ;
-  PROVIDE (end = .);
-  /* These are needed for ELF backends which have not yet been
-     converted to the new style linker.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  /* DWARF debug sections.
-     Symbols in the DWARF debugging sections are relative to the beginning
-     of the section so we begin them at 0.  */
-  /* DWARF 1 */
-  .debug          0 : { *(.debug) }
-  .line           0 : { *(.line) }
-  /* GNU DWARF 1 extensions */
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }
-  .debug_sfnames  0 : { *(.debug_sfnames) }
-  /* DWARF 1.1 and DWARF 2 */
-  .debug_aranges  0 : { *(.debug_aranges) }
-  .debug_pubnames 0 : { *(.debug_pubnames) }
-  /* DWARF 2 */
-  .debug_info     0 : { *(.debug_info) }
-  .debug_abbrev   0 : { *(.debug_abbrev) }
-  .debug_line     0 : { *(.debug_line) }
-  .debug_frame    0 : { *(.debug_frame) }
-  .debug_str      0 : { *(.debug_str) }
-  .debug_loc      0 : { *(.debug_loc) }
-  .debug_macinfo  0 : { *(.debug_macinfo) }
-  /* SGI/MIPS DWARF 2 extensions */
-  .debug_weaknames 0 : { *(.debug_weaknames) }
-  .debug_funcnames 0 : { *(.debug_funcnames) }
-  .debug_typenames 0 : { *(.debug_typenames) }
-  .debug_varnames  0 : { *(.debug_varnames) }
-  /* These must appear regardless of  .  */
-}
--- a/src/s/windowsnt.h	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/s/windowsnt.h	Tue Dec 22 19:07:40 2009 +0900
@@ -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/unicode.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/unicode.c	Tue Dec 22 19:07:40 2009 +0900
@@ -3093,6 +3093,7 @@
   return result;
 }
 #else /* !MULE */
+static Lisp_Object
 unicode_query (Lisp_Object UNUSED (codesys),
                struct buffer * UNUSED (buf),
                Charbpos UNUSED (end), int UNUSED (flags))
--- a/src/window.c	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/window.c	Tue Dec 22 19:07:40 2009 +0900
@@ -5267,30 +5267,6 @@
   mark_window_as_deleted (w);
 }
 
-Lisp_Object
-save_window_excursion_unwind (Lisp_Object window_config)
-{
-  Lisp_Object val = call1 (Qset_window_configuration, window_config);
-  return val;
-}
-
-DEFUN ("save-window-excursion", Fsave_window_excursion, 0, UNEVALLED, 0, /*
-Execute BODY, preserving window sizes and contents.
-Restores which buffer appears in which window, where display starts,
-as well as the current buffer.
-Does not restore the value of point in current buffer.
-
-arguments: (&rest BODY)
-*/
-       (args))
-{
-  /* This function can GC */
-  int speccount = specpdl_depth ();
-
-  record_unwind_protect (save_window_excursion_unwind,
-			 call1 (Qcurrent_window_configuration, Qnil));
-  return unbind_to_1 (speccount, Fprogn (args));
-}
 
 static int
 get_current_pixel_pos (Lisp_Object window, Lisp_Object pos,
@@ -5558,7 +5534,6 @@
 #ifdef MEMORY_USAGE_STATS
   DEFSUBR (Fwindow_memory_usage);
 #endif
-  DEFSUBR (Fsave_window_excursion);
   DEFSUBR (Fcurrent_pixel_column);
   DEFSUBR (Fcurrent_pixel_row);
 }
--- a/src/window.h	Fri Nov 27 00:51:41 2009 +0100
+++ b/src/window.h	Tue Dec 22 19:07:40 2009 +0900
@@ -105,7 +105,6 @@
 EXFUN (Fwindow_point, 1);
 EXFUN (Fwindow_start, 1);
 
-Lisp_Object save_window_excursion_unwind (Lisp_Object);
 extern Lisp_Object Qcurrent_window_configuration, Qset_window_configuration;
 Lisp_Object display_buffer (Lisp_Object, Lisp_Object, Lisp_Object);
 
--- a/src/xmu.c	Fri Nov 27 00:51:41 2009 +0100
+++ /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	Fri Nov 27 00:51:41 2009 +0100
+++ /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_ */
--- a/tests/ChangeLog	Fri Nov 27 00:51:41 2009 +0100
+++ b/tests/ChangeLog	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,13 @@
+2009-12-18  Jerry James  <james@xemacs.org>
+
+	* glyph-test.el: Add copyright and GPL v2 or later header with
+	permission of Andy Piper.
+	* gutter-test.el: Ditto.
+
+2009-12-10  Jerry James  <james@xemacs.org>
+
+	* auc-tex-test: Remove obsolete file.
+
 2009-11-10  Jerry James  <james@xemacs.org>
 
 	* autoconf/regressiontest.pl: Remove reference to dynodump.
--- a/tests/auc-tex-test	Fri Nov 27 00:51:41 2009 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-Per Abrahamsen <abraham@dina.kvl.dk> writes:
-
-	xemacs -q
-	
-	(require 'tex-site) RET 
-	
-	C-x C-f test.tex RET
-	
-	==> I now get the AUC TeX menus.
-	
-	C-c C-e RET RET german
-	
-	"
-	
-	==> Inserts ``
-	
-	C-c C-n "
-	
-	==> Inserts "
-
-This means it find AUC TeX correctly, as well as the style files.
--- a/tests/glyph-test.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/tests/glyph-test.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,22 @@
+;;; Copyright (C) 1998 Andy Piper
+
+;;; This file is part of XEmacs.
+
+;;; XEmacs is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2, or (at your
+;;; option) any later version.
+
+;;; XEmacs is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;; General Public License for more details.
+
+;;; You should have received a copy of the GNU General Public License
+;;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;;; Boston, MA 02110-1301, USA.
+
 (set-extent-begin-glyph 
  (make-extent (point) (point))
  (setq im (make-glyph [xbm :file "xemacsicon.xbm"])))
--- a/tests/gutter-test.el	Fri Nov 27 00:51:41 2009 +0100
+++ b/tests/gutter-test.el	Tue Dec 22 19:07:40 2009 +0900
@@ -1,3 +1,22 @@
+;;; Copyright (C) 1998 Andy Piper
+
+;;; This file is part of XEmacs.
+
+;;; XEmacs is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2, or (at your
+;;; option) any later version.
+
+;;; XEmacs is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;;; General Public License for more details.
+
+;;; You should have received a copy of the GNU General Public License
+;;; along with XEmacs; see the file COPYING.  If not, write to the Free
+;;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;;; Boston, MA 02110-1301, USA.
+
 (setq str "Hello\nAgain")
 (setq str-ext (make-extent 0 5 str))
 (set-extent-begin-glyph