]> code.delx.au - gnu-emacs/commitdiff
Merged from emacs@sv.gnu.org
authorKaroly Lorentey <karoly@lorentey.hu>
Sat, 24 Feb 2007 19:26:54 +0000 (19:26 +0000)
committerKaroly Lorentey <karoly@lorentey.hu>
Sat, 24 Feb 2007 19:26:54 +0000 (19:26 +0000)
Patches applied:

 * emacs@sv.gnu.org/emacs--devo--0--patch-619
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-620
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-621
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-622
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-623
   Remove RCS keywords

 * emacs@sv.gnu.org/emacs--devo--0--patch-624
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-625
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-626
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-627
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-628
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-629
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-630
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-631
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-632
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-633
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-634
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-635
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-636
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-637
   Remove RCS keywords

 * emacs@sv.gnu.org/emacs--devo--0--patch-638
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-639
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-640
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-641
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-642
   Merge from gnus--rel--5.10

 * emacs@sv.gnu.org/emacs--devo--0--patch-643
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-644
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-645
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-646
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-647
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-648
   Update from CVS

 * emacs@sv.gnu.org/emacs--devo--0--patch-649
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-197
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-198
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-199
   Update from CVS

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-200
   Merge from emacs--devo--0

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-201
   Update from CVS: lisp/nnweb.el (nnweb-google-parse-1): Update parser.

 * emacs@sv.gnu.org/gnus--rel--5.10--patch-202
   Update from CVS

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-596

36 files changed:
1  2 
README
configure
configure.in
lib-src/emacsclient.c
lisp/bindings.el
lisp/faces.el
lisp/files.el
lisp/font-lock.el
lisp/international/mule-cmds.el
lisp/international/mule.el
lisp/isearch.el
lisp/ldefs-boot.el
lisp/simple.el
lisp/startup.el
lisp/subr.el
lisp/term/README
lisp/term/mac-win.el
src/Makefile.in
src/buffer.c
src/callproc.c
src/dispnew.c
src/frame.c
src/gtkutil.c
src/indent.c
src/lread.c
src/macfns.c
src/macterm.c
src/macterm.h
src/minibuf.c
src/print.c
src/process.c
src/w32term.c
src/w32term.h
src/window.c
src/xfaces.c
src/xterm.c

diff --combined README
index ebb42242dea6e713ceb363952b6729597413ae8a,4f8c6d6bb499ecc68540ecd1acfca1015bda76cf..2926e4cbf311c3ae2020f06267814cfe989205af
--- 1/README
--- 2/README
+++ b/README
@@@ -1,4 -1,9 +1,9 @@@
 -This directory tree holds version 22.0.94 of GNU Emacs, the extensible,
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   Free Software Foundation, Inc.
+ See the end of the file for license conditions.
 +This directory tree holds version 23.0.51 of GNU Emacs, the extensible,
  customizable, self-documenting real-time display editor.
  
  The file INSTALL in this directory says how to build and install GNU
@@@ -87,3 -92,21 +92,21 @@@ There are several subdirectories
  that aren't part of the standard distribution of the OS.  The
  platform-specific README files and installation instructions should
  list the required tools.
\f
+ This file is part of GNU Emacs.
+ GNU Emacs 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.
+ GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
diff --combined configure
index 5b8fe5605320ec55b1464d56c704576a9c3a46cc,d0ed64546d6868c179f57253b7bbd6588b05227e..0d3a98c8a14177fb4796397336d71526fa9af004
+++ b/configure
@@@ -2235,6 -2235,7 +2235,7 @@@ _ACEO
        vax-*-netbsd*)  machine=vax ;;
        arm-*-netbsd*)  machine=arm ;;
        x86_64-*-netbsd*)       machine=amdx86-64 ;;
+       hppa-*-netbsd*) machine=hp800 ;;
        shle-*-netbsd*) machine=sh3el ;;
      esac
    ;;
      esac
    ;;
  
+   hppa*-*-linux-gnu* )
+     machine=hp800 opsys=gnu-linux
+   ;;
+   hppa*-*-nextstep* )
+     machine=hp800 opsys=nextstep
+   ;;
    ## Orion machines
    orion-orion-bsd* )
      machine=orion opsys=bsd4-2
@@@ -6278,13 -6287,13 +6287,13 @@@ echo "${ECHO_T}yes" >&6; 
  
              { echo "$as_me:$LINENO: checking ALSA_CFLAGS" >&5
  echo $ECHO_N "checking ALSA_CFLAGS... $ECHO_C" >&6; }
-             ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"`
+             ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $ALSA_CFLAGS" >&5
  echo "${ECHO_T}$ALSA_CFLAGS" >&6; }
  
              { echo "$as_me:$LINENO: checking ALSA_LIBS" >&5
  echo $ECHO_N "checking ALSA_LIBS... $ECHO_C" >&6; }
-             ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"`
+             ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $ALSA_LIBS" >&5
  echo "${ECHO_T}$ALSA_LIBS" >&6; }
          else
@@@ -10943,13 -10952,13 +10952,13 @@@ echo "${ECHO_T}yes" >&6; 
  
              { echo "$as_me:$LINENO: checking GTK_CFLAGS" >&5
  echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6; }
-             GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"`
+             GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $GTK_CFLAGS" >&5
  echo "${ECHO_T}$GTK_CFLAGS" >&6; }
  
              { echo "$as_me:$LINENO: checking GTK_LIBS" >&5
  echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6; }
-             GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"`
+             GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $GTK_LIBS" >&5
  echo "${ECHO_T}$GTK_LIBS" >&6; }
          else
      with_toolkit_scroll_bars=yes
    fi
  
 -      HAVE_GTK_MULTIDISPLAY=no
 +          HAVE_GTK_MULTIDISPLAY=no
  
 -for ac_func in gdk_display_open
 -do
 -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 -{ echo "$as_me:$LINENO: checking for $ac_func" >&5
 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
 -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
 -  echo $ECHO_N "(cached) $ECHO_C" >&6
 -else
 -  cat >conftest.$ac_ext <<_ACEOF
 -/* confdefs.h.  */
 -_ACEOF
 -cat confdefs.h >>conftest.$ac_ext
 -cat >>conftest.$ac_ext <<_ACEOF
 -/* end confdefs.h.  */
 -/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
 -   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
 -#define $ac_func innocuous_$ac_func
 -
 -/* System header to define __stub macros and hopefully few prototypes,
 -    which can conflict with char $ac_func (); below.
 -    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 -    <limits.h> exists even on freestanding compilers.  */
 -
 -#ifdef __STDC__
 -# include <limits.h>
 -#else
 -# include <assert.h>
 -#endif
 -
 -#undef $ac_func
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char $ac_func ();
 -/* The GNU C library defines this for functions which it implements
 -    to always fail with ENOSYS.  Some functions are actually named
 -    something starting with __ and the normal name is an alias.  */
 -#if defined __stub_$ac_func || defined __stub___$ac_func
 -choke me
 -#endif
 -
 -int
 -main ()
 -{
 -return $ac_func ();
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -rm -f conftest.$ac_objext conftest$ac_exeext
 -if { (ac_try="$ac_link"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 -  (eval "$ac_link") 2>conftest.er1
 -  ac_status=$?
 -  grep -v '^ *+' conftest.er1 >conftest.err
 -  rm -f conftest.er1
 -  cat conftest.err >&5
 -  echo "$as_me:$LINENO: \$? = $ac_status" >&5
 -  (exit $ac_status); } && {
 -       test -z "$ac_c_werror_flag" ||
 -       test ! -s conftest.err
 -       } && test -s conftest$ac_exeext &&
 -       $as_test_x conftest$ac_exeext; then
 -  eval "$as_ac_var=yes"
 -else
 -  echo "$as_me: failed program was:" >&5
 -sed 's/^/| /' conftest.$ac_ext >&5
 -
 -      eval "$as_ac_var=no"
 -fi
 -
 -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 -      conftest$ac_exeext conftest.$ac_ext
 -fi
 -ac_res=`eval echo '${'$as_ac_var'}'`
 -             { echo "$as_me:$LINENO: result: $ac_res" >&5
 -echo "${ECHO_T}$ac_res" >&6; }
 -if test `eval echo '${'$as_ac_var'}'` = yes; then
 -  cat >>confdefs.h <<_ACEOF
 -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 -_ACEOF
 - HAVE_GTK_MULTIDISPLAY=yes
 -fi
 -done
 -
 -  if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 -
 -cat >>confdefs.h <<\_ACEOF
 -#define HAVE_GTK_MULTIDISPLAY 1
 -_ACEOF
 -
 -  fi
        HAVE_GTK_FILE_SELECTION=no
  
  for ac_func in gtk_file_selection_new
@@@ -11589,13 -11698,13 +11598,13 @@@ echo "${ECHO_T}yes" >&6; 
  
              { echo "$as_me:$LINENO: checking XFT_CFLAGS" >&5
  echo $ECHO_N "checking XFT_CFLAGS... $ECHO_C" >&6; }
-             XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"`
+             XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $XFT_CFLAGS" >&5
  echo "${ECHO_T}$XFT_CFLAGS" >&6; }
  
              { echo "$as_me:$LINENO: checking XFT_LIBS" >&5
  echo $ECHO_N "checking XFT_LIBS... $ECHO_C" >&6; }
-             XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"`
+             XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
              { echo "$as_me:$LINENO: result: $XFT_LIBS" >&5
  echo "${ECHO_T}$XFT_LIBS" >&6; }
          else
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
  /* end confdefs.h.  */
 -#include <stdio.h>
 +#include <sys/types.h> /* for off_t */
 +     #include <stdio.h>
  int
  main ()
  {
 -return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
 +int (*fp) (FILE *, off_t, int) = fseeko;
 +     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
    ;
    return 0;
  }
@@@ -17772,13 -17879,11 +17781,13 @@@ cat confdefs.h >>conftest.$ac_ex
  cat >>conftest.$ac_ext <<_ACEOF
  /* end confdefs.h.  */
  #define _LARGEFILE_SOURCE 1
 -#include <stdio.h>
 +#include <sys/types.h> /* for off_t */
 +     #include <stdio.h>
  int
  main ()
  {
 -return fseeko (stdin, 0, 0) && (fseeko) (stdin, 0, 0);
 +int (*fp) (FILE *, off_t, int) = fseeko;
 +     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
    ;
    return 0;
  }
diff --combined configure.in
index dc174874e2e76b8eeaf172809e4f2e1591094b9d,e0883acee9197afeb6809cbdf03b6be842e7b2f6..2981e8888f05a5072fb1a07fbc068b959d0ca818
@@@ -269,6 -269,7 +269,7 @@@ dnl see the `changequote' comment above
        vax-*-netbsd*)  machine=vax ;;
        arm-*-netbsd*)  machine=arm ;;
        x86_64-*-netbsd*)       machine=amdx86-64 ;;
+       hppa-*-netbsd*) machine=hp800 ;;
        shle-*-netbsd*) machine=sh3el ;;
      esac
    ;;
      esac
    ;;
  
+   hppa*-*-linux-gnu* )
+     machine=hp800 opsys=gnu-linux
+   ;;
+   hppa*-*-nextstep* )
+     machine=hp800 opsys=nextstep
+   ;;
    ## Orion machines
    orion-orion-bsd* )
      machine=orion opsys=bsd4-2
@@@ -1475,11 -1484,11 +1484,11 @@@ AC_DEFUN([PKG_CHECK_MODULES], 
              succeeded=yes
  
              AC_MSG_CHECKING($1_CFLAGS)
-             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
              AC_MSG_RESULT($$1_CFLAGS)
  
              AC_MSG_CHECKING($1_LIBS)
-             $1_LIBS=`$PKG_CONFIG --libs "$2"`
+             $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
              AC_MSG_RESULT($$1_LIBS)
          else
              AC_MSG_RESULT(no)
@@@ -2060,15 -2069,12 +2069,15 @@@ if test "${with_gtk}" = "yes" || test "
  
    dnl  Check if we can use multiple displays with this GTK version.
    dnl  If gdk_display_open exists, assume all others are there also.
 +  dnl  XXX The multidisplay feature is severely broken in current GTK
 +  dnl  versions. --lorentey
    HAVE_GTK_MULTIDISPLAY=no
 -  AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
 -  if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 -    AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
 -              [Define to 1 if GTK can handle more than one display.])
 -  fi
 +  dnl AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
 +  dnl if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 +  dnl   AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
 +  dnl             [Define to 1 if GTK can handle more than one display.])
 +  dnl fi
 +
    dnl  Check if we have the old file selection dialog.
    dnl  If gdk_display_open exists, assume all others are there also.
    HAVE_GTK_FILE_SELECTION=no
diff --combined lib-src/emacsclient.c
index ae836e70371eba3bdc954081d053070e2ec6ffb6,ea1e6cd7af89108235f0d7a3da91fc4ff2044507..2231934b1858081d5c67998d669e60f1a0e655f5
@@@ -76,31 -76,7 +76,31 @@@ Boston, MA 02110-1301, USA.  *
  # include <pwd.h>
  #endif /* not WINDOWSNT */
  #endif /* not VMS */
 +#include <sys/stat.h>
  
 +#include <signal.h>
 +#include <errno.h>
 +
 +/* From lisp.h */
 +#ifndef DIRECTORY_SEP
 +#define DIRECTORY_SEP '/'
 +#endif
 +#ifndef IS_DIRECTORY_SEP
 +#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
 +#endif
 +#ifndef IS_DEVICE_SEP
 +#ifndef DEVICE_SEP
 +#define IS_DEVICE_SEP(_c_) 0
 +#else
 +#define IS_DEVICE_SEP(_c_) ((_c_) == DEVICE_SEP)
 +#endif
 +#endif
 +#ifndef IS_ANY_SEP
 +#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_))
 +#endif
 +
 +
 +\f
  char *getenv (), *getwd ();
  char *(getcwd) ();
  
  #endif
  \f
  #define SEND_STRING(data) (send_to_emacs (s, (data)))
 -#define SEND_QUOTED(data) (quote_file_name (s, (data)))
 +#define SEND_QUOTED(data) (quote_argument (s, (data)))
  
  #ifndef EXIT_SUCCESS
  #define EXIT_SUCCESS 0
  /* Name used to invoke this program.  */
  char *progname;
  
 +/* The first argument to main. */
 +int main_argc;
 +
 +/* The second argument to main. */
 +char **main_argv;
 +
  /* Nonzero means don't wait for a response from Emacs.  --no-wait.  */
  int nowait = 0;
  
  /* Nonzero means args are expressions to be evaluated.  --eval.  */
  int eval = 0;
  
 +/* Nonzero means don't open a new frame.  --current-frame.  */
 +int current_frame = 0;
 +
 +/* Nonzero means open a new graphical frame. */
 +int window_system = 0;
 +
  /* The display on which Emacs should work.  --display.  */
  char *display = NULL;
  
 +/* Nonzero means open a new Emacs frame on the current terminal. */
 +int tty = 0;
 +
  /* If non-NULL, the name of an editor to fallback to if the server
     is not running.  --alternate-editor.   */
  const char *alternate_editor = NULL;
@@@ -171,9 -132,6 +171,9 @@@ char *server_file = NULL
  /* PID of the Emacs server process.  */
  int emacs_pid = 0;
  
 +/* Socket used to communicate with the Emacs server process.  */
 +HSOCKET s;
 +
  void print_help_and_exit () NO_RETURN;
  
  struct option longopts[] =
    { "eval",   no_argument,       NULL, 'e' },
    { "help",   no_argument,       NULL, 'H' },
    { "version",        no_argument,       NULL, 'V' },
 +  { "tty",    no_argument,       NULL, 't' },
 +  { "current-frame", no_argument,  NULL, 'c' },
    { "alternate-editor", required_argument, NULL, 'a' },
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
    { "socket-name",    required_argument, NULL, 's' },
    { 0, 0, 0, 0 }
  };
  
 +\f
 +/* Like malloc but get fatal error if memory is exhausted.  */
 +
 +long *
 +xmalloc (size)
 +     unsigned int size;
 +{
 +  long *result = (long *) malloc (size);
 +  if (result == NULL)
 +    {
 +      perror ("malloc");
 +      exit (EXIT_FAILURE);
 +    }
 +  return result;
 +}
 +
 +/* Like strdup but get a fatal error if memory is exhausted. */
 +
 +char *
 +xstrdup (const char *s)
 +{
 +  char *result = strdup (s);
 +  if (result == NULL)
 +    {
 +      perror ("strdup");
 +      exit (EXIT_FAILURE);
 +    }
 +  return result;
 +}
 +
 +/* From sysdep.c */
 +#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME)
 +
 +/* Return the current working directory.  Returns NULL on errors.
 +   Any other returned value must be freed with free. This is used
 +   only when get_current_dir_name is not defined on the system.  */
 +char*
 +get_current_dir_name ()
 +{
 +  char *buf;
 +  char *pwd;
 +  struct stat dotstat, pwdstat;
 +  /* If PWD is accurate, use it instead of calling getwd.  PWD is
 +     sometimes a nicer name, and using it may avoid a fatal error if a
 +     parent directory is searchable but not readable.  */
 +    if ((pwd = getenv ("PWD")) != 0
 +      && (IS_DIRECTORY_SEP (*pwd) || (*pwd && IS_DEVICE_SEP (pwd[1])))
 +      && stat (pwd, &pwdstat) == 0
 +      && stat (".", &dotstat) == 0
 +      && dotstat.st_ino == pwdstat.st_ino
 +      && dotstat.st_dev == pwdstat.st_dev
 +#ifdef MAXPATHLEN
 +      && strlen (pwd) < MAXPATHLEN
 +#endif
 +      )
 +    {
 +      buf = (char *) xmalloc (strlen (pwd) + 1);
 +      if (!buf)
 +        return NULL;
 +      strcpy (buf, pwd);
 +    }
 +#ifdef HAVE_GETCWD
 +  else
 +    {
 +      size_t buf_size = 1024;
 +      buf = (char *) xmalloc (buf_size);
 +      if (!buf)
 +        return NULL;
 +      for (;;)
 +        {
 +          if (getcwd (buf, buf_size) == buf)
 +            break;
 +          if (errno != ERANGE)
 +            {
 +              int tmp_errno = errno;
 +              free (buf);
 +              errno = tmp_errno;
 +              return NULL;
 +            }
 +          buf_size *= 2;
 +          buf = (char *) realloc (buf, buf_size);
 +          if (!buf)
 +            return NULL;
 +        }
 +    }
 +#else
 +  else
 +    {
 +      /* We need MAXPATHLEN here.  */
 +      buf = (char *) xmalloc (MAXPATHLEN + 1);
 +      if (!buf)
 +        return NULL;
 +      if (getwd (buf) == NULL)
 +        {
 +          int tmp_errno = errno;
 +          free (buf);
 +          errno = tmp_errno;
 +          return NULL;
 +        }
 +    }
 +#endif
 +  return buf;
 +}
 +#endif
 +
  /* Message functions. */
  
  #ifdef WINDOWSNT
@@@ -353,19 -204,16 +353,19 @@@ decode_options (argc, argv
       char **argv;
  {
    alternate_editor = getenv ("ALTERNATE_EDITOR");
 +  display = getenv ("DISPLAY");
 +  if (display && strlen (display) == 0)
 +    display = NULL;
  
    while (1)
      {
        int opt = getopt_long (argc, argv,
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
 -                           "VHnea:s:f:d:",
 +                           "VHnea:s:f:d:tc",
  #else
 -                             "VHnea:f:d:",
 +                           "VHnea:f:d:tc",
  #endif
 -                             longopts, 0);
 +                           longopts, 0);
  
        if (opt == EOF)
        break;
          exit (EXIT_SUCCESS);
          break;
  
 +        case 't':
 +          tty = 1;
 +          break;
 +
 +        case 'c':
 +          current_frame = 1;
 +          break;
 +
        case 'H':
          print_help_and_exit ();
          break;
          break;
        }
      }
 +
 +  if (!tty && display)
 +    window_system = 1;
 +  else
 +    tty = 1;
 +
 +  /* --no-wait implies --current-frame on ttys when there are file
 +       arguments or expressions given.  */
 +  if (nowait && tty && argc - optind > 0)
 +    current_frame = 1;
 +
 +  if (current_frame)
 +    {
 +      tty = 0;
 +      window_system = 0;
 +    }
 +
 +  if (tty)
 +    window_system = 0;
  }
  
 +\f
  void
  print_help_and_exit ()
  {
    message (FALSE,
 -        "Usage: %s [OPTIONS] FILE...\n\
 +         "Usage: %s [OPTIONS] FILE...\n\
  Tell the Emacs server to visit the specified files.\n\
  Every FILE can be either just a FILENAME or [+LINE[:COLUMN]] FILENAME.\n\
  \n\
  The following OPTIONS are accepted:\n\
 -\n\
 --V, --version         Just print version info and return\n\
 --H, --help            Print this usage information message\n\
 --e, --eval            Evaluate FILE arguments as Lisp expressions\n\
 --n, --no-wait         Don't wait for the server to return\n\
 --d, --display=DISPLAY Visit the file in the given display\n"
 +-V, --version           Just print version info and return\n\
 +-H, --help              Print this usage information message\n\
 +-t, --tty               Open a new Emacs frame on the current terminal\n\
 +-c, --current-frame   Do not create a new frame; use the current Emacs frame\n\
 +-e, --eval              Evaluate the FILE arguments as ELisp expressions\n\
 +-n, --no-wait           Don't wait for the server to return\n\
 +-d, --display=DISPLAY   Visit the file in the given display\n"
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
  "-s, --socket-name=FILENAME\n\
 -                      Set filename of the UNIX socket for communication\n"
 +                        Set filename of the UNIX socket for communication\n"
  #endif
  "-f, --server-file=FILENAME\n\
 -                      Set filename of the TCP authentication file\n\
 +                        Set filename of the TCP authentication file\n\
  -a, --alternate-editor=EDITOR\n\
 -                      Editor to fallback to if server is not running\n\
 +                        Editor to fallback to if the server is not running\n\
  \n\
  Report bugs to bug-gnu-emacs@gnu.org.\n", progname);
    exit (EXIT_SUCCESS);
  }
  
 -\f
 -#ifdef WINDOWSNT
 -
 -/*
 -  execvp wrapper for Windows. Quotes arguments with embedded spaces.
 -
 -  This is necessary due to the broken implementation of exec* routines in
 -  the Microsoft libraries: they concatenate the arguments together without
 -  quoting special characters, and pass the result to CreateProcess, with
 -  predictably bad results.  By contrast, Posix execvp passes the arguments
 -  directly into the argv array of the child process.
 -*/
 -int
 -w32_execvp (path, argv)
 -     char *path;
 -     char **argv;
 -{
 -  int i;
 -
 -  /* Required to allow a .BAT script as alternate editor.  */
 -  argv[0] = (char *) alternate_editor;
 -
 -  for (i = 0; argv[i]; i++)
 -    if (strchr (argv[i], ' '))
 -      {
 -      char *quoted = alloca (strlen (argv[i]) + 3);
 -      sprintf (quoted, "\"%s\"", argv[i]);
 -      argv[i] = quoted;
 -      }
 -
 -  return execvp (path, argv);
 -}
 -
 -#undef execvp
 -#define execvp w32_execvp
 -
 -#endif /* WINDOWSNT */
 -
  /*
    Try to run a different command, or --if no alternate editor is
    defined-- exit with an errorcode.
  */
  void
 -fail (argc, argv)
 -     int argc;
 -     char **argv;
 +fail (void)
  {
    if (alternate_editor)
      {
        int i = optind - 1;
  
 -      execvp (alternate_editor, argv + i);
 +      execvp (alternate_editor, main_argv + i);
        message (TRUE, "%s: error executing alternate editor \"%s\"\n",
 -               progname, alternate_editor);
 +             progname, alternate_editor);
      }
    exit (EXIT_FAILURE);
  }
@@@ -503,13 -362,10 +503,13 @@@ main (argc, argv
       int argc;
       char **argv;
  {
 -  message (TRUE, "%s: Sorry, the Emacs server is supported only\non systems with Berkely sockets.\n",
 +  main_argc = argc;
 +  main_argv = argv;
 +  progname = argv[0];
 +  message (TRUE, "%s: Sorry, the Emacs server is supported only\n"
 +         "on systems with Berkeley sockets.\n", 
           argv[0]);
 -
 -  fail (argc, argv);
 +  fail ();
  }
  
  #else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
@@@ -573,21 -429,18 +573,21 @@@ send_to_emacs (s, data
      }
  }
  
 -/* In NAME, insert a & before each &, each space, each newline, and
 +\f
 +/* In STR, insert a & before each &, each space, each newline, and
     any initial -.  Change spaces to underscores, too, so that the
 -   return value never contains a space.  */
 +   return value never contains a space.
 +
 +   Does not change the string.  Outputs the result to STREAM.  */
  void
 -quote_file_name (s, name)
 +quote_argument (s, str)
       HSOCKET s;
 -     char *name;
 +     char *str;
  {
 -  char *copy = (char *) malloc (strlen (name) * 2 + 1);
 +  char *copy = (char *) xmalloc (strlen (str) * 2 + 1);
    char *p, *q;
  
 -  p = name;
 +  p = str;
    q = copy;
    while (*p)
      {
        }
        else
        {
 -        if (*p == '&' || (*p == '-' && p == name))
 +        if (*p == '&' || (*p == '-' && p == str))
            *q++ = '&';
          *q++ = *p++;
        }
    free (copy);
  }
  
 +
 +/* The inverse of quote_argument.  Removes quoting in string STR by
 +   modifying the string in place.   Returns STR. */
 +
 +char *
 +unquote_argument (str)
 +     char *str;
 +{
 +  char *p, *q;
 +
 +  if (! str)
 +    return str;
 +
 +  p = str;
 +  q = str;
 +  while (*p)
 +    {
 +      if (*p == '&')
 +        {
 +          p++;
 +          if (*p == '&')
 +            *p = '&';
 +          else if (*p == '_')
 +            *p = ' ';
 +          else if (*p == 'n')
 +            *p = '\n';
 +          else if (*p == '-')
 +            *p = '-';
 +        }
 +      *q++ = *p++;
 +    }
 +  *q = 0;
 +  return str;
 +}
 +
 +\f
  int
  file_name_absolute_p (filename)
       const unsigned char *filename;
    if (filename[0] == '\0') return FALSE;
  
  #ifdef WINDOWSNT
-   /* X:\xxx is always absolute; X:xxx is an error and will fail.  */
+   /* X:\xxx is always absolute.  */
    if (isalpha (filename[0])
        && filename[1] == ':' && (filename[2] == '\\' || filename[2] == '/'))
      return TRUE;
  
    /* Both \xxx and \\xxx\yyy are absolute.  */
    if (filename[0] == '\\') return TRUE;
+   /*
+     FIXME:  There's a corner case not dealt with, "x:y", where:
+     1) x is a valid drive designation (usually a letter in the A-Z range)
+        and y is a path, relative to the current directory on drive x.  This
+        is absolute, *after* fixing the y part to include the current
+        directory in x.
+     2) x is a relative file name, and y is an NTFS stream name.  This is a
+        correct relative path, but it is very unusual.
+     The trouble is that first case items are also valid examples of the
+     second case, i.e., "c:test" can be understood as drive:path or as
+     file:stream.
+     The "right" fix would involve checking whether
+     - the current drive/partition is NTFS,
+     - x is a valid (and accesible) drive designator,
+     - x:y already exists as a file:stream in the current directory,
+     - y already exists on the current directory of drive x,
+     - the auspices are favorable,
+     and then taking an "informed decision" based on the above.
+     Whatever the result, Emacs currently does a very bad job of dealing
+     with NTFS file:streams: it cannot visit them, and the only way to
+     create one is by setting `buffer-file-name' to point to it (either
+     manually or with emacsclient). So perhaps resorting to 1) and ignoring
+     2) for now is the right thing to do.
+     Anyway, something to decide After the Release.
+   */
  #endif
  
    return FALSE;
@@@ -702,45 -551,7 +734,45 @@@ initialize_sockets (
    atexit (close_winsock);
  }
  #endif /* WINDOWSNT */
 +
  \f
 +#ifdef WINDOWSNT
 +
 +/*
 +  execvp wrapper for Windows. Quotes arguments with embedded spaces.
 +
 +  This is necessary due to the broken implementation of exec* routines in
 +  the Microsoft libraries: they concatenate the arguments together without
 +  quoting special characters, and pass the result to CreateProcess, with
 +  predictably bad results.  By contrast, Posix execvp passes the arguments
 +  directly into the argv array of the child process.
 +*/
 +int
 +w32_execvp (path, argv)
 +     char *path;
 +     char **argv;
 +{
 +  int i;
 +
 +  /* Required to allow a .BAT script as alternate editor.  */
 +  argv[0] = (char *) alternate_editor;
 +
 +  for (i = 0; argv[i]; i++)
 +    if (strchr (argv[i], ' '))
 +      {
 +      char *quoted = alloca (strlen (argv[i]) + 3);
 +      sprintf (quoted, "\"%s\"", argv[i]);
 +      argv[i] = quoted;
 +      }
 +
 +  return execvp (path, argv);
 +}
 +
 +#undef execvp
 +#define execvp w32_execvp
 +
 +#endif /* WINDOWSNT */
 +
  /*
   * Read the information needed to set up a TCP comm channel with
   * the Emacs server: host, port, pid and authentication string.
@@@ -879,113 -690,6 +911,113 @@@ socket_status (socket_name
    return 0;
  }
  
 +\f
 +/* A signal handler that passes the signal to the Emacs process.
 +   Useful for SIGWINCH.  */
 +
 +SIGTYPE
 +pass_signal_to_emacs (int signalnum)
 +{
 +  int old_errno = errno;
 +
 +  if (emacs_pid)
 +    kill (emacs_pid, signalnum);
 +
 +  signal (signalnum, pass_signal_to_emacs);
 +  errno = old_errno;
 +}
 +
 +/* Signal handler for SIGCONT; notify the Emacs process that it can
 +   now resume our tty frame.  */
 +
 +SIGTYPE
 +handle_sigcont (int signalnum)
 +{
 +  int old_errno = errno;
 +
 +  if (tcgetpgrp (1) == getpgrp ())
 +    {
 +      /* We are in the foreground. */
 +      SEND_STRING ("-resume \n");
 +    }
 +  else
 +    {
 +      /* We are in the background; cancel the continue. */
 +      kill (getpid (), SIGSTOP);
 +    }
 +
 +  signal (signalnum, handle_sigcont);
 +  errno = old_errno;
 +}
 +
 +/* Signal handler for SIGTSTP; notify the Emacs process that we are
 +   going to sleep.  Normally the suspend is initiated by Emacs via
 +   server-handle-suspend-tty, but if the server gets out of sync with
 +   reality, we may get a SIGTSTP on C-z.  Handling this signal and
 +   notifying Emacs about it should get things under control again. */
 +
 +SIGTYPE
 +handle_sigtstp (int signalnum)
 +{
 +  int old_errno = errno;
 +  sigset_t set;
 +  
 +  if (s)
 +    SEND_STRING ("-suspend \n");
 +
 +  /* Unblock this signal and call the default handler by temprarily
 +     changing the handler and resignalling. */
 +  sigprocmask (SIG_BLOCK, NULL, &set);
 +  sigdelset (&set, signalnum);
 +  signal (signalnum, SIG_DFL);
 +  kill (getpid (), signalnum);
 +  sigprocmask (SIG_SETMASK, &set, NULL); /* Let's the above signal through. */
 +  signal (signalnum, handle_sigtstp);
 +
 +  errno = old_errno;
 +}
 +
 +/* Set up signal handlers before opening a frame on the current tty.  */
 +
 +void
 +init_signals (void)
 +{
 +  /* Set up signal handlers. */
 +  signal (SIGWINCH, pass_signal_to_emacs);
 +
 +  /* Don't pass SIGINT and SIGQUIT to Emacs, because it has no way of
 +     deciding which terminal the signal came from.  C-g is now a
 +     normal input event on secondary terminals.  */
 +#if 0
 +  signal (SIGINT, pass_signal_to_emacs);
 +  signal (SIGQUIT, pass_signal_to_emacs);
 +#endif
 +
 +  signal (SIGCONT, handle_sigcont);
 +  signal (SIGTSTP, handle_sigtstp);
 +  signal (SIGTTOU, handle_sigtstp);
 +}
 +
 +
 +
 +/* Returns 1 if PREFIX is a prefix of STRING. */
 +static int
 +strprefix (char *prefix, char *string)
 +{
 +  int i;
 +  if (! prefix)
 +    return 1;
 +
 +  if (!string)
 +    return 0;
 +
 +  for (i = 0; prefix[i]; i++)
 +    if (!string[i] || string[i] != prefix[i])
 +      return 0;
 +  return 1;
 +}
 +
 +
  HSOCKET
  set_local_socket ()
  {
    {
      int sock_status = 0;
      int default_sock = !socket_name;
 -    int saved_errno;
 +    int saved_errno = 0;
 +
      char *server_name = "server";
  
      if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\'))
        { /* socket_name is a file name component.  */
 -      server_name = socket_name;
 -      socket_name = NULL;
 -      default_sock = 1;       /* Try both UIDs.  */
 +      server_name = socket_name;
 +      socket_name = NULL;
 +      default_sock = 1;       /* Try both UIDs.  */
        }
  
      if (default_sock)
        {
 -      socket_name = alloca (100 + strlen (server_name));
 -      sprintf (socket_name, "/tmp/emacs%d/%s",
 -               (int) geteuid (), server_name);
 +      socket_name = alloca (100 + strlen (server_name));
 +      sprintf (socket_name, "/tmp/emacs%d/%s",
 +               (int) geteuid (), server_name);
        }
  
      if (strlen (socket_name) < sizeof (server.sun_path))
        strcpy (server.sun_path, socket_name);
      else
        {
 -      message (TRUE, "%s: socket-name %s too long",
 -               progname, socket_name);
 -      exit (EXIT_FAILURE);
 +        message (TRUE, "%s: socket-name %s too long",
 +                 progname, socket_name);
 +        fail ();
        }
  
      /* See if the socket exists, and if it's owned by us. */
                  }
  
                sock_status = socket_status (server.sun_path);
 -              saved_errno = errno;
 +                saved_errno = errno;
              }
            else
              errno = saved_errno;
      switch (sock_status)
        {
        case 1:
 -        /* There's a socket, but it isn't owned by us.  This is OK if
 -           we are root. */
 -        if (0 != geteuid ())
 -          {
 -            message (TRUE, "%s: Invalid socket owner\n", progname);
 +      /* There's a socket, but it isn't owned by us.  This is OK if
 +         we are root. */
 +      if (0 != geteuid ())
 +        {
 +          message (TRUE, "%s: Invalid socket owner\n", progname);
            return INVALID_SOCKET;
 -          }
 -        break;
 +        }
 +      break;
  
        case 2:
 -        /* `stat' failed */
 -        if (saved_errno == ENOENT)
 -          message (TRUE,
 -                   "%s: can't find socket; have you started the server?\n\
 +      /* `stat' failed */
 +      if (saved_errno == ENOENT)
 +        message (TRUE,
 +                 "%s: can't find socket; have you started the server?\n\
  To start the server in Emacs, type \"M-x server-start\".\n",
                   progname);
 -        else
 -          message (TRUE, "%s: can't stat %s: %s\n",
 +      else
 +        message (TRUE, "%s: can't stat %s: %s\n",
                   progname, server.sun_path, strerror (saved_errno));
 -        return INVALID_SOCKET;
 +      return INVALID_SOCKET;
        }
    }
  
@@@ -1118,18 -821,19 +1150,18 @@@ HSOCKE
  set_socket ()
  {
    HSOCKET s;
 -
 +  
    INITIALIZE ();
 -
 +  
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
    /* Explicit --socket-name argument.  */
    if (socket_name)
      {
        s = set_local_socket ();
        if ((s != INVALID_SOCKET) || alternate_editor)
 -        return s;
 -
 +      return s;
        message (TRUE, "%s: error accessing socket \"%s\"",
 -               progname, socket_name);
 +             progname, socket_name);
        exit (EXIT_FAILURE);
      }
  #endif
      {
        s = set_tcp_socket ();
        if ((s != INVALID_SOCKET) || alternate_editor)
 -        return s;
 -
 +      return s;
 + 
        message (TRUE, "%s: error accessing server file \"%s\"",
 -               progname, server_file);
 +             progname, server_file);
        exit (EXIT_FAILURE);
      }
 -
 +  
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
    /* Implicit local socket.  */
    s = set_local_socket ();
@@@ -1212,7 -916,7 +1244,7 @@@ w32_give_focus (
  {
    HMODULE hUser32;
  
-   /* It should'nt happen when dealing with TCP sockets.  */
+   /* It shouldn't happen when dealing with TCP sockets.  */
    if (!emacs_pid) return;
  
    if (!(hUser32 = LoadLibrary ("user32.dll"))) return;
@@@ -1234,78 -938,54 +1266,78 @@@ main (argc, argv
       int argc;
       char **argv;
  {
 -  HSOCKET s;
    int i, rl, needlf = 0;
 -  char *cwd;
 +  char *cwd, *str;
    char string[BUFSIZ+1];
  
 +  main_argc = argc;
 +  main_argv = argv;
    progname = argv[0];
  
    /* Process options.  */
    decode_options (argc, argv);
  
 -  if ((argc - optind < 1) && !eval)
 +  if ((argc - optind < 1) && !eval && !tty && !window_system)
      {
 -      message (TRUE, "%s: file name or argument required\nTry `%s --help' for more information\n",
 -              progname, progname);
 +      message (TRUE, "%s: file name or argument required\n"
 +             "Try `%s --help' for more information\n",
 +             progname, progname);
        exit (EXIT_FAILURE);
      }
  
    if ((s = set_socket ()) == INVALID_SOCKET)
 -    fail (argc, argv);
 +    fail ();
  
 -#ifdef HAVE_GETCWD
 -  cwd = getcwd (string, sizeof string);
 -#else
 -  cwd = getwd (string);
 -#endif
 +
 +  cwd = get_current_dir_name ();
    if (cwd == 0)
      {
        /* getwd puts message in STRING if it fails.  */
 -      message (TRUE, "%s: %s (%s)\n", progname,
 -#ifdef HAVE_GETCWD
 -             "Cannot get current working directory",
 -#else
 -             string,
 -#endif
 -             strerror (errno));
 -      fail (argc, argv);
 +      message (TRUE, "%s: %s\n", progname,
 +             "Cannot get current working directory");
 +      fail ();
      }
  
  #ifdef WINDOWSNT
    w32_give_focus ();
  #endif
  
 +  /* First of all, send our version number for verification. */
 +  SEND_STRING ("-version ");
 +  SEND_STRING (VERSION);
 +  SEND_STRING (" ");
 +
 +  /* Send over our environment. */
 +  if (!current_frame)
 +    {
 +      extern char **environ;
 +      int i;
 +      for (i = 0; environ[i]; i++)
 +        {
 +          char *name = xstrdup (environ[i]);
 +          char *value = strchr (name, '=');
 +          SEND_STRING ("-env ");
 +          SEND_QUOTED (environ[i]);
 +          SEND_STRING (" ");
 +        }
 +    }
 +
 +  /* Send over our current directory. */
 +  if (!current_frame)
 +    {
 +      SEND_STRING ("-dir ");          
 +      SEND_QUOTED (cwd);
 +      SEND_STRING ("/");
 +      SEND_STRING (" ");
 +    }
 +
 + retry:
    if (nowait)
      SEND_STRING ("-nowait ");
  
 -  if (eval)
 -    SEND_STRING ("-eval ");
 -
 +  if (current_frame)
 +    SEND_STRING ("-current-frame ");
 +  
    if (display)
      {
        SEND_STRING ("-display ");
        SEND_STRING (" ");
      }
  
 +  if (tty)
 +    {
 +      char *tty_name = ttyname (fileno (stdin));
 +      char *type = getenv ("TERM");
 +
 +      if (! tty_name)
 +        {
 +          message (TRUE, "%s: could not get terminal name\n", progname);
 +          fail ();
 +        }
 +
 +      if (! type)
 +        {
 +          message (TRUE, "%s: please set the TERM variable to your terminal type\n",
 +                   progname);
 +          fail ();
 +        }
 +
 +      if (! strcmp (type, "eterm"))
 +        {
 +          /* This causes nasty, MULTI_KBOARD-related input lockouts. */
 +          message (TRUE, "%s: opening a frame in an Emacs term buffer"
 +                   " is not supported\n", progname);
 +          fail ();
 +        }
 +
 +      init_signals ();
 +
 +      SEND_STRING ("-tty ");
 +      SEND_QUOTED (tty_name);
 +      SEND_STRING (" ");
 +      SEND_QUOTED (type);
 +      SEND_STRING (" ");
 +    }
 +
 +  if (window_system)
 +    SEND_STRING ("-window-system ");
 +
    if ((argc - optind > 0))
      {
        for (i = optind; i < argc; i++)
        {
 +          int relative = 0;
 +
          if (eval)
 -          ; /* Don't prepend any cwd or anything like that.  */
 -        else if (*argv[i] == '+')
 -          {
 +            {
 +              /* Don't prepend cwd or anything like that.  */
 +              SEND_STRING ("-eval ");
 +              SEND_QUOTED (argv[i]);
 +              SEND_STRING (" ");
 +              continue;
 +            }
 +
 +          if (*argv[i] == '+')
 +            {
              char *p = argv[i] + 1;
              while (isdigit ((unsigned char) *p) || *p == ':') p++;
 -            if (*p != 0)
 -              {
 -                SEND_QUOTED (cwd);
 -                SEND_STRING ("/");
 -              }
 -          }
 +            if (*p == 0)
 +                {
 +                  SEND_STRING ("-position ");
 +                  SEND_QUOTED (argv[i]);
 +                  SEND_STRING (" ");
 +                  continue;
 +                }
 +              else
 +                relative = 1;
 +            }
            else if (! file_name_absolute_p (argv[i]))
 -          {
 -            SEND_QUOTED (cwd);
 -            SEND_STRING ("/");
 -          }
 -
 -        SEND_QUOTED (argv[i]);
 -        SEND_STRING (" ");
 -      }
 +            relative = 1;
 +
 +          SEND_STRING ("-file ");
 +          if (relative)
 +            {
 +              SEND_QUOTED (cwd);
 +              SEND_STRING ("/");
 +            }
 +          SEND_QUOTED (argv[i]);
 +          SEND_STRING (" ");
 +        }
      }
    else
      {
 -      while (fgets (string, BUFSIZ, stdin))
 -      {
 -        SEND_QUOTED (string);
 -      }
 -      SEND_STRING (" ");
 +      if (!tty && !window_system)
 +        {
 +          while ((str = fgets (string, BUFSIZ, stdin)))
 +            {
 +              if (eval)
 +                SEND_STRING ("-eval ");
 +              else
 +                SEND_STRING ("-file ");
 +              SEND_QUOTED (str);
 +            }
 +          SEND_STRING (" ");
 +        }
      }
  
    SEND_STRING ("\n");
  
 -  /* Maybe wait for an answer.   */
 -  if (!nowait)
 +  /* Wait for an answer. */
 +  if (!eval && !tty && !nowait)
 +    {
 +      printf ("Waiting for Emacs...");
 +      needlf = 2;
 +    }
 +  fflush (stdout);
 +  fsync (1);
 +
 +  /* Now, wait for an answer and print any messages.  */
 +  while ((rl = recv (s, string, BUFSIZ, 0)) > 0)
      {
 -      if (!eval)
 +      char *p;
 +      string[rl] = '\0';
 +
 +      p = string + strlen (string) - 1;
 +      while (p > string && *p == '\n')
 +        *p-- = 0;
 +
 +      if (strprefix ("-good-version ", string))
          {
 -          printf ("Waiting for Emacs...");
 -          needlf = 2;
 +          /* -good-version: The versions match. */
          }
 -      fflush (stdout);
 -
 -      /* Now, wait for an answer and print any messages.  */
 -      while ((rl = recv (s, string, BUFSIZ, 0)) > 0)
 +      else if (strprefix ("-emacs-pid ", string))
          {
 -        string[rl] = '\0';
 -          if (needlf == 2)
 +          /* -emacs-pid PID: The process id of the Emacs process. */
 +          emacs_pid = strtol (string + strlen ("-emacs-pid"), NULL, 10);
 +        }
 +      else if (strprefix ("-window-system-unsupported ", string))
 +        {
 +          /* -window-system-unsupported: Emacs was compiled without X
 +              support.  Try again on the terminal. */
 +          window_system = 0;
 +          nowait = 0;
 +          tty = 1;
 +          goto retry;
 +        }
 +      else if (strprefix ("-print ", string))
 +        {
 +          /* -print STRING: Print STRING on the terminal. */
 +          str = unquote_argument (string + strlen ("-print "));
 +          if (needlf)
              printf ("\n");
 -        printf ("%s", string);
 -        needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
 +          printf ("%s", str);
 +          needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
 +        }
 +      else if (strprefix ("-error ", string))
 +        {
 +          /* -error DESCRIPTION: Signal an error on the terminal. */
 +          str = unquote_argument (string + strlen ("-error "));
 +          if (needlf)
 +            printf ("\n");
 +          fprintf (stderr, "*ERROR*: %s", str);
 +          needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
 +        }
 +      else if (strprefix ("-suspend ", string))
 +        {
 +          /* -suspend: Suspend this terminal, i.e., stop the process. */
 +          if (needlf)
 +            printf ("\n");
 +          needlf = 0;
 +          kill (0, SIGSTOP);
 +        }
 +      else
 +        {
 +          /* Unknown command. */
 +          if (needlf)
 +            printf ("\n");
 +          printf ("*ERROR*: Unknown message: %s", string);
 +          needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
          }
 -
 -      if (needlf)
 -        printf ("\n");
 -      fflush (stdout);
      }
  
 +  if (needlf)
 +    printf ("\n");
 +  fflush (stdout);
 +  fsync (1);
 +
    CLOSE_SOCKET (s);
    return EXIT_SUCCESS;
  }
  
  #endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
  
 +\f
  #ifndef HAVE_STRERROR
  char *
  strerror (errnum)
diff --combined lisp/bindings.el
index 669357de92d5e6bc15f33e32603913bc0b842ede,5f3279a9ac4b117eb76413aef6abdfc83911ceb8..27d27946122193512550c7e4f5560117e310a5d4
@@@ -170,12 -170,6 +170,12 @@@ corresponding to the mode line clicked.
        (push (cons eol (cons mnemonic desc)) mode-line-eol-desc-cache)
        desc)))
  
 +(defvar mode-line-client
 +  `(""
 +    (:propertize ("" (:eval (if (frame-parameter nil 'client) "@" "")))
 +               help-echo "Emacsclient frame"))
 +  "Mode-line control for identifying Emacsclient frames.")
 +
  (defvar mode-line-mule-info
    `(""
      (current-input-method
@@@ -215,7 -209,7 +215,7 @@@ mnemonics of the following coding syste
  
  (make-variable-buffer-local 'mode-line-mule-info)
  
 -(defvar mode-line-frame-identification '("-%F  ")
 +(defvar mode-line-frame-identification '(window-system "  " "-%F  ")
    "Mode-line control to describe the current frame.")
  
  (defvar mode-line-process nil "\
@@@ -292,7 -286,6 +292,7 @@@ Keymap to display on minor modes."
         "%e"
         (propertize "-" 'help-echo help-echo)
         'mode-line-mule-info
 +       'mode-line-client
         'mode-line-modified
         'mode-line-frame-identification
         'mode-line-buffer-identification
                     'local-map (make-mode-line-mouse-map
                                 'mouse-2 #'mode-line-widen))
         (propertize ")%]--" 'help-echo help-echo)))
 +
         (standard-mode-line-position
        `((-3 ,(propertize "%p" 'help-echo help-echo))
          (size-indication-mode
@@@ -1020,18 -1012,6 +1020,6 @@@ language you are using.
  (define-key ctl-x-map "rw" 'window-configuration-to-register)
  (define-key ctl-x-map "rf" 'frame-configuration-to-register)
  
- ;; These key bindings are deprecated; use the above C-x r map instead.
- ;; We use these aliases so \[...] will show the C-x r bindings instead.
- (defalias 'point-to-register-compatibility-binding 'point-to-register)
- (defalias 'jump-to-register-compatibility-binding 'jump-to-register)
- (defalias 'copy-to-register-compatibility-binding 'copy-to-register)
- (defalias 'insert-register-compatibility-binding 'insert-register)
- (define-key ctl-x-map "/" 'point-to-register-compatibility-binding)
- (define-key ctl-x-map "j" 'jump-to-register-compatibility-binding)
- (define-key ctl-x-map "x" 'copy-to-register-compatibility-binding)
- (define-key ctl-x-map "g" 'insert-register-compatibility-binding)
- ;; (define-key ctl-x-map "r" 'copy-rectangle-to-register)
  (define-key esc-map "q" 'fill-paragraph)
  ;; (define-key esc-map "g" 'fill-region)
  (define-key ctl-x-map "." 'set-fill-prefix)
diff --combined lisp/faces.el
index 29f2729094fb37bcd90913b14030cceb37437f39,54388fd54cad0dbc2989d3df7cfa3130e3e98cb8..4c058ba1fd3bf552d087e892f03db40d6e5ba63b
@@@ -181,20 -181,16 +181,16 @@@ to NEW-FACE on frame NEW-FRAME.
  (defun internal-find-face (name &optional frame)
    "Retrieve the face named NAME.
  Return nil if there is no such face.
- If the optional argument FRAME is given, this gets the face NAME for
- that frame; otherwise, it uses the selected frame.
- If FRAME is the symbol t, then the global, non-frame face is returned.
- If NAME is already a face, it is simply returned."
+ If NAME is already a face, it is simply returned.
+ The optional argument FRAME is ignored."
    (facep name))
  (make-obsolete 'internal-find-face 'facep "21.1")
  
  
  (defun internal-get-face (name &optional frame)
    "Retrieve the face named NAME; error if there is none.
- If the optional argument FRAME is given, this gets the face NAME for
- that frame; otherwise, it uses the selected frame.
- If FRAME is the symbol t, then the global, non-frame face is returned.
- If NAME is already a face, it is simply returned."
+ If NAME is already a face, it is simply returned.
+ The optional argument FRAME is ignored."
    (or (facep name)
        (check-face name)))
  (make-obsolete 'internal-get-face "see `facep' and `check-face'." "21.1")
@@@ -248,8 -244,8 +244,8 @@@ If FRAME is t, report on the defaults f
  If FRAME is omitted or nil, use the selected frame."
    (let ((attrs
         '(:family :width :height :weight :slant :foreground
-          :foreground :background :underline :overline
-          :strike-through :box :inverse-video))
+          :background :underline :overline :strike-through
+          :box :inverse-video))
        (differs nil))
      (while (and attrs (not differs))
        (let* ((attr (pop attrs))
@@@ -780,7 -776,7 +776,7 @@@ and DATA is a string, containing the ra
    (set-face-attribute face frame :stipple (or stipple 'unspecified)))
  
  
- (defun set-face-underline-p (face underline-p &optional frame)
+ (defun set-face-underline-p (face underline &optional frame)
    "Specify whether face FACE is underlined.
  UNDERLINE nil means FACE explicitly doesn't underline.
  UNDERLINE non-nil means FACE explicitly does underlining
@@@ -791,7 -787,7 +787,7 @@@ Use `set-face-attribute' to ``unspecify
    (interactive
     (let ((list (read-face-and-attribute :underline)))
       (list (car list) (eq (car (cdr list)) t))))
-   (set-face-attribute face frame :underline underline-p))
+   (set-face-attribute face frame :underline underline))
  
  (define-obsolete-function-alias 'set-face-underline
                                  'set-face-underline-p "22.1")
@@@ -935,7 -931,7 +931,7 @@@ an integer value.
    (let ((valid
           (case attribute
             (:family
 -            (if window-system
 +            (if (window-system frame)
                  (mapcar #'(lambda (x) (cons (car x) (car x)))
                          (x-font-family-list))
              ;; Only one font on TTYs.
              (mapcar #'(lambda (x) (cons (symbol-name x) x))
                      (internal-lisp-face-attribute-values attribute)))
             ((:underline :overline :strike-through :box)
 -            (if window-system
 +            (if (window-system frame)
                  (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x))
                                 (internal-lisp-face-attribute-values attribute))
                         (mapcar #'(lambda (c) (cons c c))
-                                (x-defined-colors frame)))
+                                (defined-colors frame)))
              (mapcar #'(lambda (x) (cons (symbol-name x) x))
                      (internal-lisp-face-attribute-values attribute))))
             ((:foreground :background)
             ((:height)
              'integerp)
             (:stipple
 -            (and (memq window-system '(x w32 mac))
 +            (and (memq (window-system frame) '(x w32 mac))
                   (mapcar #'list
                           (apply #'nconc
                                  (mapcar (lambda (dir)
@@@ -1075,7 -1071,7 +1071,7 @@@ of a global face.  Value is the new att
               ;; explicitly in VALID, using color approximation code
               ;; in tty-colors.el.
               (when (and (memq attribute '(:foreground :background))
 -                        (not (memq window-system '(x w32 mac)))
 +                        (not (memq (window-system frame) '(x w32 mac)))
                          (not (member new-value
                                       '("unspecified"
                                         "unspecified-fg" "unspecified-bg"))))
@@@ -1115,7 -1111,7 +1111,7 @@@ Value is a property list of attribute n
                               result))))))
  
  (defun modify-face (&optional face foreground background stipple
-                             bold-p italic-p underline-p inverse-p frame)
+                             bold-p italic-p underline inverse-p frame)
    "Modify attributes of faces interactively.
  If optional argument FRAME is nil or omitted, modify the face used
  for newly created frame, i.e. the global face.
@@@ -1130,7 -1126,7 +1126,7 @@@ and the face and its settings are obtai
                          :stipple stipple
                          :bold bold-p
                          :italic italic-p
-                         :underline underline-p
+                         :underline underline
                          :inverse-video inverse-p)
      (setq face (read-face-name "Modify face"))
      (apply #'set-face-attribute face frame
@@@ -1371,14 -1367,14 +1367,14 @@@ If FRAME is nil, the current FRAME is u
            req (car conjunct)
            options (cdr conjunct)
            match (cond ((eq req 'type)
 -                       (or (memq window-system options)
 +                       (or (memq (window-system frame) options)
                             ;; FIXME: This should be revisited to use
                             ;; display-graphic-p, provided that the
                             ;; color selection depends on the number
                             ;; of supported colors, and all defface's
                             ;; are changed to look at number of colors
                             ;; instead of (type graphic) etc.
 -                           (and (null window-system)
 +                           (and (null (window-system frame))
                                  (memq 'tty options))
                             (and (memq 'motif options)
                                  (featurep 'motif))
@@@ -1540,8 -1536,9 +1536,9 @@@ If COLOR is the symbol `unspecified' o
  
  (defun color-values (color &optional frame)
    "Return a description of the color named COLOR on frame FRAME.
- The value is a list of integer RGB values--\(RED GREEN BLUE\).
- These values appear to range from 0 65535; white is \(65535 65535 65535\).
+ The value is a list of integer RGB values--(RED GREEN BLUE).
+ These values appear to range from 0 to 65280 or 65535, depending
+ on the system; white is \(65280 65280 65280\) or \(65535 65535 65535\).
  If FRAME is omitted or nil, use the selected frame.
  If FRAME cannot display COLOR, the value is nil.
  If COLOR is the symbol `unspecified' or one of the strings
@@@ -1592,51 -1589,46 +1589,51 @@@ variable with `setq'; this won't have t
                 (const light)
                 (const :tag "automatic" nil)))
  
 -(defvar default-frame-background-mode nil
 -  "Internal variable for the default brightness of the background.
 -Emacs sets it automatically depending on the terminal type.
 -The value `nil' means `dark'.  If Emacs runs in non-windowed
 -mode from `xterm' or a similar terminal emulator, the value is
 -`light'.  On rxvt terminals, the value depends on the environment
 -variable COLORFGBG.")
  
  (defun frame-set-background-mode (frame)
    "Set up display-dependent faces on FRAME.
  Display-dependent faces are those which have different definitions
  according to the `background-mode' and `display-type' frame parameters."
    (let* ((bg-resource
 -        (and window-system
 +        (and (window-system frame)
               (x-get-resource "backgroundMode" "BackgroundMode")))
         (bg-color (frame-parameter frame 'background-color))
 +       (terminal-bg-mode (terminal-parameter frame 'background-mode))
 +       (tty-type (tty-type frame))
         (bg-mode
          (cond (frame-background-mode)
                (bg-resource
                 (intern (downcase bg-resource)))
 -              ((and (null window-system) (null bg-color))
 -               ;; No way to determine this automatically (?).
 -               (or default-frame-background-mode 'dark))
 -              ;; Unspecified frame background color can only happen
 -              ;; on tty's.
 -              ((member bg-color '(unspecified "unspecified-bg"))
 -               (or default-frame-background-mode 'dark))
 +              (terminal-bg-mode)
 +              ((and (null (window-system frame))
 +                    ;; Unspecified frame background color can only
 +                    ;; happen on tty's.
 +                    (member bg-color '(nil unspecified "unspecified-bg")))
 +               ;; There is no way to determine the background mode
 +               ;; automatically, so we make a guess based on the
 +               ;; terminal type.
 +               (if (and tty-type
 +                        (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
 +                                      tty-type))
 +                   'light
 +                 'dark))
                ((equal bg-color "unspecified-fg") ; inverted colors
 -               (if (eq default-frame-background-mode 'light) 'dark 'light))
 +               (if (and tty-type
 +                        (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
 +                                      tty-type))
 +                   'dark
 +                 'light))
-               ((>= (apply '+ (x-color-values bg-color frame))
+               ((>= (apply '+ (color-values bg-color frame))
                    ;; Just looking at the screen, colors whose
                    ;; values add up to .6 of the white total
                    ;; still look dark to me.
-                   (* (apply '+ (x-color-values "white" frame)) .6))
+                   (* (apply '+ (color-values "white" frame)) .6))
                 'light)
                (t 'dark)))
         (display-type
 -        (cond ((null window-system)
 +        (cond ((null (window-system frame))
                 (if (tty-display-color-p frame) 'color 'mono))
-               ((x-display-color-p frame)
+               ((display-color-p frame)
                 'color)
                ((x-display-grayscale-p frame)
                 'grayscale)
@@@ -1730,24 -1722,15 +1727,24 @@@ the X resource ``reverseVideo'' is pres
  Value is the new frame created."
    (setq parameters (x-handle-named-frame-geometry parameters))
    (let ((visibility-spec (assq 'visibility parameters))
 -      (frame-list (frame-list))
 -      (frame (x-create-frame (cons '(visibility . nil) parameters)))
 +      (frame (x-create-frame `((visibility . nil) . ,parameters)))
        success)
      (unwind-protect
        (progn
 +        (x-setup-function-keys frame)
          (x-handle-reverse-video frame parameters)
          (frame-set-background-mode frame)
          (face-set-after-frame-default frame)
 -        (if (or (null frame-list) (null visibility-spec))
 +        ;; Arrange for the kill and yank functions to set and check the clipboard.
 +        (modify-frame-parameters
 +         frame '((interprogram-cut-function . x-select-text)))
 +        (modify-frame-parameters
 +         frame '((interprogram-paste-function . x-cut-buffer-or-selection-value)))
 +        ;; Make sure the tool-bar is ready to be enabled.  The
 +        ;; `tool-bar-lines' frame parameter will not take effect
 +        ;; without this call.
 +        (tool-bar-setup frame)
 +        (if (null visibility-spec)
              (make-frame-visible frame)
            (modify-frame-parameters frame (list visibility-spec)))
          (setq success t))
@@@ -1772,35 -1755,48 +1769,48 @@@ Initialize colors of certain faces fro
                          (face-attribute 'default :weight t))
        (set-face-attribute 'default frame :width
                          (face-attribute 'default :width t))))
-   (dolist (face (face-list))
-     ;; Don't let frame creation fail because of an invalid face spec.
-     (condition-case ()
-       (when (not (equal face 'default))
-         (face-spec-set face (face-user-default-spec face) frame)
-         (internal-merge-in-global-face face frame)
-         (when (and (memq (window-system frame) '(x w32 mac))
-                    (or (not (boundp 'inhibit-default-face-x-resources))
-                        (not (eq face 'default))))
-           (make-face-x-resource-internal face frame)))
-       (error nil)))
-   ;; Initialize attributes from frame parameters.
-   (let ((params '((foreground-color default :foreground)
-                 (background-color default :background)
-                 (border-color border :background)
-                 (cursor-color cursor :background)
-                 (scroll-bar-foreground scroll-bar :foreground)
-                 (scroll-bar-background scroll-bar :background)
-                 (mouse-color mouse :background))))
-     (dolist (param params)
-       (let ((frame-param (frame-parameter frame (nth 0 param)))
-           (face (nth 1 param))
-           (attr (nth 2 param)))
-       (when (and frame-param
-                  ;; Don't override face attributes explicitly
-                  ;; specified for new frames.
-                  (eq (face-attribute face attr t) 'unspecified))
-         (set-face-attribute face frame attr frame-param))))))
+   ;; Find attributes that should be initialized from frame parameters.
+   (let ((face-params '((foreground-color default :foreground)
+                      (background-color default :background)
+                      (border-color border :background)
+                      (cursor-color cursor :background)
+                      (scroll-bar-foreground scroll-bar :foreground)
+                      (scroll-bar-background scroll-bar :background)
+                      (mouse-color mouse :background)))
+       apply-params)
+     (dolist (param face-params)
+       (let* ((value (frame-parameter frame (nth 0 param)))
+            (face (nth 1 param))
+            (attr (nth 2 param))
+            (default-value (face-attribute face attr t)))
+       ;; Compile a list of face attributes to set, but don't set
+       ;; them yet.  The call to make-face-x-resource-internal,
+       ;; below, can change frame parameters, and the final set of
+       ;; frame parameters should be the ones acquired at this step.
+       (if (eq default-value 'unspecified)
+           ;; The face spec does not specify a new-frame value for
+           ;; this attribute.  Check if the existing frame parameter
+           ;; specifies it.
+           (if value
+               (push (list face frame attr value) apply-params))
+         ;; The face spec specifies a value for this attribute, to be
+         ;; applied to the face on all new frames.
+         (push (list face frame attr default-value) apply-params))))
+     ;; Initialize faces from face specs and X resources.  The
+     ;; condition-case prevents invalid specs from causing frame
+     ;; creation to fail.
+     (dolist (face (delq 'default (face-list)))
+       (condition-case ()
+         (progn
+           (face-spec-set face (face-user-default-spec face) frame)
+           (internal-merge-in-global-face face frame)
 -          (if (memq window-system '(x w32 mac))
++          (if (memq (window-system frame) '(x w32 mac))
+               (make-face-x-resource-internal face frame)))
+       (error nil)))
+     ;; Apply the attributes specified by frame parameters.  This
+     ;; rewrites parameters changed by make-face-x-resource-internal
+     (dolist (param apply-params)
+       (apply 'set-face-attribute param))))
  
  (defun tty-handle-reverse-video (frame parameters)
    "Handle the reverse-video frame parameter for terminal frames."
@@@ -1829,15 -1825,8 +1839,15 @@@ created.
    (let ((frame (make-terminal-frame parameters))
        success)
      (unwind-protect
 -      (progn
 +      (with-selected-frame frame
          (tty-handle-reverse-video frame (frame-parameters frame))
 +
 +        ;; Make sure the kill and yank functions do not touch the X clipboard.
 +        (modify-frame-parameters frame '((interprogram-cut-function . nil)))
 +        (modify-frame-parameters frame '((interprogram-paste-function . nil)))
 +
 +        (set-locale-environment nil frame)
 +        (tty-run-terminal-initialization frame)
          (frame-set-background-mode frame)
          (face-set-after-frame-default frame)
          (setq success t))
        (delete-frame frame)))
      frame))
  
 +(defun tty-find-type (pred type)
 +  "Return the longest prefix of TYPE to which PRED returns non-nil.
 +TYPE should be a tty type name such as \"xterm-16color\".
 +
 +The function tries only those prefixes that are followed by a
 +dash or underscore in the original type name, like \"xterm\" in
 +the above example."
 +  (let (hyphend)
 +    (while (and type
 +              (not (funcall pred type)))
 +      ;; Strip off last hyphen and what follows, then try again
 +      (setq type
 +          (if (setq hyphend (string-match "[-_][^-_]+$" type))
 +              (substring type 0 hyphend)
 +            nil))))
 +  type)
 +
 +(defun tty-run-terminal-initialization (frame &optional type)
 +  "Run the special initialization code for the terminal type of FRAME.
 +The optional TYPE parameter may be used to override the autodetected
 +terminal type to a different value."
 +  (setq type (or type (tty-type frame)))
 +  ;; Load library for our terminal type.
 +  ;; User init file can set term-file-prefix to nil to prevent this.
 +  (with-selected-frame frame
 +    (unless (or (null term-file-prefix)
 +              ;; Don't reinitialize the terminal each time a new
 +              ;; frame is opened on it.
 +              (terminal-parameter frame 'terminal-initted))
 +      (let* (term-init-func)
 +      ;; First, load the terminal initialization file, if it is
 +      ;; available and it hasn't been loaded already.
 +      (tty-find-type #'(lambda (type)
 +                         (let ((file (locate-library (concat term-file-prefix type))))
 +                           (and file
 +                                (or (assoc file load-history)
 +                                    (load file t t)))))
 +                     type)
 +      ;; Next, try to find a matching initialization function, and call it.
 +      (tty-find-type #'(lambda (type)
 +                         (fboundp (setq term-init-func
 +                                        (intern (concat "terminal-init-" type)))))
 +                     type)
 +      (when (fboundp term-init-func)
 +        (funcall term-init-func))
 +      (set-terminal-parameter frame 'terminal-initted term-init-func)))))
  
  ;; Called from C function init_display to initialize faces of the
  ;; dumped terminal frame on startup.
diff --combined lisp/files.el
index e32fa42795e6a9686474d2e96284e3122bcdf7eb,6d5b101d3c177871c13da72193db7222282046a6..3b089c06d92c90633b0717fbcb1a29a96a3a2644
@@@ -2403,7 -2403,6 +2403,7 @@@ asking you for confirmation.
        minor-mode-overriding-map-alist
        mode-line-buffer-identification
        mode-line-format
 +      mode-line-client
        mode-line-modes
        mode-line-modified
        mode-line-mule-info
@@@ -2830,7 -2829,7 +2830,7 @@@ It is dangerous if either of these cond
  However, the mode will not be changed if
  \(1) a local variables list or the `-*-' line specifies a major mode, or
  \(2) the current major mode is a \"special\" mode,
- \    not suitable for ordinary files, or
+ \     not suitable for ordinary files, or
  \(3) the new file name does not particularly specify any mode."
    :type 'boolean
    :group 'editing-basics)
@@@ -4750,36 -4749,37 +4750,37 @@@ preference to the program given by thi
    "Return the amount of free space on directory DIR's file system.
  The result is a string that gives the number of free 1KB blocks,
  or nil if the system call or the program which retrieve the information
- fail.
+ fail.  It returns also nil when DIR is a remote directory.
  
  This function calls `file-system-info' if it is available, or invokes the
  program specified by `directory-free-space-program' if that is non-nil."
-   ;; Try to find the number of free blocks.  Non-Posix systems don't
-   ;; always have df, but might have an equivalent system call.
-   (if (fboundp 'file-system-info)
-       (let ((fsinfo (file-system-info dir)))
-       (if fsinfo
-           (format "%.0f" (/ (nth 2 fsinfo) 1024))))
-     (save-match-data
-       (with-temp-buffer
-       (when (and directory-free-space-program
-                  (eq 0 (call-process directory-free-space-program
-                                      nil t nil
-                                      directory-free-space-args
-                                      dir)))
-         ;; Usual format is a header line followed by a line of
-         ;; numbers.
-         (goto-char (point-min))
-         (forward-line 1)
-         (if (not (eobp))
-             (progn
-               ;; Move to the end of the "available blocks" number.
-               (skip-chars-forward "^ \t")
-               (forward-word 3)
-               ;; Copy it into AVAILABLE.
-               (let ((end (point)))
-                 (forward-word -1)
-                 (buffer-substring (point) end)))))))))
+   (when (not (file-remote-p dir))
+     ;; Try to find the number of free blocks.  Non-Posix systems don't
+     ;; always have df, but might have an equivalent system call.
+     (if (fboundp 'file-system-info)
+       (let ((fsinfo (file-system-info dir)))
+         (if fsinfo
+             (format "%.0f" (/ (nth 2 fsinfo) 1024))))
+       (save-match-data
+       (with-temp-buffer
+         (when (and directory-free-space-program
+                    (eq 0 (call-process directory-free-space-program
+                                        nil t nil
+                                        directory-free-space-args
+                                        dir)))
+           ;; Usual format is a header line followed by a line of
+           ;; numbers.
+           (goto-char (point-min))
+           (forward-line 1)
+           (if (not (eobp))
+               (progn
+                 ;; Move to the end of the "available blocks" number.
+                 (skip-chars-forward "^ \t")
+                 (forward-word 3)
+                 ;; Copy it into AVAILABLE.
+                 (let ((end (point)))
+                   (forward-word -1)
+                   (buffer-substring (point) end))))))))))
  
  ;; The following expression replaces `dired-move-to-filename-regexp'.
  (defvar directory-listing-before-filename-regexp
@@@ -5178,22 -5178,6 +5179,22 @@@ With prefix arg, silently save all file
         (or (null confirm-kill-emacs)
           (funcall confirm-kill-emacs "Really exit Emacs? "))
         (kill-emacs)))
 +
 +(defun save-buffers-kill-terminal (&optional arg)
 +  "Offer to save each buffer, then kill the current connection.
 +If the current frame has no client, kill Emacs itself.
 +
 +With prefix arg, silently save all file-visiting buffers, then kill.
 +
 +If emacsclient was started with a list of filenames to edit, then
 +only these files will be asked to be saved."
 +  (interactive "P")
 +  (let ((proc (frame-parameter (selected-frame) 'client))
 +      (frame (selected-frame)))
 +    (if (null proc)
 +      (save-buffers-kill-emacs)
 +      (server-save-buffers-kill-terminal proc arg))))
 +
  \f
  ;; We use /: as a prefix to "quote" a file name
  ;; so that magic file name handlers will not apply to it.
  (define-key ctl-x-map "i" 'insert-file)
  (define-key esc-map "~" 'not-modified)
  (define-key ctl-x-map "\C-d" 'list-directory)
 -(define-key ctl-x-map "\C-c" 'save-buffers-kill-emacs)
 +(define-key ctl-x-map "\C-c" 'save-buffers-kill-terminal)
  (define-key ctl-x-map "\C-q" 'toggle-read-only)
  
  (define-key ctl-x-4-map "f" 'find-file-other-window)
diff --combined lisp/font-lock.el
index a1e103624b342da8046fe920236e8f0c3337daa6,ecd4dd56d9ea00089d6d6e8de098547ce3c65990..c398ca0a0127ab15db792bc0848c178d028009b8
@@@ -1075,22 -1075,25 +1075,25 @@@ Put first the functions more likely to 
        (setq font-lock-beg (or (previous-single-property-change
                                 font-lock-beg 'font-lock-multiline)
                                (point-min))))
-     ;; 
+     ;;
      (when (get-text-property font-lock-end 'font-lock-multiline)
        (setq changed t)
        (setq font-lock-end (or (text-property-any font-lock-end (point-max)
                                                   'font-lock-multiline nil)
                                (point-max))))
      changed))
-   
-   
  (defun font-lock-extend-region-wholelines ()
    "Move fontification boundaries to beginning of lines."
    (let ((changed nil))
      (goto-char font-lock-beg)
-     (unless (bolp) (setq changed t font-lock-beg (line-beginning-position)))
+     (unless (bolp)
+       (setq changed t font-lock-beg (line-beginning-position)))
      (goto-char font-lock-end)
-     (unless (bolp) (setq changed t font-lock-end (line-beginning-position 2)))
+     (unless (bolp)
+       (unless (eq font-lock-end
+                   (setq font-lock-end (line-beginning-position 2)))
+         (setq changed t)))
      changed))
  
  (defun font-lock-default-fontify-region (beg end loudly)
@@@ -2215,7 -2218,7 +2218,7 @@@ other modes in which C preprocessor dir
       `(;; Control structures.  Emacs Lisp forms.
         (,(concat
          "(" (regexp-opt
 -             '("cond" "if" "while" "while-no-input" "let" "let*"
 +             '("cond" "if" "while" "while-no-input" "let" "let*" "let-environment"
                 "prog" "progn" "progv" "prog1" "prog2" "prog*"
                 "inline" "lambda" "save-restriction" "save-excursion"
                 "save-window-excursion" "save-selected-window"
                 "with-current-buffer" "with-electric-help"
                 "with-local-quit" "with-no-warnings"
                 "with-output-to-string" "with-output-to-temp-buffer"
 -               "with-selected-window" "with-syntax-table"
 +               "with-selected-window" "with-selected-frame" "with-syntax-table"
                 "with-temp-buffer" "with-temp-file" "with-temp-message"
                 "with-timeout" "with-timeout-handler") t)
          "\\>")
index 5d71935c0d1d0e7f11b33ac034d66a84a614dfac,214ab7912616482ffdde3763b9c19ad64f75c84f..c9a788f0ec58f7e341a34a2513e2822c5a825069
    t)
  (define-key-after set-coding-system-map [set-terminal-coding-system]
    '(menu-item "For Terminal" set-terminal-coding-system
 -            :enable (null (memq window-system '(x w32 mac)))
 +            :enable (null (memq initial-window-system '(x w32 mac)))
              :help "How to encode terminal output")
    t)
  (define-key-after set-coding-system-map [separator-3]
@@@ -1830,7 -1830,7 +1830,7 @@@ The default status is as follows
  
  (reset-language-environment)
  
 -(defun set-display-table-and-terminal-coding-system (language-name &optional coding-system)
 +(defun set-display-table-and-terminal-coding-system (language-name &optional coding-system display)
    "Set up the display table and terminal coding system for LANGUAGE-NAME."
    (let ((coding (get-language-info language-name 'unibyte-display)))
      (if (and coding
        (dotimes (i 128)
          (aset standard-display-table (+ i 128) nil))))
      (or (eq window-system 'pc)
 -      (set-terminal-coding-system (or coding-system coding)))))
 +      (set-terminal-coding-system (or coding-system coding) display))))
  
  (defun set-language-environment (language-name)
    "Set up multi-lingual environment for using LANGUAGE-NAME.
@@@ -2185,7 -2185,7 +2185,7 @@@ specifies the character set for the maj
      ;; en_IN -- fx.
      ("en_IN" "English" utf-8) ; glibc uses utf-8 for English in India
      ("en" "English" iso-8859-1) ; English
-     ("eo" . "Latin-3") ; Esperanto
+     ("eo" . "Esperanto") ; Esperanto
      ("es" "Spanish" iso-8859-1)
      ("et" . "Latin-1") ; Estonian
      ("eu" . "Latin-1") ; Basque
@@@ -2454,7 -2454,7 +2454,7 @@@ is returned.  Thus, for instance, if ch
  ;; too, for setting things such as calendar holidays, ps-print paper
  ;; size, spelling dictionary.
  
 -(defun set-locale-environment (&optional locale-name)
 +(defun set-locale-environment (&optional locale-name display)
    "Set up multi-lingual environment for using LOCALE-NAME.
  This sets the language environment, the coding system priority,
  the default input method and sometimes other things.
@@@ -2475,11 -2475,6 +2475,11 @@@ directory named `/usr/share/locale' or 
  will be translated according to the table specified by
  `locale-translation-file-name'.
  
 +If DISPLAY is non-nil, only set the keyboard coding system and
 +the terminal coding system for the given display, and don't touch
 +session-global parameters like the language environment.  DISPLAY
 +may be a display id or a frame.
 +
  See also `locale-charset-language-names', `locale-language-names',
  `locale-preferred-coding-systems' and `locale-coding-system'."
    (interactive "sSet environment for locale: ")
        (let ((vars '("LC_ALL" "LC_CTYPE" "LANG")))
        (while (and vars
                    (= 0 (length locale))) ; nil or empty string
 -        (setq locale (getenv (pop vars))))))
 +        (setq locale (getenv (pop vars) display)))))
  
      (unless locale
        ;; The two tests are kept separate so the byte-compiler sees
  
          ;; Set up for this character set.  This is now the right way
          ;; to do it for both unibyte and multibyte modes.
 -        (set-language-environment language-name)
 +        (unless display
 +          (set-language-environment language-name))
  
          ;; If default-enable-multibyte-characters is nil,
          ;; we are using single-byte characters,
          ;; so the display table and terminal coding system are irrelevant.
          (when default-enable-multibyte-characters
            (set-display-table-and-terminal-coding-system
 -           language-name coding-system))
 +           language-name coding-system display))
  
          ;; Set the `keyboard-coding-system' if appropriate (tty
          ;; only).  At least X and MS Windows can generate
          ;; multilingual input.
 -        (unless window-system
 -          (let ((kcs (or coding-system
 -                         (car (get-language-info language-name
 -                                                 'coding-system)))))
 -            (if kcs (set-keyboard-coding-system kcs))))
 -
 -        (setq locale-coding-system
 -              (car (get-language-info language-name 'coding-priority))))
 -
 -      (when (and coding-system
 +        ;; XXX This was disabled unless `window-system', but that
 +        ;; leads to buggy behaviour when a tty frame is opened
 +        ;; later.  Setting the keyboard coding system has no adverse
 +        ;; effect on X, so let's do it anyway. -- Lorentey
 +        (let ((kcs (or coding-system
 +                       (car (get-language-info language-name
 +                                               'coding-system)))))
 +          (if kcs (set-keyboard-coding-system kcs display)))
 +
 +        (unless display
 +          (setq locale-coding-system
 +                (car (get-language-info language-name 'coding-priority)))))
 +
 +      (when (and (not display)
 +                 coding-system
                   (not (coding-system-equal coding-system
                                             locale-coding-system)))
          (prefer-coding-system coding-system)
      (when (boundp 'w32-ansi-code-page)
        (let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page))))
        (when (coding-system-p code-page-coding)
 -        (setq locale-coding-system code-page-coding)
 -        (set-keyboard-coding-system code-page-coding)
 -        (set-terminal-coding-system code-page-coding))))
 +        (unless display (setq locale-coding-system code-page-coding))
 +        (set-keyboard-coding-system code-page-coding display)
 +        (set-terminal-coding-system code-page-coding display))))
  
      (when (eq system-type 'darwin)
        ;; On Darwin, file names are always encoded in utf-8, no matter
        ;; Mac OS X's Terminal.app by default uses utf-8 regardless of
        ;; the locale.
        (when (and (null window-system)
 -               (equal (getenv "TERM_PROGRAM") "Apple_Terminal"))
 +               (equal (getenv "TERM_PROGRAM" display) "Apple_Terminal"))
        (set-terminal-coding-system 'utf-8)
        (set-keyboard-coding-system 'utf-8)))
  
      ;; Default to A4 paper if we're not in a C, POSIX or US locale.
      ;; (See comments in Flocale_info.)
 -    (let ((locale locale)
 -        (paper (locale-info 'paper)))
 -      (if paper
 -        ;; This will always be null at the time of writing.
 -        (cond
 -         ((equal paper '(216 279))
 -          (setq ps-paper-type 'letter))
 -         ((equal paper '(210 297))
 -          (setq ps-paper-type 'a4)))
 -      (let ((vars '("LC_ALL" "LC_PAPER" "LANG")))
 -        (while (and vars (= 0 (length locale)))
 -          (setq locale (getenv (pop vars)))))
 -      (when locale
 -        ;; As of glibc 2.2.5, these are the only US Letter locales,
 -        ;; and the rest are A4.
 -        (setq ps-paper-type
 -              (or (locale-name-match locale '(("c$" . letter)
 -                                              ("posix$" . letter)
 -                                              (".._us" . letter)
 -                                              (".._pr" . letter)
 -                                              (".._ca" . letter)
 -                                              ("enu$" . letter) ; Windows
 -                                              ("esu$" . letter)
 -                                              ("enc$" . letter)
 -                                              ("frc$" . letter)))
 -                  'a4))))))
 +    (unless display
 +      (let ((locale locale)
 +          (paper (locale-info 'paper)))
 +      (if paper
 +          ;; This will always be null at the time of writing.
 +          (cond
 +           ((equal paper '(216 279))
 +            (setq ps-paper-type 'letter))
 +           ((equal paper '(210 297))
 +            (setq ps-paper-type 'a4)))
 +        (let ((vars '("LC_ALL" "LC_PAPER" "LANG")))
 +          (while (and vars (= 0 (length locale)))
 +            (setq locale (getenv (pop vars) display))))
 +        (when locale
 +          ;; As of glibc 2.2.5, these are the only US Letter locales,
 +          ;; and the rest are A4.
 +          (setq ps-paper-type
 +                (or (locale-name-match locale '(("c$" . letter)
 +                                                ("posix$" . letter)
 +                                                (".._us" . letter)
 +                                                (".._pr" . letter)
 +                                                (".._ca" . letter)
 +                                                ("enu$" . letter) ; Windows
 +                                                ("esu$" . letter)
 +                                                ("enc$" . letter)
 +                                                ("frc$" . letter)))
 +                    'a4)))))))
    nil)
  \f
  ;;; Charset property
index 5df2d4838755fb2c1d2f39671bc935ace5d2eca9,6d1a17cba42fbc693219136fdd6ad5370e29c2eb..d2c83d75e06012671a0a78c4abb6e906eb5ecacf
@@@ -1219,17 -1219,13 +1219,17 @@@ see) to CODING-SYSTEM.
  This is normally set according to the selected language environment.
  See also the command `set-terminal-coding-system'.")
  
 -(defun set-terminal-coding-system (coding-system)
 -  "Set coding system of your terminal to CODING-SYSTEM.
 -All text output to the terminal will be encoded
 +(defun set-terminal-coding-system (coding-system &optional display)
 +  "Set coding system of terminal output to CODING-SYSTEM.
 +All text output to DISPLAY will be encoded
  with the specified coding system.
 +
  For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
  The default is determined by the selected language environment
 -or by the previous use of this command."
 +or by the previous use of this command.
 +
 +DISPLAY may be a display id, a frame, or nil for the selected frame's display.
 +The setting has no effect on graphical displays."
    (interactive
     (list (let ((default (if (and (not (terminal-coding-system))
                                 default-terminal-coding-system)
        (setq coding-system default-terminal-coding-system))
    (if coding-system
        (setq default-terminal-coding-system coding-system))
 -  (set-terminal-coding-system-internal coding-system)
 +  (set-terminal-coding-system-internal coding-system display)
    (redraw-frame (selected-frame)))
  
  (defvar default-keyboard-coding-system nil
  This is normally set according to the selected language environment.
  See also the command `set-keyboard-coding-system'.")
  
 -(defun set-keyboard-coding-system (coding-system)
 -  "Set coding system for keyboard input to CODING-SYSTEM.
 -In addition, this command enables Encoded-kbd minor mode.
 -\(If CODING-SYSTEM is nil, Encoded-kbd mode is turned off -- see
 -`encoded-kbd-mode'.)
 +(defun set-keyboard-coding-system (coding-system &optional display)
 +  "Set coding system for keyboard input on DISPLAY to CODING-SYSTEM.
 +In addition, this command calls `encoded-kbd-setup-display' to set up the
 +translation of keyboard input events to the specified coding system.
 +
  For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems].
  The default is determined by the selected language environment
 -or by the previous use of this command."
 +or by the previous use of this command.
 +
 +DISPLAY may be a display id, a frame, or nil for the selected frame's display.
 +The setting has no effect on graphical displays."
    (interactive
     (list (let ((default (if (and (not (keyboard-coding-system))
                                 default-keyboard-coding-system)
    (if (and coding-system
           (coding-system-get coding-system 'ascii-incompatible))
        (error "%s is not ASCII-compatible" coding-system))
 -  (set-keyboard-coding-system-internal coding-system)
 +  (set-keyboard-coding-system-internal coding-system display)
    (setq keyboard-coding-system coding-system)
 -  (encoded-kbd-mode (if coding-system 1 0)))
 +  (encoded-kbd-setup-display display))
  
  (defcustom keyboard-coding-system nil
    "Specify coding system for keyboard input.
@@@ -1296,8 -1289,8 +1296,8 @@@ use either \\[customize] or \\[set-keyb
    :link '(info-link "(emacs)Terminal Coding")
    :link '(info-link "(emacs)Unibyte Mode")
    :set (lambda (symbol value)
 -       ;; Don't load encoded-kbd-mode unnecessarily.
 -       (if (or value (boundp 'encoded-kbd-mode))
 +       ;; Don't load encoded-kb unnecessarily.
 +       (if (or value (boundp 'encoded-kbd-setup-display))
             (set-keyboard-coding-system value)
           (set-default 'keyboard-coding-system nil))) ; must initialize
    :version "22.1"
@@@ -1683,7 -1676,7 +1683,7 @@@ cons (CODING . SOURCE), where CODING i
  system and SOURCE is a symbol `auto-coding-alist',
  `auto-coding-regexp-alist', `coding:', or `auto-coding-functions'
  indicating by what CODING is specified.  Note that the validity
- of CODING is not checked; it's callers responsibility to check it.
+ of CODING is not checked; it's the caller's responsibility to check it.
  
  If nothing is specified, the return value is nil."
    (or (let ((coding-system (auto-coding-alist-lookup filename)))
diff --combined lisp/isearch.el
index 121ccefacd169a9e7e410742fbf308baa825af05,2f17af43c14cf3a34f4fc327f3090f053149ce73..8c248dbc2554edb0060df4664f966d05d4d4eb47
@@@ -1646,7 -1646,7 +1646,7 @@@ Isearch mode.
         (keylist (listify-key-sequence key))
           scroll-command isearch-point)
      (cond ((and (= (length key) 1)
 -              (let ((lookup (lookup-key function-key-map key)))
 +              (let ((lookup (lookup-key local-function-key-map key)))
                  (not (or (null lookup) (integerp lookup)
                           (keymapp lookup)))))
           ;; Handle a function key that translates into something else.
                 (isearch-done)
                 (apply 'isearch-unread keylist))
             (setq keylist
 -                 (listify-key-sequence (lookup-key function-key-map key)))
 +                 (listify-key-sequence (lookup-key local-function-key-map key)))
             (while keylist
               (setq key (car keylist))
               ;; If KEY is a printing char, we handle it here
@@@ -2321,6 -2321,7 +2321,7 @@@ since they have special meaning in a re
  (defvar isearch-lazy-highlight-window-end nil)
  (defvar isearch-lazy-highlight-case-fold-search nil)
  (defvar isearch-lazy-highlight-regexp nil)
+ (defvar isearch-lazy-highlight-space-regexp nil)
  
  (defun lazy-highlight-cleanup (&optional force)
    "Stop lazy highlighting and remove extra highlighting from current buffer.
@@@ -2374,7 -2375,8 +2375,8 @@@ by other Emacs features.
              isearch-lazy-highlight-last-string  isearch-string
            isearch-lazy-highlight-case-fold-search isearch-case-fold-search
            isearch-lazy-highlight-regexp       isearch-regexp
-             isearch-lazy-highlight-wrapped      nil)
+             isearch-lazy-highlight-wrapped      nil
+           isearch-lazy-highlight-space-regexp search-whitespace-regexp)
        (unless (equal isearch-string "")
        (setq isearch-lazy-highlight-timer
              (run-with-idle-timer lazy-highlight-initial-delay nil
  Attempt to do the search exactly the way the pending isearch would."
    (let ((case-fold-search isearch-lazy-highlight-case-fold-search)
        (isearch-regexp isearch-lazy-highlight-regexp)
-       (search-spaces-regexp search-whitespace-regexp))
+       (search-spaces-regexp isearch-lazy-highlight-space-regexp))
      (condition-case nil
        (isearch-search-string
                 isearch-lazy-highlight-last-string
diff --combined lisp/ldefs-boot.el
index 82b8aeea0598d6b09b8294468feb91414e59a097,efe2784a905eaa1639ae0af6fa4c510464a70ba6..f69fba42acaafca3f0a8cb65439df5cd54e45e27
@@@ -4,7 -4,7 +4,7 @@@
  \f
  ;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
  ;;;;;;  5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
 -;;;;;;  "play/5x5.el" (17876 36878))
 +;;;;;;  "play/5x5.el" (17817 14124))
  ;;; Generated autoloads from play/5x5.el
  
  (autoload (quote 5x5) "5x5" "\
@@@ -46,7 -46,7 +46,7 @@@ Attempt to crack 5x5 by mutating the be
  \(fn)" t nil)
  
  (autoload (quote 5x5-crack-xor-mutate) "5x5" "\
- Attempt to crack 5x5 by xor the current and best solution.
+ Attempt to crack 5x5 by xoring the current and best solution.
  Mutate the result.
  
  \(fn)" t nil)
@@@ -56,21 -56,21 +56,21 @@@ Attempt to find a solution for 5x5
  
  5x5-crack takes the argument BREEDER which should be a function that takes
  two parameters, the first will be a grid vector array that is the current
- solution and the second will be the best solution so far. The function
+ solution and the second will be the best solution so far.  The function
  should return a grid vector array that is the new solution.
  
  \(fn BREEDER)" t nil)
  
  ;;;***
  \f
 -;;;### (autoloads nil "abbrev" "abbrev.el" (17851 10813))
 +;;;### (autoloads nil "abbrev" "abbrev.el" (17817 13973))
  ;;; Generated autoloads from abbrev.el
  (put 'abbrev-mode 'safe-local-variable 'booleanp)
  
  ;;;***
  \f
  ;;;### (autoloads (list-one-abbrev-table) "abbrevlist" "abbrevlist.el"
 -;;;;;;  (17851 10813))
 +;;;;;;  (17817 13973))
  ;;; Generated autoloads from abbrevlist.el
  
  (autoload (quote list-one-abbrev-table) "abbrevlist" "\
@@@ -81,7 -81,7 +81,7 @@@ Display alphabetical listing of ABBREV-
  ;;;***
  \f
  ;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17778 50475))
  ;;; Generated autoloads from progmodes/ada-mode.el
  
  (autoload (quote ada-add-extensions) "ada-mode" "\
@@@ -142,7 -142,7 +142,7 @@@ If you use ada-xref.el
  ;;;***
  \f
  ;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17778 50475))
  ;;; Generated autoloads from progmodes/ada-stmt.el
  
  (autoload (quote ada-header) "ada-stmt" "\
@@@ -153,7 -153,7 +153,7 @@@ Insert a descriptive header at the top 
  ;;;***
  \f
  ;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17817 13969))
  ;;; Generated autoloads from progmodes/ada-xref.el
  
  (autoload (quote ada-find-file) "ada-xref" "\
@@@ -168,7 -168,7 +168,7 @@@ Completion is available
  ;;;;;;  change-log-mode add-change-log-entry-other-window add-change-log-entry
  ;;;;;;  find-change-log prompt-for-change-log-name add-log-mailing-address
  ;;;;;;  add-log-full-name add-log-current-defun-function) "add-log"
 -;;;;;;  "add-log.el" (17852 50694))
 +;;;;;;  "add-log.el" (17817 16160))
  ;;; Generated autoloads from add-log.el
  
  (defvar add-log-current-defun-function nil "\
@@@ -306,7 -306,7 +306,7 @@@ Fix any old-style date entries in the c
  \f
  ;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
  ;;;;;;  ad-enable-advice ad-default-compilation-action ad-redefinition-action)
 -;;;;;;  "advice" "emacs-lisp/advice.el" (17851 10852))
 +;;;;;;  "advice" "emacs-lisp/advice.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/advice.el
  
  (defvar ad-redefinition-action (quote warn) "\
@@@ -434,7 -434,7 +434,7 @@@ See Info node `(elisp)Advising Function
  \f
  ;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
  ;;;;;;  align-highlight-rule align-current align-entire align-regexp
 -;;;;;;  align) "align" "align.el" (17851 10813))
 +;;;;;;  align) "align" "align.el" (17817 15485))
  ;;; Generated autoloads from align.el
  
  (autoload (quote align) "align" "\
@@@ -524,7 -524,7 +524,7 @@@ A replacement function for `newline-and
  ;;;***
  \f
  ;;;### (autoloads (outlineify-sticky allout-mode) "allout" "allout.el"
 -;;;;;;  (17851 10813))
 +;;;;;;  (17817 16945))
  ;;; Generated autoloads from allout.el
  
  (put (quote allout-show-bodies) (quote safe-local-variable) (if (fboundp (quote booleanp)) (quote booleanp) (quote (lambda (x) (member x (quote (t nil)))))))
@@@ -827,7 -827,7 +827,7 @@@ setup for auto-startup
  ;;;***
  \f
  ;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
 -;;;;;;  "net/ange-ftp.el" (17856 1487))
 +;;;;;;  "net/ange-ftp.el" (17817 15940))
  ;;; Generated autoloads from net/ange-ftp.el
  
  (defalias (quote ange-ftp-re-read-dir) (quote ange-ftp-reread-dir))
@@@ -849,7 -849,7 +849,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
 -;;;;;;  "animate" "play/animate.el" (17851 10865))
 +;;;;;;  "animate" "play/animate.el" (17383 38807))
  ;;; Generated autoloads from play/animate.el
  
  (autoload (quote animate-string) "animate" "\
@@@ -877,7 -877,7 +877,7 @@@ You can specify the one's name by NAME
  ;;;***
  \f
  ;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
 -;;;;;;  "ansi-color" "ansi-color.el" (17851 10813))
 +;;;;;;  "ansi-color" "ansi-color.el" (17390 26934))
  ;;; Generated autoloads from ansi-color.el
  
  (autoload (quote ansi-color-for-comint-mode-on) "ansi-color" "\
@@@ -903,7 -903,7 +903,7 @@@ This is a good function to put in `comi
  ;;;***
  \f
  ;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
 -;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (17851 10866))
 +;;;;;;  "antlr-mode" "progmodes/antlr-mode.el" (17490 7905))
  ;;; Generated autoloads from progmodes/antlr-mode.el
  
  (autoload (quote antlr-show-makefile-rules) "antlr-mode" "\
@@@ -942,7 -942,7 +942,7 @@@ Used in `antlr-mode'.  Also a useful fu
  ;;;### (autoloads (appt-activate appt-make-list appt-delete appt-add
  ;;;;;;  appt-display-diary appt-display-duration appt-display-mode-line
  ;;;;;;  appt-msg-window appt-visible appt-audible appt-message-warning-time
 -;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (17851 10850))
 +;;;;;;  appt-issue-message) "appt" "calendar/appt.el" (17713 5989))
  ;;; Generated autoloads from calendar/appt.el
  
  (defvar appt-issue-message t "\
@@@ -1030,7 -1030,7 +1030,7 @@@ ARG is positive, otherwise off
  \f
  ;;;### (autoloads (apropos-documentation apropos-value apropos apropos-documentation-property
  ;;;;;;  apropos-command apropos-variable apropos-read-pattern) "apropos"
 -;;;;;;  "apropos.el" (17851 10813))
 +;;;;;;  "apropos.el" (17778 50472))
  ;;; Generated autoloads from apropos.el
  
  (autoload (quote apropos-read-pattern) "apropos" "\
@@@ -1126,8 -1126,8 +1126,8 @@@ Returns list of symbols and documentati
  
  ;;;***
  \f
 -;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17851
 -;;;;;;  10814))
 +;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (17817
 +;;;;;;  13973))
  ;;; Generated autoloads from arc-mode.el
  
  (autoload (quote archive-mode) "arc-mode" "\
@@@ -1147,7 -1147,7 +1147,7 @@@ archive
  
  ;;;***
  \f
 -;;;### (autoloads (array-mode) "array" "array.el" (17851 10814))
 +;;;### (autoloads (array-mode) "array" "array.el" (17817 13973))
  ;;; Generated autoloads from array.el
  
  (autoload (quote array-mode) "array" "\
@@@ -1218,8 -1218,8 +1218,8 @@@ Entering array mode calls the function 
  
  ;;;***
  \f
 -;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17851
 -;;;;;;  10872))
 +;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (17524
 +;;;;;;  8598))
  ;;; Generated autoloads from textmodes/artist.el
  
  (autoload (quote artist-mode) "artist" "\
@@@ -1424,8 -1424,8 +1424,8 @@@ Keymap summar
  
  ;;;***
  \f
 -;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17851
 -;;;;;;  10866))
 +;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (17490
 +;;;;;;  7930))
  ;;; Generated autoloads from progmodes/asm-mode.el
  
  (autoload (quote asm-mode) "asm-mode" "\
@@@ -1450,26 -1450,10 +1450,26 @@@ Special commands
  
  \(fn)" t nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (auto-show-mode auto-show-mode) "auto-show" "obsolete/auto-show.el"
 +;;;;;;  (17279 27080))
 +;;; Generated autoloads from obsolete/auto-show.el
 +
 +(defvar auto-show-mode nil "\
 +Obsolete.")
 +
 +(custom-autoload (quote auto-show-mode) "auto-show")
 +
 +(autoload (quote auto-show-mode) "auto-show" "\
 +This command is obsolete.
 +
 +\(fn ARG)" t nil)
 +
  ;;;***
  \f
  ;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
 -;;;;;;  (17851 10814))
 +;;;;;;  (17817 13973))
  ;;; Generated autoloads from autoarg.el
  
  (defvar autoarg-mode nil "\
@@@ -1523,7 -1507,7 +1523,7 @@@ etc. to supply digit arguments
  ;;;***
  \f
  ;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17817 14147))
  ;;; Generated autoloads from progmodes/autoconf.el
  
  (autoload (quote autoconf-mode) "autoconf" "\
@@@ -1534,7 -1518,7 +1534,7 @@@ Major mode for editing Autoconf configu
  ;;;***
  \f
  ;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
 -;;;;;;  "autoinsert" "autoinsert.el" (17851 10814))
 +;;;;;;  "autoinsert" "autoinsert.el" (17817 13973))
  ;;; Generated autoloads from autoinsert.el
  
  (autoload (quote auto-insert) "autoinsert" "\
@@@ -1573,7 -1557,7 +1573,7 @@@ insert a template for the file dependin
  \f
  ;;;### (autoloads (batch-update-autoloads update-directory-autoloads
  ;;;;;;  update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
 -;;;;;;  (17860 50251))
 +;;;;;;  (17611 8435))
  ;;; Generated autoloads from emacs-lisp/autoload.el
  
  (autoload (quote update-file-autoloads) "autoload" "\
@@@ -1608,7 -1592,7 +1608,7 @@@ Calls `update-directory-autoloads' on t
  \f
  ;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
  ;;;;;;  auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
 -;;;;;;  "autorevert" "autorevert.el" (17851 10814))
 +;;;;;;  "autorevert" "autorevert.el" (17505 62410))
  ;;; Generated autoloads from autorevert.el
  
  (autoload (quote auto-revert-mode) "autorevert" "\
@@@ -1660,9 -1644,10 +1660,9 @@@ This function is designed to be added t
  Non-nil if Global-Auto-Revert mode is enabled.
  See the command `global-auto-revert-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `global-auto-revert-mode'.")
 +use either \\[customize] or the function `global-auto-revert-mode'.")
  
 -(custom-autoload (quote global-auto-revert-mode) "autorevert" nil)
 +(custom-autoload (quote global-auto-revert-mode) "autorevert")
  
  (autoload (quote global-auto-revert-mode) "autorevert" "\
  Revert any buffer when file on disk changes.
@@@ -1676,7 -1661,7 +1676,7 @@@ Use `auto-revert-mode' to revert a part
  ;;;***
  \f
  ;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
 -;;;;;;  "avoid.el" (17851 10814))
 +;;;;;;  "avoid.el" (17817 13974))
  ;;; Generated autoloads from avoid.el
  
  (defvar mouse-avoidance-mode nil "\
@@@ -1717,7 -1702,7 +1717,7 @@@ definition of \"random distance\".
  ;;;***
  \f
  ;;;### (autoloads (backquote) "backquote" "emacs-lisp/backquote.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17390 26937))
  ;;; Generated autoloads from emacs-lisp/backquote.el
  
  (autoload (quote backquote) "backquote" "\
@@@ -1742,7 -1727,7 +1742,7 @@@ Vectors work just like lists.  Nested b
  ;;;***
  \f
  ;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
 -;;;;;;  (17851 10815))
 +;;;;;;  (17778 50472))
  ;;; Generated autoloads from battery.el
   (put 'battery-mode-line-string 'risky-local-variable t)
  
@@@ -1774,7 -1759,7 +1774,7 @@@ seconds
  ;;;***
  \f
  ;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
 -;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (17851 10852))
 +;;;;;;  "benchmark" "emacs-lisp/benchmark.el" (17390 26937))
  ;;; Generated autoloads from emacs-lisp/benchmark.el
  
  (autoload (quote benchmark-run) "benchmark" "\
@@@ -1806,8 -1791,8 +1806,8 @@@ non-interactive use see also `benchmark
  
  ;;;***
  \f
 -;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17851
 -;;;;;;  39452))
 +;;;### (autoloads (bibtex-mode) "bibtex" "textmodes/bibtex.el" (17817
 +;;;;;;  14127))
  ;;; Generated autoloads from textmodes/bibtex.el
  
  (autoload (quote bibtex-mode) "bibtex" "\
@@@ -1869,7 -1854,7 +1869,7 @@@ if that value is non-nil
  \f
  ;;;### (autoloads (binhex-decode-region binhex-decode-region-external
  ;;;;;;  binhex-decode-region-internal) "binhex" "gnus/binhex.el"
 -;;;;;;  (17851 10856))
 +;;;;;;  (17383 38804))
  ;;; Generated autoloads from gnus/binhex.el
  
  (defconst binhex-begin-line "^:...............................................................$")
@@@ -1892,8 -1877,8 +1892,8 @@@ Binhex decode region between START and 
  
  ;;;***
  \f
 -;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17851
 -;;;;;;  10865))
 +;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (17383
 +;;;;;;  38807))
  ;;; Generated autoloads from play/blackbox.el
  
  (autoload (quote blackbox) "blackbox" "\
@@@ -2015,7 -2000,7 +2015,7 @@@ a reflection
  ;;;### (autoloads (bookmark-bmenu-list bookmark-load bookmark-save
  ;;;;;;  bookmark-write bookmark-delete bookmark-insert bookmark-rename
  ;;;;;;  bookmark-insert-location bookmark-relocate bookmark-jump
 -;;;;;;  bookmark-set) "bookmark" "bookmark.el" (17851 10815))
 +;;;;;;  bookmark-set) "bookmark" "bookmark.el" (17390 26935))
  ;;; Generated autoloads from bookmark.el
   (define-key ctl-x-map "rb" 'bookmark-jump)
   (define-key ctl-x-map "rm" 'bookmark-set)
@@@ -2205,7 -2190,7 +2205,7 @@@ deletion, or > if it is flagged for dis
  ;;;;;;  browse-url browse-url-of-region browse-url-of-dired-file
  ;;;;;;  browse-url-of-buffer browse-url-of-file browse-url-url-at-point
  ;;;;;;  browse-url-galeon-program browse-url-firefox-program browse-url-browser-function)
 -;;;;;;  "browse-url" "net/browse-url.el" (17851 10863))
 +;;;;;;  "browse-url" "net/browse-url.el" (17817 13984))
  ;;; Generated autoloads from net/browse-url.el
  
  (defvar browse-url-browser-function (cond ((memq system-type (quote (windows-nt ms-dos cygwin))) (quote browse-url-default-windows-browser)) ((memq system-type (quote (darwin))) (quote browse-url-default-macosx-browser)) (t (quote browse-url-default-browser))) "\
@@@ -2536,8 -2521,8 +2536,8 @@@ Default to the URL around or before poi
  
  ;;;***
  \f
 -;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17851
 -;;;;;;  10865))
 +;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (17817
 +;;;;;;  14124))
  ;;; Generated autoloads from play/bruce.el
  
  (autoload (quote bruce) "bruce" "\
@@@ -2553,7 -2538,7 +2553,7 @@@ Return a vector containing the lines fr
  ;;;***
  \f
  ;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
 -;;;;;;  "bs" "bs.el" (17851 10816))
 +;;;;;;  "bs" "bs.el" (17817 16161))
  ;;; Generated autoloads from bs.el
  
  (autoload (quote bs-cycle-next) "bs" "\
@@@ -2594,8 -2579,8 +2594,8 @@@ name of buffer configuration
  ;;;***
  \f
  ;;;### (autoloads (insert-text-button make-text-button insert-button
 -;;;;;;  make-button define-button-type) "button" "button.el" (17851
 -;;;;;;  10816))
 +;;;;;;  make-button define-button-type) "button" "button.el" (17390
 +;;;;;;  26935))
  ;;; Generated autoloads from button.el
  
  (defvar button-map (let ((map (make-sparse-keymap))) (define-key map "\r" (quote push-button)) (define-key map [mouse-2] (quote push-button)) map) "\
@@@ -2683,9 -2668,10 +2683,9 @@@ Also see `make-text-button'
  ;;;;;;  batch-byte-compile-if-not-done display-call-tree byte-compile
  ;;;;;;  compile-defun byte-compile-file byte-recompile-directory
  ;;;;;;  byte-force-recompile byte-compile-warnings-safe-p) "bytecomp"
 -;;;;;;  "emacs-lisp/bytecomp.el" (17873 60335))
 +;;;;;;  "emacs-lisp/bytecomp.el" (17778 50473))
  ;;; Generated autoloads from emacs-lisp/bytecomp.el
  (put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 -(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
  (put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
  
  (autoload (quote byte-compile-warnings-safe-p) "bytecomp" "\
@@@ -2720,7 -2706,8 +2720,8 @@@ recompile every `.el' file that alread
  
  (autoload (quote byte-compile-file) "bytecomp" "\
  Compile a file of Lisp code named FILENAME into a file of byte code.
- The output file's name is made by appending `c' to the end of FILENAME.
+ The output file's name is generated by passing FILENAME to the
+ `byte-compile-dest-file' function (which see).
  With prefix arg (noninteractively: 2nd arg), LOAD the file after compiling.
  The value is non-nil if there were no errors, nil if errors.
  
@@@ -2787,7 -2774,7 +2788,7 @@@ and corresponding effects
  
  ;;;***
  \f
 -;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17851 10850))
 +;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (17817 16161))
  ;;; Generated autoloads from calendar/cal-dst.el
  
  (put (quote calendar-daylight-savings-starts) (quote risky-local-variable) t)
  ;;;***
  \f
  ;;;### (autoloads (list-yahrzeit-dates) "cal-hebrew" "calendar/cal-hebrew.el"
 -;;;;;;  (17851 10850))
 +;;;;;;  (17390 27324))
  ;;; Generated autoloads from calendar/cal-hebrew.el
  
  (autoload (quote list-yahrzeit-dates) "cal-hebrew" "\
@@@ -2812,7 -2799,7 +2813,7 @@@ from the cursor position
  ;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
  ;;;;;;  calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
  ;;;;;;  full-calc calc calc-dispatch calc-settings-file) "calc" "calc/calc.el"
 -;;;;;;  (17851 10850))
 +;;;;;;  (17713 5989))
  ;;; Generated autoloads from calc/calc.el
  
  (defvar calc-settings-file (convert-standard-filename "~/.calc.el") "\
@@@ -2890,8 -2877,8 +2891,8 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (calculator) "calculator" "calculator.el" (17871
 -;;;;;;  15753))
 +;;;### (autoloads (calculator) "calculator" "calculator.el" (17390
 +;;;;;;  26935))
  ;;; Generated autoloads from calculator.el
  
  (autoload (quote calculator) "calculator" "\
@@@ -2919,7 -2906,7 +2920,7 @@@ See the documentation for `calculator-m
  ;;;;;;  mark-holidays-in-calendar view-calendar-holidays-initially
  ;;;;;;  calendar-remove-frame-by-deleting mark-diary-entries-in-calendar
  ;;;;;;  view-diary-entries-initially calendar-offset) "calendar"
 -;;;;;;  "calendar/calendar.el" (17851 10851))
 +;;;;;;  "calendar/calendar.el" (17817 16151))
  ;;; Generated autoloads from calendar/calendar.el
  
  (defvar calendar-offset 0 "\
@@@ -3492,7 -3479,7 +3493,7 @@@ movement commands will not work correct
  ;;;***
  \f
  ;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
 -;;;;;;  "gnus/canlock.el" (17851 10856))
 +;;;;;;  "gnus/canlock.el" (17383 38804))
  ;;; Generated autoloads from gnus/canlock.el
  
  (autoload (quote canlock-insert-header) "canlock" "\
@@@ -3509,15 -3496,15 +3510,15 @@@ it fails
  
  ;;;***
  \f
 -;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17851
 -;;;;;;  10866))
 +;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (17817
 +;;;;;;  13957))
  ;;; Generated autoloads from progmodes/cc-compat.el
  (put 'c-indent-level 'safe-local-variable 'integerp)
  
  ;;;***
  \f
  ;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
 -;;;;;;  (17859 56529))
 +;;;;;;  (17817 13957))
  ;;; Generated autoloads from progmodes/cc-engine.el
  
  (autoload (quote c-guess-basic-syntax) "cc-engine" "\
@@@ -3529,7 -3516,7 +3530,7 @@@ Return the syntactic context of the cur
  \f
  ;;;### (autoloads (pike-mode idl-mode java-mode objc-mode c++-mode
  ;;;;;;  c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17817 15855))
  ;;; Generated autoloads from progmodes/cc-mode.el
  
  (autoload (quote c-initialize-cc-mode) "cc-mode" "\
@@@ -3687,7 -3674,7 +3688,7 @@@ Key bindings
  ;;;***
  \f
  ;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
 -;;;;;;  "progmodes/cc-styles.el" (17851 10867))
 +;;;;;;  "progmodes/cc-styles.el" (17817 13957))
  ;;; Generated autoloads from progmodes/cc-styles.el
  
  (autoload (quote c-set-style) "cc-styles" "\
@@@ -3738,14 -3725,14 +3739,14 @@@ and exists only for compatibility reaso
  
  ;;;***
  \f
 -;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17851
 -;;;;;;  10867))
 +;;;### (autoloads nil "cc-subword" "progmodes/cc-subword.el" (17515
 +;;;;;;  24933))
  ;;; Generated autoloads from progmodes/cc-subword.el
   (autoload 'c-subword-mode "cc-subword" "Mode enabling subword movement and editing keys." t)
  
  ;;;***
  \f
 -;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17854 10614))
 +;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (17817 13957))
  ;;; Generated autoloads from progmodes/cc-vars.el
  (put 'c-basic-offset 'safe-local-variable 'integerp)
  (put 'c-backslash-column 'safe-local-variable 'integerp)
  \f
  ;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
  ;;;;;;  declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 15477))
  ;;; Generated autoloads from international/ccl.el
  
  (autoload (quote ccl-compile) "ccl" "\
@@@ -4014,7 -4001,7 +4015,7 @@@ See the documentation of `define-ccl-pr
  ;;;***
  \f
  ;;;### (autoloads (cfengine-mode) "cfengine" "progmodes/cfengine.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17713 5991))
  ;;; Generated autoloads from progmodes/cfengine.el
  
  (autoload (quote cfengine-mode) "cfengine" "\
@@@ -4036,7 -4023,7 +4037,7 @@@ to the action header
  ;;;;;;  checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
  ;;;;;;  checkdoc-eval-current-buffer checkdoc-message-interactive
  ;;;;;;  checkdoc-interactive checkdoc) "checkdoc" "emacs-lisp/checkdoc.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from emacs-lisp/checkdoc.el
  
  (autoload (quote checkdoc) "checkdoc" "\
@@@ -4219,8 -4206,8 +4220,8 @@@ checking of documentation strings
  ;;;***
  \f
  ;;;### (autoloads (encode-hz-buffer encode-hz-region decode-hz-buffer
 -;;;;;;  decode-hz-region) "china-util" "language/china-util.el" (17851
 -;;;;;;  10861))
 +;;;;;;  decode-hz-region) "china-util" "language/china-util.el" (17817
 +;;;;;;  15478))
  ;;; Generated autoloads from language/china-util.el
  
  (autoload (quote decode-hz-region) "china-util" "\
@@@ -4248,7 -4235,7 +4249,7 @@@ Encode the text in the current buffer t
  ;;;***
  \f
  ;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
 -;;;;;;  "chistory" "chistory.el" (17851 10817))
 +;;;;;;  "chistory" "chistory.el" (17817 13974))
  ;;; Generated autoloads from chistory.el
  
  (autoload (quote repeat-matching-complex-command) "chistory" "\
@@@ -4287,7 -4274,7 +4288,7 @@@ and runs the normal hook `command-histo
  
  ;;;***
  \f
 -;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17851 10852))
 +;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/cl.el
  
  (defvar custom-print-functions nil "\
@@@ -4303,7 -4290,7 +4304,7 @@@ a future Emacs interpreter will be abl
  ;;;***
  \f
  ;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17778 49129))
  ;;; Generated autoloads from emacs-lisp/cl-indent.el
  
  (autoload (quote common-lisp-indent-function) "cl-indent" "\
@@@ -4314,7 -4301,7 +4315,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17390 27407))
  ;;; Generated autoloads from progmodes/cmacexp.el
  
  (autoload (quote c-macro-expand) "cmacexp" "\
@@@ -4334,8 -4321,8 +4335,8 @@@ For use inside Lisp programs, see also 
  
  ;;;***
  \f
 -;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17851
 -;;;;;;  10817))
 +;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (17817
 +;;;;;;  14115))
  ;;; Generated autoloads from cmuscheme.el
  
  (autoload (quote run-scheme) "cmuscheme" "\
@@@ -4357,7 -4344,7 +4358,7 @@@ is run)
  ;;;***
  \f
  ;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 14139))
  ;;; Generated autoloads from international/code-pages.el
  
  (autoload (quote cp-make-coding-system) "code-pages" "\
@@@ -4418,7 -4405,7 +4419,7 @@@ Return an updated `non-iso-charset-alis
  \f
  ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage
  ;;;;;;  cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage)
 -;;;;;;  "codepage" "international/codepage.el" (17851 10860))
 +;;;;;;  "codepage" "international/codepage.el" (17817 15477))
  ;;; Generated autoloads from international/codepage.el
  
  (autoload (quote cp-make-coding-systems-for-codepage) "codepage" "\
@@@ -4477,7 -4464,7 +4478,7 @@@ read/written by MS-DOS software, or fo
  ;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
  ;;;;;;  comint-redirect-send-command-to-process comint-redirect-send-command
  ;;;;;;  comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
 -;;;;;;  (17856 42110))
 +;;;;;;  (17817 15855))
  ;;; Generated autoloads from comint.el
  
  (defvar comint-output-filter-functions (quote (comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt)) "\
@@@ -4567,8 -4554,8 +4568,8 @@@ REGEXP-GROUP is the regular expression 
  
  ;;;***
  \f
 -;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17851
 -;;;;;;  10817))
 +;;;### (autoloads (compare-windows) "compare-w" "compare-w.el" (17817
 +;;;;;;  13974))
  ;;; Generated autoloads from compare-w.el
  
  (autoload (quote compare-windows) "compare-w" "\
@@@ -4605,7 -4592,7 +4606,7 @@@ on third call it again advances points 
  ;;;;;;  compilation-shell-minor-mode compilation-mode compilation-start
  ;;;;;;  compile compilation-disable-input compile-command compilation-search-path
  ;;;;;;  compilation-ask-about-save compilation-window-height compilation-mode-hook)
 -;;;;;;  "compile" "progmodes/compile.el" (17851 10867))
 +;;;;;;  "compile" "progmodes/compile.el" (17778 50475))
  ;;; Generated autoloads from progmodes/compile.el
  
  (defvar compilation-mode-hook nil "\
@@@ -4767,7 -4754,7 +4768,7 @@@ This is the value of `next-error-functi
  ;;;***
  \f
  ;;;### (autoloads (partial-completion-mode) "complete" "complete.el"
 -;;;;;;  (17851 10818))
 +;;;;;;  (17817 13974))
  ;;; Generated autoloads from complete.el
  
  (defvar partial-completion-mode nil "\
@@@ -4809,7 -4796,7 +4810,7 @@@ second TAB brings up the `*Completions*
  ;;;***
  \f
  ;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
 -;;;;;;  (17851 10818))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from completion.el
  
  (defvar dynamic-completion-mode nil "\
@@@ -4831,7 -4818,7 +4832,7 @@@ Enable dynamic word-completion
  ;;;### (autoloads (decompose-composite-char compose-last-chars compose-chars-after
  ;;;;;;  find-composition compose-chars decompose-string compose-string
  ;;;;;;  decompose-region compose-region encode-composition-rule)
 -;;;;;;  "composite" "composite.el" (17851 10818))
 +;;;;;;  "composite" "composite.el" (17817 15477))
  ;;; Generated autoloads from composite.el
  
  (defconst reference-point-alist (quote ((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5))) "\
@@@ -5053,7 -5040,7 +5054,7 @@@ Optional 3rd arg WITH-COMPOSITION-RULE 
  ;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
  ;;;;;;  conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
  ;;;;;;  conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17713 5992))
  ;;; Generated autoloads from textmodes/conf-mode.el
  
  (autoload (quote conf-mode) "conf-mode" "\
@@@ -5209,7 -5196,7 +5210,7 @@@ For details see `conf-mode'.  Example
  ;;;***
  \f
  ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
 -;;;;;;  "cookie1" "play/cookie1.el" (17851 10865))
 +;;;;;;  "cookie1" "play/cookie1.el" (17817 14124))
  ;;; Generated autoloads from play/cookie1.el
  
  (autoload (quote cookie) "cookie1" "\
@@@ -5241,7 -5228,7 +5242,7 @@@ Randomly permute the elements of VECTO
  ;;;***
  \f
  ;;;### (autoloads (copyright copyright-fix-years copyright-update)
 -;;;;;;  "copyright" "emacs-lisp/copyright.el" (17851 10852))
 +;;;;;;  "copyright" "emacs-lisp/copyright.el" (17390 26938))
  ;;; Generated autoloads from emacs-lisp/copyright.el
  
  (autoload (quote copyright-update) "copyright" "\
@@@ -5269,7 -5256,7 +5270,7 @@@ Insert a copyright by $ORGANIZATION not
  ;;;***
  \f
  ;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
 -;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (17851 10867))
 +;;;;;;  "cperl-mode" "progmodes/cperl-mode.el" (17817 13977))
  ;;; Generated autoloads from progmodes/cperl-mode.el
  
  (autoload (quote cperl-mode) "cperl-mode" "\
@@@ -5460,7 -5447,7 +5461,7 @@@ Run a `perldoc' on the word around poin
  ;;;***
  \f
  ;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17390 27408))
  ;;; Generated autoloads from progmodes/cpp.el
  
  (autoload (quote cpp-highlight-buffer) "cpp" "\
@@@ -5479,7 -5466,7 +5480,7 @@@ Edit display information for cpp condit
  ;;;***
  \f
  ;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emulation/crisp.el
  
  (defvar crisp-mode nil "\
@@@ -5503,7 -5490,7 +5504,7 @@@ With ARG, turn CRiSP mode on if ARG is 
  ;;;***
  \f
  ;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emacs-lisp/crm.el
  
  (autoload (quote completing-read-multiple) "crm" "\
@@@ -5539,7 -5526,7 +5540,7 @@@ INHERIT-INPUT-METHOD
  ;;;***
  \f
  ;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
 -;;;;;;  (17853 23392))
 +;;;;;;  (17817 13978))
  ;;; Generated autoloads from emulation/cua-base.el
  
  (defvar cua-mode nil "\
@@@ -5601,13 -5588,13 +5602,13 @@@ Enable CUA selection mode without the C
  ;;;;;;  custom-save-all custom-file customize-browse custom-buffer-create-other-window
  ;;;;;;  custom-buffer-create customize-apropos-groups customize-apropos-faces
  ;;;;;;  customize-apropos-options customize-apropos customize-saved
 -;;;;;;  customize-rogue customize-unsaved customize-face-other-window
 +;;;;;;  customize-rogue customize-customized customize-face-other-window
  ;;;;;;  customize-face customize-changed-options customize-option-other-window
  ;;;;;;  customize-option customize-group-other-window customize-group
  ;;;;;;  customize-mode customize customize-save-variable customize-set-variable
  ;;;;;;  customize-set-value custom-menu-sort-alphabetically custom-buffer-sort-alphabetically
  ;;;;;;  custom-browse-sort-alphabetically) "cus-edit" "cus-edit.el"
 -;;;;;;  (17851 10819))
 +;;;;;;  (17817 16161))
  ;;; Generated autoloads from cus-edit.el
  
  (defvar custom-browse-sort-alphabetically nil "\
@@@ -5911,7 -5898,7 +5912,7 @@@ The format is suitable for use with `ea
  ;;;***
  \f
  ;;;### (autoloads (custom-reset-faces custom-theme-reset-faces custom-set-faces
 -;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (17851 10821))
 +;;;;;;  custom-declare-face) "cus-face" "cus-face.el" (17390 26936))
  ;;; Generated autoloads from cus-face.el
  
  (autoload (quote custom-declare-face) "cus-face" "\
@@@ -5981,7 -5968,7 +5982,7 @@@ This means reset FACE to its value in F
  ;;;***
  \f
  ;;;### (autoloads (customize-create-theme) "cus-theme" "cus-theme.el"
 -;;;;;;  (17851 10821))
 +;;;;;;  (17713 5203))
  ;;; Generated autoloads from cus-theme.el
  
  (autoload (quote customize-create-theme) "cus-theme" "\
@@@ -5992,7 -5979,7 +5993,7 @@@ Create a custom theme
  ;;;***
  \f
  ;;;### (autoloads (cvs-status-mode) "cvs-status" "cvs-status.el"
 -;;;;;;  (17851 10822))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from cvs-status.el
  
  (autoload (quote cvs-status-mode) "cvs-status" "\
@@@ -6003,7 -5990,7 +6004,7 @@@ Mode used for cvs status output
  ;;;***
  \f
  ;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
 -;;;;;;  "cwarn" "progmodes/cwarn.el" (17860 50288))
 +;;;;;;  "cwarn" "progmodes/cwarn.el" (17390 27408))
  ;;; Generated autoloads from progmodes/cwarn.el
  
  (autoload (quote cwarn-mode) "cwarn" "\
@@@ -6046,7 -6033,7 +6047,7 @@@ in which `turn-on-cwarn-mode-if-enabled
  \f
  ;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
  ;;;;;;  cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
 -;;;;;;  (17851 10861))
 +;;;;;;  (17817 14143))
  ;;; Generated autoloads from language/cyril-util.el
  
  (autoload (quote cyrillic-encode-koi8-r-char) "cyril-util" "\
@@@ -6075,7 -6062,7 +6076,7 @@@ If the argument is nil, we return the d
  ;;;***
  \f
  ;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
 -;;;;;;  (17851 10822))
 +;;;;;;  (17390 26936))
  ;;; Generated autoloads from dabbrev.el
   (define-key esc-map "/" 'dabbrev-expand)
   (define-key esc-map [?\C-/] 'dabbrev-completion)
@@@ -6119,8 -6106,8 +6120,8 @@@ See also `dabbrev-abbrev-char-regexp' a
  
  ;;;***
  \f
 -;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17851
 -;;;;;;  10867))
 +;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (17390
 +;;;;;;  27408))
  ;;; Generated autoloads from progmodes/dcl-mode.el
  
  (autoload (quote dcl-mode) "dcl-mode" "\
@@@ -6247,7 -6234,7 +6248,7 @@@ There is some minimal font-lock suppor
  ;;;***
  \f
  ;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
 -;;;;;;  "emacs-lisp/debug.el" (17851 10852))
 +;;;;;;  "emacs-lisp/debug.el" (17390 26938))
  ;;; Generated autoloads from emacs-lisp/debug.el
  
  (setq debugger (quote debug))
@@@ -6291,7 -6278,7 +6292,7 @@@ To specify a nil argument interactively
  ;;;***
  \f
  ;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
 -;;;;;;  (17851 10865))
 +;;;;;;  (17817 14124))
  ;;; Generated autoloads from play/decipher.el
  
  (autoload (quote decipher) "decipher" "\
@@@ -6320,8 -6307,8 +6321,8 @@@ The most useful commands are
  ;;;***
  \f
  ;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
 -;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (17851
 -;;;;;;  10822))
 +;;;;;;  delimit-columns-customize) "delim-col" "delim-col.el" (17817
 +;;;;;;  13975))
  ;;; Generated autoloads from delim-col.el
  
  (autoload (quote delimit-columns-customize) "delim-col" "\
@@@ -6345,8 -6332,8 +6346,8 @@@ START and END delimits the corners of t
  
  ;;;***
  \f
 -;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17851
 -;;;;;;  10867))
 +;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (17611
 +;;;;;;  9414))
  ;;; Generated autoloads from progmodes/delphi.el
  
  (autoload (quote delphi-mode) "delphi" "\
@@@ -6396,8 -6383,8 +6397,8 @@@ no args, if that value is non-nil
  
  ;;;***
  \f
 -;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17851
 -;;;;;;  10822))
 +;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (17390
 +;;;;;;  26936))
  ;;; Generated autoloads from delsel.el
  
  (defalias (quote pending-delete-mode) (quote delete-selection-mode))
@@@ -6426,7 -6413,7 +6427,7 @@@ any selection
  ;;;***
  \f
  ;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
 -;;;;;;  "derived" "emacs-lisp/derived.el" (17851 10852))
 +;;;;;;  "derived" "emacs-lisp/derived.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/derived.el
  
  (autoload (quote define-derived-mode) "derived" "\
@@@ -6491,7 -6478,7 +6492,7 @@@ the first time the mode is used
  ;;;***
  \f
  ;;;### (autoloads (describe-char describe-text-properties) "descr-text"
 -;;;;;;  "descr-text.el" (17875 14312))
 +;;;;;;  "descr-text.el" (17817 13959))
  ;;; Generated autoloads from descr-text.el
  
  (autoload (quote describe-text-properties) "descr-text" "\
@@@ -6517,7 -6504,7 +6518,7 @@@ as well as widgets, buttons, overlays, 
  ;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
  ;;;;;;  desktop-load-default desktop-read desktop-remove desktop-save
  ;;;;;;  desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
 -;;;;;;  "desktop.el" (17851 10822))
 +;;;;;;  "desktop.el" (17713 5989))
  ;;; Generated autoloads from desktop.el
  
  (defvar desktop-save-mode nil "\
@@@ -6700,7 -6687,7 +6701,7 @@@ Revert to the last loaded desktop
  \f
  ;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
  ;;;;;;  gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
 -;;;;;;  "deuglify" "gnus/deuglify.el" (17851 10856))
 +;;;;;;  "deuglify" "gnus/deuglify.el" (17817 15855))
  ;;; Generated autoloads from gnus/deuglify.el
  
  (autoload (quote gnus-article-outlook-unwrap-lines) "deuglify" "\
@@@ -6733,7 -6720,7 +6734,7 @@@ Deuglify broken Outlook (Express) artic
  ;;;***
  \f
  ;;;### (autoloads (devanagari-post-read-conversion devanagari-compose-region)
 -;;;;;;  "devan-util" "language/devan-util.el" (17851 10861))
 +;;;;;;  "devan-util" "language/devan-util.el" (17817 15478))
  ;;; Generated autoloads from language/devan-util.el
  
  (defconst devanagari-consonant "[\x51ad5-\x51af9\x51b38-\x51b3f]")
@@@ -6751,7 -6738,7 +6752,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
 -;;;;;;  "calendar/diary-lib.el" (17851 10852))
 +;;;;;;  "calendar/diary-lib.el" (17518 54393))
  ;;; Generated autoloads from calendar/diary-lib.el
  
  (autoload (quote diary) "diary-lib" "\
@@@ -6797,18 -6784,18 +6798,18 @@@ Major mode for editing the diary file
  ;;;***
  \f
  ;;;### (autoloads (diff-backup diff diff-command diff-switches) "diff"
 -;;;;;;  "diff.el" (17851 10822))
 +;;;;;;  "diff.el" (17549 4607))
  ;;; Generated autoloads from diff.el
  
  (defvar diff-switches "-c" "\
  *A string or list of strings specifying switches to be passed to diff.")
  
 -(custom-autoload (quote diff-switches) "diff" t)
 +(custom-autoload (quote diff-switches) "diff")
  
  (defvar diff-command "diff" "\
  *The command to use to run diff.")
  
 -(custom-autoload (quote diff-command) "diff" t)
 +(custom-autoload (quote diff-command) "diff")
  
  (autoload (quote diff) "diff" "\
  Find and display the differences between OLD and NEW files.
@@@ -6831,7 -6818,7 +6832,7 @@@ With prefix arg, prompt for diff switch
  ;;;***
  \f
  ;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "diff-mode.el"
 -;;;;;;  (17867 21034))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from diff-mode.el
  
  (autoload (quote diff-mode) "diff-mode" "\
@@@ -6861,7 -6848,7 +6862,7 @@@ Minor mode for viewing/editing context 
  ;;;;;;  dired dired-copy-preserve-time dired-dwim-target dired-keep-marker-symlink
  ;;;;;;  dired-keep-marker-hardlink dired-keep-marker-copy dired-keep-marker-rename
  ;;;;;;  dired-trivial-filenames dired-ls-F-marks-symlinks dired-listing-switches)
 -;;;;;;  "dired" "dired.el" (17852 50694))
 +;;;;;;  "dired" "dired.el" (17817 16882))
  ;;; Generated autoloads from dired.el
  
  (defvar dired-listing-switches "-al" "\
@@@ -6871,7 -6858,7 +6872,7 @@@ may contain even `F', `b', `i' and `s'
  `dired-ls-F-marks-symlinks' concerning the `F' switch.
  On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
  some of the `ls' switches are not supported; see the doc string of
- `insert-directory' on `ls-lisp.el' for more details.")
+ `insert-directory' in `ls-lisp.el' for more details.")
  
  (custom-autoload (quote dired-listing-switches) "dired" t)
  
@@@ -7066,7 -7053,7 +7067,7 @@@ Keybindings
  ;;;;;;  dired-run-shell-command dired-do-shell-command dired-clean-directory
  ;;;;;;  dired-do-print dired-do-touch dired-do-chown dired-do-chgrp
  ;;;;;;  dired-do-chmod dired-compare-directories dired-backup-diff
 -;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (17859 27906))
 +;;;;;;  dired-diff) "dired-aux" "dired-aux.el" (17778 50473))
  ;;; Generated autoloads from dired-aux.el
  
  (autoload (quote dired-diff) "dired-aux" "\
@@@ -7306,6 -7293,8 +7307,8 @@@ with the same names that the files curr
  suggested for the target directory depends on the value of
  `dired-dwim-target', which see.
  
+ For relative symlinks, use \\[dired-do-relsymlink].
  \(fn &optional ARG)" t nil)
  
  (autoload (quote dired-do-hardlink) "dired-aux" "\
@@@ -7478,7 -7467,8 +7481,7 @@@ true then the type of the file linked t
  
  ;;;***
  \f
 -;;;### (autoloads (dired-do-relsymlink dired-jump) "dired-x" "dired-x.el"
 -;;;;;;  (17859 56528))
 +;;;### (autoloads (dired-jump) "dired-x" "dired-x.el" (17713 5989))
  ;;; Generated autoloads from dired-x.el
  
  (autoload (quote dired-jump) "dired-x" "\
@@@ -7490,9 -7480,24 +7493,24 @@@ buffer and try again
  
  \(fn &optional OTHER-WINDOW)" t nil)
  
+ (autoload (quote dired-do-relsymlink) "dired-x" "\
+ Relative symlink all marked (or next ARG) files into a directory.
+ Otherwise make a relative symbolic link to the current file.
+ This creates relative symbolic links like
+     foo -> ../bar/foo
+ not absolute ones like
+     foo -> /ugly/file/name/that/may/change/any/day/bar/foo
+ For absolute symlinks, use \\[dired-do-symlink].
+ \(fn &optional ARG)" t nil)
  ;;;***
  \f
 -;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17851 10823))
 +;;;### (autoloads (dirtrack) "dirtrack" "dirtrack.el" (17817 13975))
  ;;; Generated autoloads from dirtrack.el
  
  (autoload (quote dirtrack) "dirtrack" "\
@@@ -7511,8 -7516,8 +7529,8 @@@ You can enable directory tracking by ad
  
  ;;;***
  \f
 -;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17851
 -;;;;;;  10852))
 +;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (17390
 +;;;;;;  26938))
  ;;; Generated autoloads from emacs-lisp/disass.el
  
  (autoload (quote disassemble) "disass" "\
@@@ -7526,11 -7531,12 +7544,11 @@@ redefine OBJECT if it is a symbol
  
  ;;;***
  \f
 -;;;### (autoloads (standard-display-european glyph-face glyph-char
 -;;;;;;  make-glyph-code create-glyph standard-display-underline standard-display-graphic
 -;;;;;;  standard-display-g1 standard-display-ascii standard-display-default
 -;;;;;;  standard-display-8bit describe-current-display-table describe-display-table
 -;;;;;;  set-display-table-slot display-table-slot make-display-table)
 -;;;;;;  "disp-table" "disp-table.el" (17875 14312))
 +;;;### (autoloads (standard-display-european create-glyph standard-display-underline
 +;;;;;;  standard-display-graphic standard-display-g1 standard-display-ascii
 +;;;;;;  standard-display-default standard-display-8bit describe-current-display-table
 +;;;;;;  describe-display-table set-display-table-slot display-table-slot
 +;;;;;;  make-display-table) "disp-table" "disp-table.el" (17817 13975))
  ;;; Generated autoloads from disp-table.el
  
  (autoload (quote make-display-table) "disp-table" "\
@@@ -7603,6 -7609,21 +7621,21 @@@ Allocate a glyph code to display by sen
  
  \(fn STRING)" nil nil)
  
+ (autoload (quote make-glyph-code) "disp-table" "\
+ Return a glyph code representing char CHAR with face FACE.
+ \(fn CHAR &optional FACE)" nil nil)
+ (autoload (quote glyph-char) "disp-table" "\
+ Return the character of glyph code GLYPH.
+ \(fn GLYPH)" nil nil)
+ (autoload (quote glyph-face) "disp-table" "\
+ Return the face of glyph code GLYPH, or nil if glyph has default face.
+ \(fn GLYPH)" nil nil)
  (autoload (quote standard-display-european) "disp-table" "\
  Semi-obsolete way to toggle display of ISO 8859 European characters.
  
@@@ -7631,7 -7652,7 +7664,7 @@@ for users who call this function in `.e
  ;;;***
  \f
  ;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
 -;;;;;;  (17851 10865))
 +;;;;;;  (17817 14124))
  ;;; Generated autoloads from play/dissociate.el
  
  (autoload (quote dissociated-press) "dissociate" "\
@@@ -7647,7 -7668,7 +7680,7 @@@ Default is 2
  
  ;;;***
  \f
 -;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17851 10823))
 +;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (17713 5989))
  ;;; Generated autoloads from dnd.el
  
  (defvar dnd-protocol-alist (quote (("^file:///" . dnd-open-local-file) ("^file://" . dnd-open-file) ("^file:" . dnd-open-local-file) ("^\\(https?\\|ftp\\|file\\|nfs\\)://" . dnd-open-file))) "\
@@@ -7668,7 -7689,7 +7701,7 @@@ if some action was made, or nil if the 
  ;;;***
  \f
  ;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
 -;;;;;;  "textmodes/dns-mode.el" (17851 10872))
 +;;;;;;  "textmodes/dns-mode.el" (17713 5203))
  ;;; Generated autoloads from textmodes/dns-mode.el
  
  (autoload (quote dns-mode) "dns-mode" "\
@@@ -7692,7 -7713,7 +7725,7 @@@ Locate SOA record and increment the ser
  
  ;;;***
  \f
 -;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17851 10865))
 +;;;### (autoloads (doctor) "doctor" "play/doctor.el" (17817 14124))
  ;;; Generated autoloads from play/doctor.el
  
  (autoload (quote doctor) "doctor" "\
@@@ -7703,7 -7724,7 +7736,7 @@@ Switch to *doctor* buffer and start giv
  ;;;***
  \f
  ;;;### (autoloads (double-mode double-mode) "double" "double.el"
 -;;;;;;  (17851 10823))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from double.el
  
  (defvar double-mode nil "\
@@@ -7724,7 -7745,7 +7757,7 @@@ when pressed twice.  See variable `doub
  
  ;;;***
  \f
 -;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17851 10865))
 +;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (17778 50475))
  ;;; Generated autoloads from play/dunnet.el
  
  (autoload (quote dunnet) "dunnet" "\
@@@ -7735,7 -7756,7 +7768,7 @@@ Switch to *dungeon* buffer and start ga
  ;;;***
  \f
  ;;;### (autoloads (gnus-earcon-display) "earcon" "gnus/earcon.el"
 -;;;;;;  (17851 10856))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/earcon.el
  
  (autoload (quote gnus-earcon-display) "earcon" "\
@@@ -7746,8 -7767,8 +7779,8 @@@ Play sounds in message buffers
  ;;;***
  \f
  ;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
 -;;;;;;  define-globalized-minor-mode define-minor-mode) "easy-mmode"
 -;;;;;;  "emacs-lisp/easy-mmode.el" (17860 50311))
 +;;;;;;  define-global-minor-mode define-minor-mode) "easy-mmode"
 +;;;;;;  "emacs-lisp/easy-mmode.el" (17817 16945))
  ;;; Generated autoloads from emacs-lisp/easy-mmode.el
  
  (defalias (quote easy-mmode-define-minor-mode) (quote define-minor-mode))
@@@ -7792,9 -7813,11 +7825,11 @@@ For example, you could writ
  
  \(fn MODE DOC &optional INIT-VALUE LIGHTER KEYMAP &rest BODY)" nil (quote macro))
  
- (defalias (quote easy-mmode-define-global-mode) (quote define-global-minor-mode))
+ (defalias (quote easy-mmode-define-global-mode) (quote define-globalized-minor-mode))
+ (defalias (quote define-global-minor-mode) (quote define-globalized-minor-mode))
  
- (autoload (quote define-global-minor-mode) "easy-mmode" "\
+ (autoload (quote define-globalized-minor-mode) "easy-mmode" "\
  Make a global mode GLOBAL-MODE corresponding to buffer-local minor MODE.
  TURN-ON is a function that will be called with no args in every buffer
    and that should try to turn MODE on if applicable for that buffer.
@@@ -7804,7 -7827,7 +7839,7 @@@ KEYS is a list of CL-style keyword argu
    which see.  In particular, :group specifies the custom group.
    The most useful keywords are those that are passed on to the
    `defcustom'.  It normally makes no sense to pass the :lighter
-   or :keymap keywords to `define-global-minor-mode', since these
+   or :keymap keywords to `define-globalized-minor-mode', since these
    are usually passed to the buffer-local version of the minor mode.
  
  If MODE's set-up depends on the major mode in effect when it was
@@@ -7839,8 -7862,8 +7874,8 @@@ CSS contains a list of syntax specifica
  ;;;***
  \f
  ;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
 -;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17851
 -;;;;;;  10852))
 +;;;;;;  easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (17817
 +;;;;;;  16161))
  ;;; Generated autoloads from emacs-lisp/easymenu.el
  
  (put (quote easy-menu-define) (quote lisp-indent-function) (quote defun))
@@@ -7971,10 -7994,6 +8006,10 @@@ If MAP is specified, it should normall
  menu-bar keymap.  It can also be a symbol, which has earlier been used as the
  first argument in a call to `easy-menu-define', or the value of such a symbol.
  
 +If MAP is specified, it should normally be a keymap; nil stands for the local
 +menu-bar keymap.  It can also be a symbol, which has earlier been used as the
 +first argument in a call to `easy-menu-define', or the value of such a symbol.
 +
  If the menu located by PATH has no submenu named NAME, add one.
  If the optional argument BEFORE is present, add it just before
  the submenu named BEFORE, otherwise add it at the end of the menu.
@@@ -7993,7 -8012,7 +8028,7 @@@ To implement dynamic menus, either cal
  ;;;;;;  ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer ebnf-spool-file
  ;;;;;;  ebnf-spool-directory ebnf-print-region ebnf-print-buffer
  ;;;;;;  ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
 -;;;;;;  "progmodes/ebnf2ps.el" (17859 56529))
 +;;;;;;  "progmodes/ebnf2ps.el" (17817 13971))
  ;;; Generated autoloads from progmodes/ebnf2ps.el
  
  (autoload (quote ebnf-customize) "ebnf2ps" "\
@@@ -8105,9 -8124,9 +8140,9 @@@ See also `ebnf-eps-buffer'
  \(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
  
  (autoload (quote ebnf-eps-buffer) "ebnf2ps" "\
- Generate a PostScript syntactic chart image of the buffer in a EPS file.
+ Generate a PostScript syntactic chart image of the buffer in an EPS file.
  
Indeed, for each production is generated a EPS file.
Generate an EPS file for each production in the buffer.
  The EPS file name has the following form:
  
     <PREFIX><PRODUCTION>.eps
             The default value is \"ebnf--\".
  
  <PRODUCTION> is the production name.
-            The production name is mapped to form a valid file name.
-            For example, the production name \"A/B + C\" is mapped to
-            \"A_B_+_C\" and the EPS file name used is \"ebnf--A_B_+_C.eps\".
+            Some characters in the production file name are replaced to
+            produce a valid file name.  For example, the production name
+            \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
+            file name used in this case will be \"ebnf--A_B_+_C.eps\".
  
- WARNING: It's *NOT* asked any confirmation to override an existing file.
+ WARNING: This function does *NOT* ask any confirmation to override existing
+          files.
  
  \(fn)" t nil)
  
  (autoload (quote ebnf-eps-region) "ebnf2ps" "\
- Generate a PostScript syntactic chart image of the region in a EPS file.
+ Generate a PostScript syntactic chart image of the region in an EPS file.
  
Indeed, for each production is generated a EPS file.
Generate an EPS file for each production in the region.
  The EPS file name has the following form:
  
     <PREFIX><PRODUCTION>.eps
             The default value is \"ebnf--\".
  
  <PRODUCTION> is the production name.
-            The production name is mapped to form a valid file name.
-            For example, the production name \"A/B + C\" is mapped to
-            \"A_B_+_C\" and the EPS file name used is \"ebnf--A_B_+_C.eps\".
+            Some characters in the production file name are replaced to
+            produce a valid file name.  For example, the production name
+            \"A/B + C\" is modified to produce \"A_B_+_C\", and the EPS
+            file name used in this case will be \"ebnf--A_B_+_C.eps\".
  
- WARNING: It's *NOT* asked any confirmation to override an existing file.
+ WARNING: This function does *NOT* ask any confirmation to override existing
+          files.
  
  \(fn FROM TO)" t nil)
  
  (defalias (quote ebnf-despool) (quote ps-despool))
  
  (autoload (quote ebnf-syntax-directory) "ebnf2ps" "\
- Does a syntactic analysis of the files in DIRECTORY.
+ Do a syntactic analysis of the files in DIRECTORY.
  
- If DIRECTORY is nil, it's used `default-directory'.
+ If DIRECTORY is nil, use `default-directory'.
  
- The files in DIRECTORY that matches `ebnf-file-suffix-regexp' (which see) are
- processed.
+ Only the files in DIRECTORY that match `ebnf-file-suffix-regexp' (which see)
are processed.
  
  See also `ebnf-syntax-buffer'.
  
  \(fn &optional DIRECTORY)" t nil)
  
  (autoload (quote ebnf-syntax-file) "ebnf2ps" "\
- Does a syntactic analysis of the FILE.
+ Do a syntactic analysis of the named FILE.
  
  If optional arg DO-NOT-KILL-BUFFER-WHEN-DONE is non-nil, the buffer isn't
  killed after syntax checking.
@@@ -8169,12 -8192,12 +8208,12 @@@ See also `ebnf-syntax-buffer'
  \(fn FILE &optional DO-NOT-KILL-BUFFER-WHEN-DONE)" t nil)
  
  (autoload (quote ebnf-syntax-buffer) "ebnf2ps" "\
- Does a syntactic analysis of the current buffer.
+ Do a syntactic analysis of the current buffer.
  
  \(fn)" t nil)
  
  (autoload (quote ebnf-syntax-region) "ebnf2ps" "\
- Does a syntactic analysis of a region.
+ Do a syntactic analysis of region.
  
  \(fn FROM TO)" t nil)
  
@@@ -8207,7 -8230,7 +8246,7 @@@ See `ebnf-style-database' documentation
  (autoload (quote ebnf-apply-style) "ebnf2ps" "\
  Set STYLE as the current style.
  
It returns the old style symbol.
Returns the old style symbol.
  
  See `ebnf-style-database' documentation.
  
  (autoload (quote ebnf-reset-style) "ebnf2ps" "\
  Reset current style.
  
It returns the old style symbol.
Returns the old style symbol.
  
  See `ebnf-style-database' documentation.
  
  \(fn &optional STYLE)" t nil)
  
  (autoload (quote ebnf-push-style) "ebnf2ps" "\
- Push the current style and set STYLE as the current style.
+ Push the current style onto a stack and set STYLE as the current style.
+ Returns the old style symbol.
  
It returns the old style symbol.
See also `ebnf-pop-style'.
  
  See `ebnf-style-database' documentation.
  
  \(fn &optional STYLE)" t nil)
  
  (autoload (quote ebnf-pop-style) "ebnf2ps" "\
- Pop a style and set it as the current style.
+ Pop a style from the stack of pushed styles and set it as the current style.
+ Returns the old style symbol.
  
It returns the old style symbol.
See also `ebnf-push-style'.
  
  See `ebnf-style-database' documentation.
  
  ;;;;;;  ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
  ;;;;;;  ebrowse-tags-view-definition ebrowse-tags-find-declaration
  ;;;;;;  ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
 -;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17838
 -;;;;;;  58221))
 +;;;;;;  ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (17591
 +;;;;;;  9719))
  ;;; Generated autoloads from progmodes/ebrowse.el
  
  (autoload (quote ebrowse-tree-mode) "ebrowse" "\
@@@ -8404,7 -8431,7 +8447,7 @@@ Display statistics for a class tree
  ;;;***
  \f
  ;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
 -;;;;;;  (17851 10823))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from ebuff-menu.el
  
  (autoload (quote electric-buffer-list) "ebuff-menu" "\
@@@ -8429,7 -8456,7 +8472,7 @@@ Run hooks in `electric-buffer-menu-mode
  ;;;***
  \f
  ;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
 -;;;;;;  "echistory.el" (17851 10823))
 +;;;;;;  "echistory.el" (17817 13975))
  ;;; Generated autoloads from echistory.el
  
  (autoload (quote Electric-command-history-redo-expression) "echistory" "\
@@@ -8442,7 -8469,7 +8485,7 @@@ With prefix arg NOCONFIRM, execute curr
  \f
  ;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
  ;;;;;;  edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
 -;;;;;;  "emacs-lisp/edebug.el" (17851 10852))
 +;;;;;;  "emacs-lisp/edebug.el" (17713 5203))
  ;;; Generated autoloads from emacs-lisp/edebug.el
  
  (defvar edebug-all-defs nil "\
@@@ -8515,7 -8542,7 +8558,7 @@@ Toggle edebugging of all forms
  ;;;;;;  ediff-merge-directory-revisions ediff-merge-directories-with-ancestor
  ;;;;;;  ediff-merge-directories ediff-directories3 ediff-directory-revisions
  ;;;;;;  ediff-directories ediff-buffers3 ediff-buffers ediff-backup
 -;;;;;;  ediff-files3 ediff-files) "ediff" "ediff.el" (17851 39450))
 +;;;;;;  ediff-files3 ediff-files) "ediff" "ediff.el" (17778 50473))
  ;;; Generated autoloads from ediff.el
  
  (autoload (quote ediff-files) "ediff" "\
@@@ -8747,7 -8774,7 +8790,7 @@@ With optional NODE, goes to that node
  ;;;***
  \f
  ;;;### (autoloads (ediff-customize) "ediff-help" "ediff-help.el"
 -;;;;;;  (17851 10823))
 +;;;;;;  (17401 60342))
  ;;; Generated autoloads from ediff-help.el
  
  (autoload (quote ediff-customize) "ediff-help" "\
@@@ -8757,7 -8784,7 +8800,7 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17851 10823))
 +;;;### (autoloads nil "ediff-hook" "ediff-hook.el" (17401 60342))
  ;;; Generated autoloads from ediff-hook.el
  
  (defvar ediff-window-setup-function)
  ;;;***
  \f
  ;;;### (autoloads (ediff-show-registry) "ediff-mult" "ediff-mult.el"
 -;;;;;;  (17851 10823))
 +;;;;;;  (17778 49123))
  ;;; Generated autoloads from ediff-mult.el
  
  (autoload (quote ediff-show-registry) "ediff-mult" "\
@@@ -8783,7 -8810,7 +8826,7 @@@ Display Ediff's registry
  ;;;***
  \f
  ;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
 -;;;;;;  "ediff-util" "ediff-util.el" (17851 39450))
 +;;;;;;  "ediff-util" "ediff-util.el" (17713 5989))
  ;;; Generated autoloads from ediff-util.el
  
  (autoload (quote ediff-toggle-multiframe) "ediff-util" "\
@@@ -8804,7 -8831,7 +8847,7 @@@ To change the default, set the variabl
  \f
  ;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
  ;;;;;;  edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
 -;;;;;;  (17851 10823))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from edmacro.el
  
  (defvar edmacro-eight-bits nil "\
@@@ -8857,7 -8884,7 +8900,7 @@@ or nil, use a compact 80-column format
  ;;;***
  \f
  ;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
 -;;;;;;  "emulation/edt.el" (17851 10853))
 +;;;;;;  "emulation/edt.el" (17817 15738))
  ;;; Generated autoloads from emulation/edt.el
  
  (autoload (quote edt-set-scroll-margins) "edt" "\
@@@ -8875,12 -8902,11 +8918,12 @@@ Turn on EDT Emulation
  ;;;***
  \f
  ;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
 -;;;;;;  (17873 60335))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from ehelp.el
  
  (autoload (quote with-electric-help) "ehelp" "\
  Pop up an \"electric\" help buffer.
 +The arguments are THUNK &optional BUFFER NOERASE MINHEIGHT.
  THUNK is a function of no arguments which is called to initialize the
  contents of BUFFER.  BUFFER defaults to `*Help*'.  BUFFER will be
  erased before THUNK is called unless NOERASE is non-nil.  THUNK will
@@@ -8892,7 -8918,7 +8935,7 @@@ shrink the window to fit.  If THUNK ret
  
  After THUNK has been called, this function \"electrically\" pops up a window
  in which BUFFER is displayed and allows the user to scroll through that buffer
- in electric-help-mode. The window's height will be at least MINHEIGHT if
+ in `electric-help-mode'. The window's height will be at least MINHEIGHT if
  this value is non-nil.
  
  If THUNK returns nil, we display BUFFER starting at the top, and
@@@ -8901,7 -8927,7 +8944,7 @@@ If THUNK returns non-nil, we don't do t
  
  When the user exits (with `electric-help-exit', or otherwise), the help
  buffer's window disappears (i.e., we use `save-window-excursion'), and
- BUFFER is put into `default-major-mode' (or `fundamental-mode') when we exit.
+ BUFFER is put into `default-major-mode' (or `fundamental-mode').
  
  \(fn THUNK &optional BUFFER NOERASE MINHEIGHT)" nil nil)
  
@@@ -8913,7 -8939,7 +8956,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
 -;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17851 10853))
 +;;;;;;  "eldoc" "emacs-lisp/eldoc.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/eldoc.el
  
  (defvar eldoc-minor-mode-string " ElDoc" "\
@@@ -8951,8 -8977,8 +8994,8 @@@ Emacs Lisp mode) that support Eldoc."
  
  ;;;***
  \f
 -;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17851
 -;;;;;;  10826))
 +;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (17817
 +;;;;;;  13975))
  ;;; Generated autoloads from elide-head.el
  
  (autoload (quote elide-head) "elide-head" "\
@@@ -8968,7 -8994,7 +9011,7 @@@ This is suitable as an entry on `find-f
  ;;;***
  \f
  ;;;### (autoloads (elint-initialize) "elint" "emacs-lisp/elint.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emacs-lisp/elint.el
  
  (autoload (quote elint-initialize) "elint" "\
@@@ -8979,8 -9005,8 +9022,8 @@@ Initialize elint
  ;;;***
  \f
  ;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
 -;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (17851
 -;;;;;;  10853))
 +;;;;;;  elp-instrument-function) "elp" "emacs-lisp/elp.el" (17390
 +;;;;;;  26938))
  ;;; Generated autoloads from emacs-lisp/elp.el
  
  (autoload (quote elp-instrument-function) "elp" "\
@@@ -9014,7 -9040,7 +9057,7 @@@ displayed
  ;;;***
  \f
  ;;;### (autoloads (report-emacs-bug) "emacsbug" "mail/emacsbug.el"
 -;;;;;;  (17851 10861))
 +;;;;;;  (17778 50475))
  ;;; Generated autoloads from mail/emacsbug.el
  
  (autoload (quote report-emacs-bug) "emacsbug" "\
@@@ -9029,7 -9055,7 +9072,7 @@@ Prompts for bug subject.  Leaves you i
  ;;;;;;  emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
  ;;;;;;  emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
  ;;;;;;  emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
 -;;;;;;  "emerge.el" (17504 41540))
 +;;;;;;  "emerge.el" (17279 27122))
  ;;; Generated autoloads from emerge.el
  
  (defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
@@@ -9106,21 -9132,37 +9149,21 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (encoded-kbd-mode) "encoded-kb" "international/encoded-kb.el"
 -;;;;;;  (17851 10860))
 +;;;### (autoloads (encoded-kbd-setup-display) "encoded-kb" "international/encoded-kb.el"
 +;;;;;;  (17817 15477))
  ;;; Generated autoloads from international/encoded-kb.el
  
 -(defvar encoded-kbd-mode nil "\
 -Non-nil if Encoded-Kbd mode is enabled.
 -See the command `encoded-kbd-mode' for a description of this minor-mode.
 -Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `encoded-kbd-mode'.")
 -
 -(custom-autoload (quote encoded-kbd-mode) "encoded-kb" nil)
 -
 -(autoload (quote encoded-kbd-mode) "encoded-kb" "\
 -Toggle Encoded-kbd minor mode.
 -With arg, turn Encoded-kbd mode on if and only if arg is positive.
 +(autoload (quote encoded-kbd-setup-display) "encoded-kb" "\
 +Set up a `key-translation-map' for `keyboard-coding-system' on DISPLAY.
  
 -You should not turn this mode on manually, instead use the command
 -\\[set-keyboard-coding-system] which turns on or off this mode
 -automatically.
 +DISPLAY may be a display id, a frame, or nil for the selected frame's display.
  
 -In Encoded-kbd mode, a text sent from keyboard is accepted
 -as a multilingual text encoded in a coding system set by
 -\\[set-keyboard-coding-system].
 -
 -\(fn &optional ARG)" t nil)
 +\(fn DISPLAY)" nil nil)
  
  ;;;***
  \f
  ;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
 -;;;;;;  "enriched" "textmodes/enriched.el" (17851 10872))
 +;;;;;;  "enriched" "textmodes/enriched.el" (17817 14127))
  ;;; Generated autoloads from textmodes/enriched.el
  
  (autoload (quote enriched-mode) "enriched" "\
@@@ -9151,7 -9193,7 +9194,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (erc-handle-irc-url erc erc-select-read-args) "erc"
 -;;;;;;  "erc/erc.el" (17851 10855))
 +;;;;;;  "erc/erc.el" (17817 15473))
  ;;; Generated autoloads from erc/erc.el
  
  (autoload (quote erc-select-read-args) "erc" "\
@@@ -9187,27 -9229,33 +9230,27 @@@ Otherwise, connect to HOST:PORT as USE
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17851
 -;;;;;;  10855))
 +;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (17778
 +;;;;;;  50473))
  ;;; Generated autoloads from erc/erc-autoaway.el
   (autoload 'erc-autoaway-mode "erc-autoaway")
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17851 10855))
 +;;;### (autoloads nil "erc-button" "erc/erc-button.el" (17454 30949))
  ;;; Generated autoloads from erc/erc-button.el
   (autoload 'erc-button-mode "erc-button" nil t)
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (17843 27870))
 -;;; Generated autoloads from erc/erc-capab.el
 - (autoload 'erc-capab-identify-mode "erc-capab" nil t)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17851 10855))
 +;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-compat.el
   (autoload 'erc-define-minor-mode "erc-compat")
  
  ;;;***
  \f
  ;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
 -;;;;;;  "erc-dcc" "erc/erc-dcc.el" (17851 10855))
 +;;;;;;  "erc-dcc" "erc/erc-dcc.el" (17817 13983))
  ;;; Generated autoloads from erc/erc-dcc.el
  
  (autoload (quote erc-cmd-DCC) "erc-dcc" "\
@@@ -9239,7 -9287,7 +9282,7 @@@ that subcommand
  ;;;;;;  erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
  ;;;;;;  erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
  ;;;;;;  erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17817 14136))
  ;;; Generated autoloads from erc/erc-ezbounce.el
  
  (autoload (quote erc-cmd-ezb) "erc-ezbounce" "\
@@@ -9301,8 -9349,8 +9344,8 @@@ Add EZBouncer convenience functions to 
  
  ;;;***
  \f
 -;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17851
 -;;;;;;  10855))
 +;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (17778
 +;;;;;;  50473))
  ;;; Generated autoloads from erc/erc-fill.el
   (autoload 'erc-fill-mode "erc-fill" nil t)
  
@@@ -9314,15 -9362,15 +9357,15 @@@ You can put this on `erc-insert-modify-
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17851
 -;;;;;;  10855))
 +;;;### (autoloads nil "erc-hecomplete" "erc/erc-hecomplete.el" (17396
 +;;;;;;  42158))
  ;;; Generated autoloads from erc/erc-hecomplete.el
   (autoload 'erc-hecomplete-mode "erc-hecomplete" nil t)
  
  ;;;***
  \f
  ;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
 -;;;;;;  "erc/erc-identd.el" (17851 10855))
 +;;;;;;  "erc/erc-identd.el" (17591 9873))
  ;;; Generated autoloads from erc/erc-identd.el
   (autoload 'erc-identd-mode "erc-identd")
  
@@@ -9344,7 -9392,7 +9387,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17591 9873))
  ;;; Generated autoloads from erc/erc-imenu.el
  
  (autoload (quote erc-create-imenu-index) "erc-imenu" "\
@@@ -9354,14 -9402,14 +9397,14 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17851 10855))
 +;;;### (autoloads nil "erc-join" "erc/erc-join.el" (17469 12056))
  ;;; Generated autoloads from erc/erc-join.el
   (autoload 'erc-autojoin-mode "erc-join" nil t)
  
  ;;;***
  \f
  ;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
 -;;;;;;  "erc/erc-log.el" (17851 10855))
 +;;;;;;  "erc/erc-log.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-log.el
   (autoload 'erc-log-mode "erc-log" nil t)
  
@@@ -9393,7 -9441,7 +9436,7 @@@ You can save every individual message b
  ;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
  ;;;;;;  erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
  ;;;;;;  erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17713 5203))
  ;;; Generated autoloads from erc/erc-match.el
   (autoload 'erc-match-mode "erc-match")
  
@@@ -9437,10 -9485,16 +9480,10 @@@ Delete dangerous-host interactively to 
  
  \(fn)" t nil)
  
 -;;;***
 -\f
 -;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (17851 10855))
 -;;; Generated autoloads from erc/erc-menu.el
 - (autoload 'erc-menu-mode "erc-menu" nil t)
 -
  ;;;***
  \f
  ;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17469 12056))
  ;;; Generated autoloads from erc/erc-netsplit.el
   (autoload 'erc-netsplit-mode "erc-netsplit")
  
@@@ -9452,7 -9506,7 +9495,7 @@@ Show who's gone
  ;;;***
  \f
  ;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
 -;;;;;;  "erc/erc-networks.el" (17851 10855))
 +;;;;;;  "erc/erc-networks.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-networks.el
  
  (autoload (quote erc-determine-network) "erc-networks" "\
@@@ -9470,7 -9524,7 +9513,7 @@@ Interactively select a server to connec
  ;;;***
  \f
  ;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
 -;;;;;;  "erc/erc-notify.el" (17851 10855))
 +;;;;;;  "erc/erc-notify.el" (17396 42158))
  ;;; Generated autoloads from erc/erc-notify.el
   (autoload 'erc-notify-mode "erc-notify" nil t)
  
@@@ -9488,33 -9542,33 +9531,33 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17851 10855))
 +;;;### (autoloads nil "erc-page" "erc/erc-page.el" (17396 42158))
  ;;; Generated autoloads from erc/erc-page.el
   (autoload 'erc-page-mode "erc-page")
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17851
 -;;;;;;  10855))
 +;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (17591
 +;;;;;;  9873))
  ;;; Generated autoloads from erc/erc-pcomplete.el
   (autoload 'erc-completion-mode "erc-pcomplete" nil t)
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17851 10855))
 +;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-replace.el
   (autoload 'erc-replace-mode "erc-replace")
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17851 10855))
 +;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (17396 42158))
  ;;; Generated autoloads from erc/erc-ring.el
   (autoload 'erc-ring-mode "erc-ring" nil t)
  
  ;;;***
  \f
  ;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
 -;;;;;;  "erc-services" "erc/erc-services.el" (17851 10855))
 +;;;;;;  "erc-services" "erc/erc-services.el" (17396 42158))
  ;;; Generated autoloads from erc/erc-services.el
   (autoload 'erc-services-mode "erc-services" nil t)
  
@@@ -9531,14 -9585,14 +9574,14 @@@ When called interactively, read the pas
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17851 10855))
 +;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-sound.el
   (autoload 'erc-sound-mode "erc-sound")
  
  ;;;***
  \f
  ;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17396 42158))
  ;;; Generated autoloads from erc/erc-speedbar.el
  
  (autoload (quote erc-speedbar-browser) "erc-speedbar" "\
@@@ -9549,20 -9603,20 +9592,20 @@@ This will add a speedbar major display 
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17851
 -;;;;;;  10855))
 +;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (17713
 +;;;;;;  2485))
  ;;; Generated autoloads from erc/erc-spelling.el
   (autoload 'erc-spelling-mode "erc-spelling" nil t)
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17851 10855))
 +;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (17817 13983))
  ;;; Generated autoloads from erc/erc-stamp.el
   (autoload 'erc-timestamp-mode "erc-stamp" nil t)
  
  ;;;***
  \f
 -;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17851 10855))
 +;;;### (autoloads nil "erc-track" "erc/erc-track.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-track.el
   (autoload 'erc-track-mode "erc-track" nil t)
   (autoload 'erc-track-when-inactive-mode "erc-track" nil t)
  ;;;***
  \f
  ;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
 -;;;;;;  "erc-truncate" "erc/erc-truncate.el" (17851 10855))
 +;;;;;;  "erc-truncate" "erc/erc-truncate.el" (17778 50473))
  ;;; Generated autoloads from erc/erc-truncate.el
   (autoload 'erc-truncate-mode "erc-truncate" nil t)
  
@@@ -9590,7 -9644,7 +9633,7 @@@ Meant to be used in hooks, like `erc-in
  ;;;***
  \f
  ;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
 -;;;;;;  (17851 10855))
 +;;;;;;  (17396 42158))
  ;;; Generated autoloads from erc/erc-xdcc.el
  
  (autoload (quote erc-xdcc-add-file) "erc-xdcc" "\
@@@ -9600,8 -9654,8 +9643,8 @@@ Add a file to `erc-xdcc-files'
  
  ;;;***
  \f
 -;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17851
 -;;;;;;  10856))
 +;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (17390
 +;;;;;;  26939))
  ;;; Generated autoloads from eshell/esh-mode.el
  
  (autoload (quote eshell-mode) "esh-mode" "\
@@@ -9613,8 -9667,8 +9656,8 @@@ Emacs shell interactive mode
  
  ;;;***
  \f
 -;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17851
 -;;;;;;  10856))
 +;;;### (autoloads (eshell-test) "esh-test" "eshell/esh-test.el" (17817
 +;;;;;;  14118))
  ;;; Generated autoloads from eshell/esh-test.el
  
  (autoload (quote eshell-test) "esh-test" "\
@@@ -9625,7 -9679,7 +9668,7 @@@ Test Eshell to verify that it works as 
  ;;;***
  \f
  ;;;### (autoloads (eshell-report-bug eshell-command-result eshell-command
 -;;;;;;  eshell) "eshell" "eshell/eshell.el" (17851 10856))
 +;;;;;;  eshell) "eshell" "eshell/eshell.el" (17817 14118))
  ;;; Generated autoloads from eshell/eshell.el
  
  (autoload (quote eshell) "eshell" "\
@@@ -9671,7 -9725,7 +9714,7 @@@ Please include any configuration detail
  ;;;;;;  visit-tags-table tags-table-mode find-tag-default-function
  ;;;;;;  find-tag-hook tags-add-tables tags-compression-info-list
  ;;;;;;  tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17411 11766))
  ;;; Generated autoloads from progmodes/etags.el
  
  (defvar tags-file-name nil "\
@@@ -9973,7 -10027,7 +10016,7 @@@ for \\[find-tag] (which see)
  ;;;;;;  ethio-fidel-to-sera-buffer ethio-fidel-to-sera-region ethio-sera-to-fidel-marker
  ;;;;;;  ethio-sera-to-fidel-mail ethio-sera-to-fidel-mail-or-marker
  ;;;;;;  ethio-sera-to-fidel-buffer ethio-sera-to-fidel-region setup-ethiopic-environment-internal)
 -;;;;;;  "ethio-util" "language/ethio-util.el" (17851 10861))
 +;;;;;;  "ethio-util" "language/ethio-util.el" (17817 15478))
  ;;; Generated autoloads from language/ethio-util.el
  
  (autoload (quote setup-ethiopic-environment-internal) "ethio-util" "\
@@@ -10168,7 -10222,7 +10211,7 @@@ Transcribe Ethiopic characters in ASCI
  \f
  ;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
  ;;;;;;  eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
 -;;;;;;  (17851 10863))
 +;;;;;;  (17817 14121))
  ;;; Generated autoloads from net/eudc.el
  
  (autoload (quote eudc-set-server) "eudc" "\
@@@ -10224,7 -10278,7 +10267,7 @@@ This does nothing except loading eudc b
  \f
  ;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
  ;;;;;;  eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
 -;;;;;;  "eudc-bob" "net/eudc-bob.el" (17851 10863))
 +;;;;;;  "eudc-bob" "net/eudc-bob.el" (17817 14121))
  ;;; Generated autoloads from net/eudc-bob.el
  
  (autoload (quote eudc-display-generic-binary) "eudc-bob" "\
@@@ -10260,7 -10314,7 +10303,7 @@@ Display a button for the JPEG DATA
  ;;;***
  \f
  ;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
 -;;;;;;  "eudc-export" "net/eudc-export.el" (17851 10863))
 +;;;;;;  "eudc-export" "net/eudc-export.el" (17817 14121))
  ;;; Generated autoloads from net/eudc-export.el
  
  (autoload (quote eudc-insert-record-at-point-into-bbdb) "eudc-export" "\
@@@ -10277,7 -10331,7 +10320,7 @@@ Call `eudc-insert-record-at-point-into-
  ;;;***
  \f
  ;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
 -;;;;;;  (17851 10863))
 +;;;;;;  (17817 14121))
  ;;; Generated autoloads from net/eudc-hotlist.el
  
  (autoload (quote eudc-edit-hotlist) "eudc-hotlist" "\
@@@ -10287,8 -10341,8 +10330,8 @@@ Edit the hotlist of directory servers i
  
  ;;;***
  \f
 -;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17851
 -;;;;;;  10853))
 +;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (17817
 +;;;;;;  13982))
  ;;; Generated autoloads from emacs-lisp/ewoc.el
  
  (autoload (quote ewoc-create) "ewoc" "\
@@@ -10317,7 -10371,7 +10360,7 @@@ fourth arg NOSEP non-nil inhibits this
  ;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
  ;;;;;;  executable-self-display executable-set-magic executable-interpret
  ;;;;;;  executable-command-find-posix-p) "executable" "progmodes/executable.el"
 -;;;;;;  (17851 10867))
 +;;;;;;  (17390 27408))
  ;;; Generated autoloads from progmodes/executable.el
  
  (autoload (quote executable-command-find-posix-p) "executable" "\
@@@ -10359,7 -10413,7 +10402,7 @@@ file modes
  ;;;***
  \f
  ;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
 -;;;;;;  expand-add-abbrevs) "expand" "expand.el" (17851 10827))
 +;;;;;;  expand-add-abbrevs) "expand" "expand.el" (17817 13975))
  ;;; Generated autoloads from expand.el
  
  (autoload (quote expand-add-abbrevs) "expand" "\
@@@ -10402,7 -10456,7 +10445,7 @@@ This is used only in conjunction with `
  
  ;;;***
  \f
 -;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17851 10867))
 +;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (17817 13977))
  ;;; Generated autoloads from progmodes/f90.el
  
  (autoload (quote f90-mode) "f90" "\
@@@ -10469,7 -10523,7 +10512,7 @@@ with no args, if that value is non-nil
  ;;;;;;  facemenu-remove-all facemenu-remove-face-props facemenu-set-read-only
  ;;;;;;  facemenu-set-intangible facemenu-set-invisible facemenu-set-face-from-menu
  ;;;;;;  facemenu-set-background facemenu-set-foreground facemenu-set-face)
 -;;;;;;  "facemenu" "facemenu.el" (17851 10827))
 +;;;;;;  "facemenu" "facemenu.el" (17817 13971))
  ;;; Generated autoloads from facemenu.el
   (define-key global-map "\M-o" 'facemenu-keymap)
   (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
@@@ -10634,51 -10688,11 +10677,51 @@@ argument BUFFER-NAME is nil, it default
  
  \(fn &optional LIST BUFFER-NAME)" t nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (turn-on-fast-lock fast-lock-mode) "fast-lock"
 +;;;;;;  "obsolete/fast-lock.el" (17817 14122))
 +;;; Generated autoloads from obsolete/fast-lock.el
 +
 +(autoload (quote fast-lock-mode) "fast-lock" "\
 +Toggle Fast Lock mode.
 +With arg, turn Fast Lock mode on if and only if arg is positive and the buffer
 +is associated with a file.  Enable it automatically in your `~/.emacs' by:
 +
 + (setq font-lock-support-mode 'fast-lock-mode)
 +
 +If Fast Lock mode is enabled, and the current buffer does not contain any text
 +properties, any associated Font Lock cache is used if its timestamp matches the
 +buffer's file, and its `font-lock-keywords' match those that you are using.
 +
 +Font Lock caches may be saved:
 +- When you save the file's buffer.
 +- When you kill an unmodified file's buffer.
 +- When you exit Emacs, for all unmodified or saved buffers.
 +Depending on the value of `fast-lock-save-events'.
 +See also the commands `fast-lock-read-cache' and `fast-lock-save-cache'.
 +
 +Use \\[font-lock-fontify-buffer] to fontify the buffer if the cache is bad.
 +
 +Various methods of control are provided for the Font Lock cache.  In general,
 +see variable `fast-lock-cache-directories' and function `fast-lock-cache-name'.
 +For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
 +`fast-lock-save-others' and `fast-lock-save-faces'.
 +
 +\(fn &optional ARG)" t nil)
 +
 +(autoload (quote turn-on-fast-lock) "fast-lock" "\
 +Unconditionally turn on Fast Lock mode.
 +
 +\(fn)" nil nil)
 +
 +(when (fboundp (quote add-minor-mode)) (defvar fast-lock-mode nil) (add-minor-mode (quote fast-lock-mode) nil))
 +
  ;;;***
  \f
  ;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
  ;;;;;;  feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
 -;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (17753 42784))
 +;;;;;;  feedmail-send-it) "feedmail" "mail/feedmail.el" (17778 50475))
  ;;; Generated autoloads from mail/feedmail.el
  
  (autoload (quote feedmail-send-it) "feedmail" "\
@@@ -10732,7 -10746,7 +10775,7 @@@ you can set `feedmail-queue-reminder-al
  ;;;***
  \f
  ;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
 -;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (17851 10827))
 +;;;;;;  find-file-at-point ffap-next) "ffap" "ffap.el" (17817 13975))
  ;;; Generated autoloads from ffap.el
  
  (autoload (quote ffap-next) "ffap" "\
@@@ -10791,7 -10805,7 +10834,7 @@@ Evaluate the forms in variable `ffap-bi
  ;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
  ;;;;;;  file-cache-add-directory-using-locate file-cache-add-directory-using-find
  ;;;;;;  file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
 -;;;;;;  "filecache" "filecache.el" (17851 10827))
 +;;;;;;  "filecache" "filecache.el" (17817 13975))
  ;;; Generated autoloads from filecache.el
  
  (autoload (quote file-cache-add-directory) "filecache" "\
@@@ -10850,8 -10864,8 +10893,8 @@@ the name is considered already unique; 
  
  ;;;***
  \f
 -;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17851
 -;;;;;;  10827))
 +;;;### (autoloads (filesets-init) "filesets" "filesets.el" (17778
 +;;;;;;  48448))
  ;;; Generated autoloads from filesets.el
  
  (autoload (quote filesets-init) "filesets" "\
@@@ -10862,7 -10876,7 +10905,7 @@@ Set up hooks, load the cache file -- i
  
  ;;;***
  \f
 -;;;### (autoloads nil "fill" "textmodes/fill.el" (17852 50694))
 +;;;### (autoloads nil "fill" "textmodes/fill.el" (17817 16882))
  ;;; Generated autoloads from textmodes/fill.el
  (put 'colon-double-space 'safe-local-variable 'booleanp)
  
  \f
  ;;;### (autoloads (find-grep-dired find-name-dired find-dired find-grep-options
  ;;;;;;  find-ls-subdir-switches find-ls-option) "find-dired" "find-dired.el"
 -;;;;;;  (17851 10827))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from find-dired.el
  
  (defvar find-ls-option (if (eq system-type (quote berkeley-unix)) (quote ("-ls" . "-gilsb")) (quote ("-exec ls -ld {} \\;" . "-ld"))) "\
@@@ -10931,7 -10945,7 +10974,7 @@@ Thus ARG can also contain additional gr
  \f
  ;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
  ;;;;;;  ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
 -;;;;;;  (17851 10828))
 +;;;;;;  (17817 13975))
  ;;; Generated autoloads from find-file.el
  
  (defvar ff-special-constructs (quote (("^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" lambda nil (buffer-substring (match-beginning 2) (match-end 2))))) "\
@@@ -11025,7 -11039,7 +11068,7 @@@ Visit the file you click on in another 
  ;;;;;;  find-variable find-variable-noselect find-function-other-frame
  ;;;;;;  find-function-other-window find-function find-function-noselect
  ;;;;;;  find-function-search-for-symbol find-library) "find-func"
 -;;;;;;  "emacs-lisp/find-func.el" (17851 10853))
 +;;;;;;  "emacs-lisp/find-func.el" (17817 14115))
  ;;; Generated autoloads from emacs-lisp/find-func.el
  
  (autoload (quote find-library) "find-func" "\
@@@ -11179,7 -11193,7 +11222,7 @@@ Define some key bindings for the find-f
  ;;;***
  \f
  ;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
 -;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (17851 10828))
 +;;;;;;  find-lisp-find-dired) "find-lisp" "find-lisp.el" (17817 13975))
  ;;; Generated autoloads from find-lisp.el
  
  (autoload (quote find-lisp-find-dired) "find-lisp" "\
@@@ -11200,7 -11214,7 +11243,7 @@@ Change the filter on a find-lisp-find-d
  ;;;***
  \f
  ;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
 -;;;;;;  "finder" "finder.el" (17851 10828))
 +;;;;;;  "finder" "finder.el" (17469 12047))
  ;;; Generated autoloads from finder.el
  
  (autoload (quote finder-list-keywords) "finder" "\
@@@ -11222,7 -11236,7 +11265,7 @@@ Find packages matching a given keyword
  ;;;***
  \f
  ;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
 -;;;;;;  "flow-ctrl.el" (17851 10828))
 +;;;;;;  "flow-ctrl.el" (17817 13975))
  ;;; Generated autoloads from flow-ctrl.el
  
  (autoload (quote enable-flow-control) "flow-ctrl" "\
@@@ -11244,7 -11258,7 +11287,7 @@@ to get the effect of a C-q
  ;;;***
  \f
  ;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
 -;;;;;;  (17851 10856))
 +;;;;;;  (17478 25198))
  ;;; Generated autoloads from gnus/flow-fill.el
  
  (autoload (quote fill-flowed-encode) "flow-fill" "\
@@@ -11260,7 -11274,7 +11303,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (flymake-mode-off flymake-mode-on flymake-mode)
 -;;;;;;  "flymake" "progmodes/flymake.el" (17854 10614))
 +;;;;;;  "flymake" "progmodes/flymake.el" (17778 50475))
  ;;; Generated autoloads from progmodes/flymake.el
  
  (autoload (quote flymake-mode) "flymake" "\
@@@ -11284,7 -11298,7 +11327,7 @@@ Turn flymake mode off
  \f
  ;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
  ;;;;;;  turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
 -;;;;;;  "flyspell" "textmodes/flyspell.el" (17851 10872))
 +;;;;;;  "flyspell" "textmodes/flyspell.el" (17817 14127))
  ;;; Generated autoloads from textmodes/flyspell.el
  
  (autoload (quote flyspell-prog-mode) "flyspell" "\
@@@ -11353,7 -11367,7 +11396,7 @@@ Flyspell whole buffer
  \f
  ;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
  ;;;;;;  turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
 -;;;;;;  (17851 10828))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from follow.el
  
  (autoload (quote turn-on-follow-mode) "follow" "\
@@@ -11427,8 -11441,8 +11470,8 @@@ in your `~/.emacs' file, replacing [f7
  
  ;;;***
  \f
 -;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17851
 -;;;;;;  10861))
 +;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (17817
 +;;;;;;  16161))
  ;;; Generated autoloads from mail/footnote.el
  
  (autoload (quote footnote-mode) "footnote" "\
@@@ -11449,7 -11463,7 +11492,7 @@@ key          bindin
  ;;;***
  \f
  ;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
 -;;;;;;  "forms" "forms.el" (17851 10829))
 +;;;;;;  "forms" "forms.el" (17817 13976))
  ;;; Generated autoloads from forms.el
  
  (autoload (quote forms-mode) "forms" "\
@@@ -11486,7 -11500,7 +11529,7 @@@ Visit a file in Forms mode in other win
  ;;;***
  \f
  ;;;### (autoloads (fortran-mode fortran-tab-mode-default) "fortran"
 -;;;;;;  "progmodes/fortran.el" (17851 10868))
 +;;;;;;  "progmodes/fortran.el" (17817 13977))
  ;;; Generated autoloads from progmodes/fortran.el
  
  (defvar fortran-tab-mode-default nil "\
@@@ -11572,7 -11586,7 +11615,7 @@@ with no args, if that value is non-nil
  ;;;***
  \f
  ;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
 -;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (17851 10865))
 +;;;;;;  fortune-add-fortune) "fortune" "play/fortune.el" (17383 38807))
  ;;; Generated autoloads from play/fortune.el
  
  (autoload (quote fortune-add-fortune) "fortune" "\
@@@ -11622,7 -11636,7 +11665,7 @@@ and choose the directory as the fortune
  ;;;***
  \f
  ;;;### (autoloads (gdb-enable-debug gdba) "gdb-ui" "progmodes/gdb-ui.el"
 -;;;;;;  (17866 27909))
 +;;;;;;  (17817 16161))
  ;;; Generated autoloads from progmodes/gdb-ui.el
  
  (autoload (quote gdba) "gdb-ui" "\
@@@ -11678,15 -11692,15 +11721,15 @@@ detailed description of this mode
  \(fn COMMAND-LINE)" t nil)
  
  (defvar gdb-enable-debug nil "\
 -Non-nil means record the process input and output in `gdb-debug-log'.")
 +Non-nil means record the process input and output in `gdb-debug-ring'.")
  
  (custom-autoload (quote gdb-enable-debug) "gdb-ui" t)
  
  ;;;***
  \f
  ;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
 -;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (17851
 -;;;;;;  10853))
 +;;;;;;  define-generic-mode) "generic" "emacs-lisp/generic.el" (17817
 +;;;;;;  13982))
  ;;; Generated autoloads from emacs-lisp/generic.el
  
  (defvar generic-mode-list nil "\
@@@ -11761,7 -11775,7 +11804,7 @@@ regular expression that can be used as 
  ;;;***
  \f
  ;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
 -;;;;;;  (17851 10868))
 +;;;;;;  (17817 14147))
  ;;; Generated autoloads from progmodes/glasses.el
  
  (autoload (quote glasses-mode) "glasses" "\
@@@ -11774,7 -11788,7 +11817,7 @@@ at places they belong to
  ;;;***
  \f
  ;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
 -;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17851 10856))
 +;;;;;;  gmm-message) "gmm-utils" "gnus/gmm-utils.el" (17778 48450))
  ;;; Generated autoloads from gnus/gmm-utils.el
  
  (autoload (quote gmm-message) "gmm-utils" "\
@@@ -11821,7 -11835,7 +11864,7 @@@ DEFAULT-MAP specifies the default key m
  ;;;***
  \f
  ;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
 -;;;;;;  gnus-slave-no-server) "gnus" "gnus/gnus.el" (17851 10857))
 +;;;;;;  gnus-slave-no-server) "gnus" "gnus/gnus.el" (17778 50473))
  ;;; Generated autoloads from gnus/gnus.el
  (when (fboundp 'custom-autoload)
   (custom-autoload 'gnus-select-method "gnus"))
@@@ -11874,7 -11888,7 +11917,7 @@@ prompt the user for the name of an NNT
  ;;;;;;  gnus-agent-get-undownloaded-list gnus-agent-delete-group
  ;;;;;;  gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
  ;;;;;;  gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
 -;;;;;;  "gnus/gnus-agent.el" (17851 10856))
 +;;;;;;  "gnus/gnus-agent.el" (17778 50473))
  ;;; Generated autoloads from gnus/gnus-agent.el
  
  (autoload (quote gnus-unplugged) "gnus-agent" "\
@@@ -11965,7 -11979,7 +12008,7 @@@ If CLEAN, obsolete (ignore)
  ;;;***
  \f
  ;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
 -;;;;;;  (17854 10614))
 +;;;;;;  (17817 16940))
  ;;; Generated autoloads from gnus/gnus-art.el
  
  (autoload (quote gnus-article-prepare-display) "gnus-art" "\
@@@ -11976,7 -11990,7 +12019,7 @@@ Make the current buffer look like a nic
  ;;;***
  \f
  ;;;### (autoloads (gnus-audio-play) "gnus-audio" "gnus/gnus-audio.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17817 14137))
  ;;; Generated autoloads from gnus/gnus-audio.el
  
  (autoload (quote gnus-audio-play) "gnus-audio" "\
@@@ -11988,8 -12002,8 +12031,8 @@@ Play a sound FILE through the speaker
  \f
  ;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
  ;;;;;;  gnus-cache-generate-nov-databases gnus-cache-generate-active
 -;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17851
 -;;;;;;  10857))
 +;;;;;;  gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (17383
 +;;;;;;  38805))
  ;;; Generated autoloads from gnus/gnus-cache.el
  
  (autoload (quote gnus-jog-cache) "gnus-cache" "\
@@@ -12031,7 -12045,7 +12074,7 @@@ supported
  ;;;***
  \f
  ;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
 -;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (17851 10857))
 +;;;;;;  "gnus-delay" "gnus/gnus-delay.el" (17383 38805))
  ;;; Generated autoloads from gnus/gnus-delay.el
  
  (autoload (quote gnus-delay-article) "gnus-delay" "\
@@@ -12067,7 -12081,7 +12110,7 @@@ Checking delayed messages is skipped i
  ;;;***
  \f
  ;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
 -;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17851 10857))
 +;;;;;;  "gnus-diary" "gnus/gnus-diary.el" (17817 15855))
  ;;; Generated autoloads from gnus/gnus-diary.el
  
  (autoload (quote gnus-user-format-function-d) "gnus-diary" "\
@@@ -12083,7 -12097,7 +12126,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/gnus-dired.el
  
  (autoload (quote turn-on-gnus-dired-mode) "gnus-dired" "\
@@@ -12094,7 -12108,7 +12137,7 @@@ Convenience method to turn on gnus-dire
  ;;;***
  \f
  ;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17713 5989))
  ;;; Generated autoloads from gnus/gnus-draft.el
  
  (autoload (quote gnus-draft-reminder) "gnus-draft" "\
@@@ -12106,8 -12120,8 +12149,8 @@@ Reminder user if there are unsent draft
  \f
  ;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
  ;;;;;;  gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
 -;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17851
 -;;;;;;  10857))
 +;;;;;;  gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (17466
 +;;;;;;  28574))
  ;;; Generated autoloads from gnus/gnus-fun.el
  
  (autoload (quote gnus-random-x-face) "gnus-fun" "\
@@@ -12146,7 -12160,7 +12189,7 @@@ FILE should be a PNG file that's 48x48 
  ;;;***
  \f
  ;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
 -;;;;;;  "gnus-group" "gnus/gnus-group.el" (17851 10857))
 +;;;;;;  "gnus-group" "gnus/gnus-group.el" (17817 16148))
  ;;; Generated autoloads from gnus/gnus-group.el
  
  (autoload (quote gnus-fetch-group) "gnus-group" "\
@@@ -12163,7 -12177,7 +12206,7 @@@ Pop up a frame and enter GROUP
  ;;;***
  \f
  ;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17817 14137))
  ;;; Generated autoloads from gnus/gnus-kill.el
  
  (defalias (quote gnus-batch-kill) (quote gnus-batch-score))
@@@ -12178,7 -12192,7 +12221,7 @@@ Usage: emacs -batch -l ~/.emacs -l gnu
  \f
  ;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
  ;;;;;;  turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17549 5046))
  ;;; Generated autoloads from gnus/gnus-ml.el
  
  (autoload (quote turn-on-gnus-mailing-list-mode) "gnus-ml" "\
@@@ -12203,7 -12217,7 +12246,7 @@@ Minor mode for providing mailing-list c
  \f
  ;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
  ;;;;;;  gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/gnus-mlspl.el
  
  (autoload (quote gnus-group-split-setup) "gnus-mlspl" "\
@@@ -12304,7 -12318,7 +12347,7 @@@ Calling (gnus-group-split-fancy nil ni
  ;;;***
  \f
  ;;;### (autoloads (gnus-change-server) "gnus-move" "gnus/gnus-move.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17817 14137))
  ;;; Generated autoloads from gnus/gnus-move.el
  
  (autoload (quote gnus-change-server) "gnus-move" "\
@@@ -12316,7 -12330,7 +12359,7 @@@ Update the .newsrc.eld file to reflect 
  ;;;***
  \f
  ;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
 -;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17851 10857))
 +;;;;;;  "gnus-msg" "gnus/gnus-msg.el" (17383 38805))
  ;;; Generated autoloads from gnus/gnus-msg.el
  
  (autoload (quote gnus-msg-mail) "gnus-msg" "\
@@@ -12341,7 -12355,7 +12384,7 @@@ Like `message-reply'
  ;;;***
  \f
  ;;;### (autoloads (gnus-nocem-load-cache gnus-nocem-scan-groups)
 -;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (17851 10857))
 +;;;;;;  "gnus-nocem" "gnus/gnus-nocem.el" (17817 14137))
  ;;; Generated autoloads from gnus/gnus-nocem.el
  
  (autoload (quote gnus-nocem-scan-groups) "gnus-nocem" "\
@@@ -12358,7 -12372,7 +12401,7 @@@ Load the NoCeM cache
  \f
  ;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
  ;;;;;;  gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/gnus-picon.el
  
  (autoload (quote gnus-treat-from-picon) "gnus-picon" "\
@@@ -12385,7 -12399,7 +12428,7 @@@ If picons are already displayed, remov
  ;;;;;;  gnus-sorted-nintersection gnus-sorted-range-intersection
  ;;;;;;  gnus-sorted-intersection gnus-intersection gnus-sorted-complement
  ;;;;;;  gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
 -;;;;;;  "gnus/gnus-range.el" (17851 10857))
 +;;;;;;  "gnus/gnus-range.el" (17383 38805))
  ;;; Generated autoloads from gnus/gnus-range.el
  
  (autoload (quote gnus-sorted-difference) "gnus-range" "\
@@@ -12453,7 -12467,7 +12496,7 @@@ Add NUM into sorted LIST by side effect
  ;;;***
  \f
  ;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
 -;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17851 10857))
 +;;;;;;  "gnus-registry" "gnus/gnus-registry.el" (17713 5990))
  ;;; Generated autoloads from gnus/gnus-registry.el
  
  (autoload (quote gnus-registry-initialize) "gnus-registry" "\
@@@ -12469,8 -12483,8 +12512,8 @@@ Install the registry hooks
  ;;;***
  \f
  ;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
 -;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17851
 -;;;;;;  10857))
 +;;;;;;  gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (17469
 +;;;;;;  13458))
  ;;; Generated autoloads from gnus/gnus-sieve.el
  
  (autoload (quote gnus-sieve-update) "gnus-sieve" "\
@@@ -12498,7 -12512,7 +12541,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (gnus-batch-brew-soup) "gnus-soup" "gnus/gnus-soup.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17817 14137))
  ;;; Generated autoloads from gnus/gnus-soup.el
  
  (autoload (quote gnus-batch-brew-soup) "gnus-soup" "\
@@@ -12518,7 -12532,7 +12561,7 @@@ Note -- this function hasn't been imple
  ;;;***
  \f
  ;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/gnus-spec.el
  
  (autoload (quote gnus-update-format) "gnus-spec" "\
@@@ -12529,8 -12543,8 +12572,8 @@@ Update the format specification near po
  ;;;***
  \f
  ;;;### (autoloads (gnus-fixup-nnimap-unread-after-getting-new-news
 -;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17851
 -;;;;;;  10857))
 +;;;;;;  gnus-declare-backend) "gnus-start" "gnus/gnus-start.el" (17778
 +;;;;;;  50473))
  ;;; Generated autoloads from gnus/gnus-start.el
  
  (autoload (quote gnus-declare-backend) "gnus-start" "\
@@@ -12546,7 -12560,7 +12589,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
 -;;;;;;  (17851 10857))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/gnus-win.el
  
  (autoload (quote gnus-add-configuration) "gnus-win" "\
@@@ -12556,7 -12570,7 +12599,7 @@@ Add the window configuration CONF to `g
  
  ;;;***
  \f
 -;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17851 10865))
 +;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (17778 50475))
  ;;; Generated autoloads from play/gomoku.el
  
  (autoload (quote gomoku) "gomoku" "\
@@@ -12583,7 -12597,7 +12626,7 @@@ Use \\[describe-mode] for more info
  ;;;***
  \f
  ;;;### (autoloads (goto-address goto-address-at-point) "goto-addr"
 -;;;;;;  "net/goto-addr.el" (17851 10863))
 +;;;;;;  "net/goto-addr.el" (17591 9445))
  ;;; Generated autoloads from net/goto-addr.el
  
  (define-obsolete-function-alias (quote goto-address-at-mouse) (quote goto-address-at-point) "22.1")
@@@ -12613,7 -12627,7 +12656,7 @@@ Also fontifies the buffer appropriatel
  \f
  ;;;### (autoloads (rgrep lgrep grep-find grep grep-mode grep-compute-defaults
  ;;;;;;  grep-process-setup grep-setup-hook grep-find-command grep-command
 -;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (17875 14313))
 +;;;;;;  grep-window-height) "grep" "progmodes/grep.el" (17713 5410))
  ;;; Generated autoloads from progmodes/grep.el
  
  (defvar grep-window-height nil "\
@@@ -12689,6 -12703,9 +12732,9 @@@ While grep runs asynchronously, you ca
  or \\<grep-mode-map>\\[compile-goto-error] in the grep output buffer, to go to the lines
  where grep found matches.
  
+ For doing a recursive `grep', see the `rgrep' command.  For running
+ `grep' in a specific directory, see `lgrep'.
  This command uses a special history list for its COMMAND-ARGS, so you can
  easily repeat a grep command.
  
@@@ -12713,7 -12730,7 +12759,7 @@@ easily repeat a find command
  (defalias (quote find-grep) (quote grep-find))
  
  (autoload (quote lgrep) "grep" "\
- Run grep, searching for REGEXP in FILES in current directory.
+ Run grep, searching for REGEXP in FILES in directory DIR.
  The search is limited to file names matching shell pattern FILES.
  FILES may use abbreviations defined in `grep-files-aliases', e.g.
  entering `ch' is equivalent to `*.[ch]'.
@@@ -12728,7 -12745,7 +12774,7 @@@ in the grep output buffer, to go to th
  
  This command shares argument histories with \\[rgrep] and \\[grep].
  
- \(fn REGEXP &optional FILES)" t nil)
+ \(fn REGEXP &optional FILES DIR)" t nil)
  
  (autoload (quote rgrep) "grep" "\
  Recursively grep for REGEXP in FILES in directory tree rooted at DIR.
@@@ -12750,7 -12767,7 +12796,7 @@@ This command shares argument histories 
  
  ;;;***
  \f
 -;;;### (autoloads (gs-load-image) "gs" "gs.el" (17851 10830))
 +;;;### (autoloads (gs-load-image) "gs" "gs.el" (17390 26939))
  ;;; Generated autoloads from gs.el
  
  (autoload (quote gs-load-image) "gs" "\
@@@ -12764,7 -12781,7 +12810,7 @@@ the form \"WINDOW-ID PIXMAP-ID\".  Valu
  ;;;***
  \f
  ;;;### (autoloads (gdb-script-mode bashdb jdb pdb perldb xdb dbx
 -;;;;;;  sdb gdb) "gud" "progmodes/gud.el" (17871 15754))
 +;;;;;;  sdb gdb) "gud" "progmodes/gud.el" (17817 13989))
  ;;; Generated autoloads from progmodes/gud.el
  
  (autoload (quote gdb) "gud" "\
@@@ -12854,8 -12871,8 +12900,8 @@@ Major mode for editing GDB script
  
  ;;;***
  \f
 -;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17851
 -;;;;;;  10866))
 +;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (17817
 +;;;;;;  14125))
  ;;; Generated autoloads from play/handwrite.el
  
  (autoload (quote handwrite) "handwrite" "\
@@@ -12873,7 -12890,7 +12919,7 @@@ Variables: handwrite-linespace     (def
  ;;;***
  \f
  ;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
 -;;;;;;  (17753 42784))
 +;;;;;;  (17778 50475))
  ;;; Generated autoloads from play/hanoi.el
  
  (autoload (quote hanoi) "hanoi" "\
@@@ -12903,7 -12920,7 +12949,7 @@@ to be updated
  ;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
  ;;;;;;  scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
  ;;;;;;  help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
 -;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (17851 10830))
 +;;;;;;  help-at-pt-string) "help-at-pt" "help-at-pt.el" (17713 5990))
  ;;; Generated autoloads from help-at-pt.el
  
  (autoload (quote help-at-pt-string) "help-at-pt" "\
@@@ -13033,7 -13050,7 +13079,7 @@@ different regions.  With numeric argume
  ;;;### (autoloads (describe-categories describe-syntax describe-variable
  ;;;;;;  variable-at-point describe-function-1 describe-simplify-lib-file-name
  ;;;;;;  help-C-file-name describe-function) "help-fns" "help-fns.el"
 -;;;;;;  (17851 39450))
 +;;;;;;  (17817 15855))
  ;;; Generated autoloads from help-fns.el
  
  (autoload (quote describe-function) "help-fns" "\
@@@ -13067,11 -13084,10 +13113,11 @@@ If ANY-SYMBOL is non-nil, don't insist 
  (autoload (quote describe-variable) "help-fns" "\
  Display the full documentation of VARIABLE (a symbol).
  Returns the documentation as a string, also.
 -If VARIABLE has a buffer-local value in BUFFER (default to the current buffer),
 +If VARIABLE has a buffer-local value in BUFFER or FRAME
 +\(default to the current buffer and current frame),
  it is displayed along with the global value.
  
 -\(fn VARIABLE &optional BUFFER)" t nil)
 +\(fn VARIABLE &optional BUFFER FRAME)" t nil)
  
  (autoload (quote describe-syntax) "help-fns" "\
  Describe the syntax specifications in the syntax table of BUFFER.
@@@ -13091,7 -13107,7 +13137,7 @@@ BUFFER should be a buffer or a buffer n
  ;;;***
  \f
  ;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
 -;;;;;;  (17851 10830))
 +;;;;;;  (17817 13976))
  ;;; Generated autoloads from help-macro.el
  
  (defvar three-step-help nil "\
@@@ -13107,7 -13123,7 +13153,7 @@@ A value of nil means skip the middle st
  \f
  ;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
  ;;;;;;  help-make-xrefs help-setup-xref help-mode-finish help-mode-setup
 -;;;;;;  help-mode) "help-mode" "help-mode.el" (17851 10833))
 +;;;;;;  help-mode) "help-mode" "help-mode.el" (17611 9183))
  ;;; Generated autoloads from help-mode.el
  
  (autoload (quote help-mode) "help-mode" "\
@@@ -13190,7 -13206,7 +13236,7 @@@ Add xrefs for symbols in `pp's output b
  ;;;***
  \f
  ;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
 -;;;;;;  "emacs-lisp/helper.el" (17851 10853))
 +;;;;;;  "emacs-lisp/helper.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/helper.el
  
  (autoload (quote Helper-describe-bindings) "helper" "\
@@@ -13206,7 -13222,7 +13252,7 @@@ Provide help for current mode
  ;;;***
  \f
  ;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
 -;;;;;;  "hexl.el" (17851 39450))
 +;;;;;;  "hexl.el" (17778 50473))
  ;;; Generated autoloads from hexl.el
  
  (autoload (quote hexl-mode) "hexl" "\
@@@ -13303,7 -13319,7 +13349,7 @@@ This discards the buffer's undo informa
  ;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
  ;;;;;;  hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
  ;;;;;;  global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
 -;;;;;;  (17860 50079))
 +;;;;;;  (17390 26939))
  ;;; Generated autoloads from hi-lock.el
  
  (autoload (quote hi-lock-mode) "hi-lock" "\
@@@ -13428,7 -13444,7 +13474,7 @@@ be found in variable `hi-lock-interacti
  ;;;***
  \f
  ;;;### (autoloads (hide-ifdef-lines hide-ifdef-read-only hide-ifdef-initially
 -;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17851 10868))
 +;;;;;;  hide-ifdef-mode) "hideif" "progmodes/hideif.el" (17524 8597))
  ;;; Generated autoloads from progmodes/hideif.el
  
  (autoload (quote hide-ifdef-mode) "hideif" "\
@@@ -13468,22 -13484,22 +13514,22 @@@ how the hiding is done
  (defvar hide-ifdef-initially nil "\
  *Non-nil means call `hide-ifdefs' when Hide-Ifdef mode is first activated.")
  
 -(custom-autoload (quote hide-ifdef-initially) "hideif" t)
 +(custom-autoload (quote hide-ifdef-initially) "hideif")
  
  (defvar hide-ifdef-read-only nil "\
  *Set to non-nil if you want buffer to be read-only while hiding text.")
  
 -(custom-autoload (quote hide-ifdef-read-only) "hideif" t)
 +(custom-autoload (quote hide-ifdef-read-only) "hideif")
  
  (defvar hide-ifdef-lines nil "\
  *Non-nil means hide the #ifX, #else, and #endif lines.")
  
 -(custom-autoload (quote hide-ifdef-lines) "hideif" t)
 +(custom-autoload (quote hide-ifdef-lines) "hideif")
  
  ;;;***
  \f
  ;;;### (autoloads (hs-minor-mode) "hideshow" "progmodes/hideshow.el"
 -;;;;;;  (17851 10868))
 +;;;;;;  (17778 50476))
  ;;; Generated autoloads from progmodes/hideshow.el
  
  (defvar hs-special-modes-alist (quote ((c-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (c++-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning) (bibtex-mode ("^@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil hs-c-like-adjust-block-beginning))) "\
@@@ -13541,7 -13557,7 +13587,7 @@@ Key bindings
  ;;;;;;  highlight-compare-buffers highlight-changes-rotate-faces
  ;;;;;;  highlight-changes-previous-change highlight-changes-next-change
  ;;;;;;  highlight-changes-mode highlight-changes-remove-highlight)
 -;;;;;;  "hilit-chg" "hilit-chg.el" (17851 10833))
 +;;;;;;  "hilit-chg" "hilit-chg.el" (17817 13976))
  ;;; Generated autoloads from hilit-chg.el
  
  (autoload (quote highlight-changes-remove-highlight) "hilit-chg" "\
@@@ -13671,7 -13687,7 +13717,7 @@@ variable `highlight-changes-global-chan
  ;;;;;;  hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
  ;;;;;;  hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
  ;;;;;;  hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
 -;;;;;;  "hippie-exp.el" (17851 10833))
 +;;;;;;  "hippie-exp.el" (17817 13976))
  ;;; Generated autoloads from hippie-exp.el
  
  (defvar hippie-expand-try-functions-list (quote (try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol)) "\
@@@ -13744,7 -13760,7 +13790,7 @@@ argument VERBOSE non-nil makes the func
  ;;;***
  \f
  ;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
 -;;;;;;  (17851 10833))
 +;;;;;;  (17713 5990))
  ;;; Generated autoloads from hl-line.el
  
  (autoload (quote hl-line-mode) "hl-line" "\
@@@ -13785,7 -13801,7 +13831,7 @@@ Global-Hl-Line mode uses the functions 
  ;;;***
  \f
  ;;;### (autoloads (list-holidays holidays) "holidays" "calendar/holidays.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17427 42815))
  ;;; Generated autoloads from calendar/holidays.el
  
  (autoload (quote holidays) "holidays" "\
@@@ -13821,35 -13837,8 +13867,35 @@@ The optional LABEL is used to label th
  
  ;;;***
  \f
 -;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17851
 -;;;;;;  10857))
 +;;;### (autoloads (hscroll-global-mode hscroll-mode turn-on-hscroll)
 +;;;;;;  "hscroll" "obsolete/hscroll.el" (17817 14122))
 +;;; Generated autoloads from obsolete/hscroll.el
 +
 +(autoload (quote turn-on-hscroll) "hscroll" "\
 +This function is obsolete.
 +Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
 +Also see `automatic-hscrolling'.
 +
 +\(fn)" nil nil)
 +
 +(autoload (quote hscroll-mode) "hscroll" "\
 +This function is obsolete.
 +Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
 +Also see `automatic-hscrolling'.
 +
 +\(fn &optional ARG)" t nil)
 +
 +(autoload (quote hscroll-global-mode) "hscroll" "\
 +This function is obsolete.
 +Emacs now does hscrolling automatically, if `truncate-lines' is non-nil.
 +Also see `automatic-hscrolling'.
 +
 +\(fn &optional ARG)" t nil)
 +
 +;;;***
 +\f
 +;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (17778
 +;;;;;;  50473))
  ;;; Generated autoloads from gnus/html2text.el
  
  (autoload (quote html2text) "html2text" "\
@@@ -13881,7 -13870,7 +13927,7 @@@ Convert HTML to plain text in the curre
  ;;;;;;  ibuffer-backward-filter-group ibuffer-forward-filter-group
  ;;;;;;  ibuffer-toggle-filter-group ibuffer-mouse-toggle-filter-group
  ;;;;;;  ibuffer-interactive-filter-by-mode ibuffer-mouse-filter-by-mode
 -;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17851 10833))
 +;;;;;;  ibuffer-auto-mode) "ibuf-ext" "ibuf-ext.el" (17713 5990))
  ;;; Generated autoloads from ibuf-ext.el
  
  (autoload (quote ibuffer-auto-mode) "ibuf-ext" "\
@@@ -14247,8 -14236,8 +14293,8 @@@ defaults to one
  ;;;***
  \f
  ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
 -;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17851
 -;;;;;;  10834))
 +;;;;;;  define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (17466
 +;;;;;;  28164))
  ;;; Generated autoloads from ibuf-macs.el
  
  (autoload (quote define-ibuffer-column) "ibuf-macs" "\
@@@ -14337,7 -14326,7 +14383,7 @@@ bound to the current value of the filte
  ;;;***
  \f
  ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
 -;;;;;;  "ibuffer" "ibuffer.el" (17851 10834))
 +;;;;;;  "ibuffer" "ibuffer.el" (17713 5990))
  ;;; Generated autoloads from ibuffer.el
  
  (autoload (quote ibuffer-list-buffers) "ibuffer" "\
@@@ -14378,7 -14367,7 +14424,7 @@@ FORMATS is the value to use for `ibuffe
  \f
  ;;;### (autoloads (icalendar-import-buffer icalendar-import-file
  ;;;;;;  icalendar-export-region icalendar-export-file) "icalendar"
 -;;;;;;  "calendar/icalendar.el" (17851 10852))
 +;;;;;;  "calendar/icalendar.el" (17817 15855))
  ;;; Generated autoloads from calendar/icalendar.el
  
  (autoload (quote icalendar-export-file) "icalendar" "\
@@@ -14423,15 -14412,15 +14469,15 @@@ NON-MARKING determines whether diary ev
  non-marking.
  
  Return code t means that importing worked well, return code nil
 -means that an error has occurred.  Error messages will be in the
 +means that an error has occured.  Error messages will be in the
  buffer `*icalendar-errors*'.
  
  \(fn &optional DIARY-FILE DO-NOT-ASK NON-MARKING)" t nil)
  
  ;;;***
  \f
 -;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17851
 -;;;;;;  10834))
 +;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (17778
 +;;;;;;  50473))
  ;;; Generated autoloads from icomplete.el
  
  (defvar icomplete-mode nil "\
@@@ -14451,7 -14440,7 +14497,7 @@@ With a numeric argument, turn Icomplet
  
  ;;;***
  \f
 -;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17851 10868))
 +;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (17390 27408))
  ;;; Generated autoloads from progmodes/icon.el
  
  (autoload (quote icon-mode) "icon" "\
@@@ -14492,7 -14481,7 +14538,7 @@@ with no args, if that value is non-nil
  ;;;***
  \f
  ;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
 -;;;;;;  (17887 5449))
 +;;;;;;  (17778 50476))
  ;;; Generated autoloads from progmodes/idlw-shell.el
  
  (autoload (quote idlwave-shell) "idlw-shell" "\
@@@ -14518,7 -14507,7 +14564,7 @@@ See also the variable `idlwave-shell-pr
  ;;;***
  \f
  ;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
 -;;;;;;  (17859 27907))
 +;;;;;;  (17817 14147))
  ;;; Generated autoloads from progmodes/idlwave.el
  
  (autoload (quote idlwave-mode) "idlwave" "\
@@@ -14653,8 -14642,8 +14699,8 @@@ The main features of this mode ar
  ;;;;;;  ido-find-alternate-file ido-find-file-other-window ido-find-file
  ;;;;;;  ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
  ;;;;;;  ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
 -;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17864
 -;;;;;;  64718))
 +;;;;;;  ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (17817
 +;;;;;;  16161))
  ;;; Generated autoloads from ido.el
  
  (defvar ido-mode nil "\
@@@ -14722,35 -14711,35 +14768,35 @@@ in a separate window
  (autoload (quote ido-switch-buffer-other-window) "ido" "\
  Switch to another buffer and show it in another window.
  The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-display-buffer) "ido" "\
  Display a buffer in another window but don't select it.
  The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-kill-buffer) "ido" "\
  Kill a buffer.
  The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-insert-buffer) "ido" "\
  Insert contents of a buffer in current buffer after point.
  The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-switch-buffer-other-frame) "ido" "\
  Switch to another buffer and show it in another frame.
  The buffer name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido'.
+ For details of keybindings, see `ido-switch-buffer'.
  
  \(fn)" t nil)
  
@@@ -14805,70 -14794,70 +14851,70 @@@ in a separate window
  (autoload (quote ido-find-file-other-window) "ido" "\
  Switch to another file and show it in another window.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-find-alternate-file) "ido" "\
  Switch to another file and show it in another window.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-find-file-read-only) "ido" "\
  Edit file read-only with name obtained via minibuffer.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-find-file-read-only-other-window) "ido" "\
  Edit file read-only in other window with name obtained via minibuffer.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-find-file-read-only-other-frame) "ido" "\
  Edit file read-only in other frame with name obtained via minibuffer.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-display-file) "ido" "\
  Display a file in another window but don't select it.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-find-file-other-frame) "ido" "\
  Switch to another file and show it in another frame.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-write-file) "ido" "\
  Write current buffer to a file.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-insert-file) "ido" "\
  Insert contents of file in current buffer.
  The file name is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
  (autoload (quote ido-dired) "ido" "\
  Call `dired' the ido way.
  The directory is selected interactively by typing a substring.
- For details of keybindings, do `\\[describe-function] ido-find-file'.
+ For details of keybindings, see `ido-find-file'.
  
  \(fn)" t nil)
  
@@@ -14915,7 -14904,7 +14961,7 @@@ DEF, if non-nil, is the default value
  
  ;;;***
  \f
 -;;;### (autoloads (ielm) "ielm" "ielm.el" (17851 10834))
 +;;;### (autoloads (ielm) "ielm" "ielm.el" (17817 13976))
  ;;; Generated autoloads from ielm.el
   (add-hook 'same-window-buffer-names "*ielm*")
  
@@@ -14928,7 -14917,7 +14974,7 @@@ Switches to the buffer `*ielm*', or cre
  ;;;***
  \f
  ;;;### (autoloads (iimage-mode turn-on-iimage-mode) "iimage" "iimage.el"
 -;;;;;;  (17851 10834))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from iimage.el
  
  (autoload (quote turn-on-iimage-mode) "iimage" "\
@@@ -14947,7 -14936,7 +14993,7 @@@ Toggle inline image minor mode
  ;;;;;;  insert-image put-image create-image image-type-auto-detected-p
  ;;;;;;  image-type-available-p image-type image-type-from-file-name
  ;;;;;;  image-type-from-file-header image-type-from-buffer image-type-from-data)
 -;;;;;;  "image" "image.el" (17868 42183))
 +;;;;;;  "image" "image.el" (17817 16882))
  ;;; Generated autoloads from image.el
  
  (autoload (quote image-type-from-data) "image" "\
@@@ -14995,22 -14984,18 +15041,27 @@@ Image types are symbols like `xbm' or `
  
  \(fn TYPE)" nil nil)
  
 +(autoload (quote image-type-auto-detected-p) "image" "\
 +Return t iff the current buffer contains an auto-detectable image.
 +Whether image types are auto-detectable or not depends on the setting
 +of the variable `image-type-auto-detectable'.
 +
 +This function is intended to be used from `magic-mode-alist' (which see).
 +
 +\(fn)" nil nil)
 +
  (autoload (quote image-type-auto-detected-p) "image" "\
  Return t iff the current buffer contains an auto-detectable image.
- Whether image types are auto-detectable or not depends on the setting
- of the variable `image-type-auto-detectable'.
  This function is intended to be used from `magic-mode-alist' (which see).
  
+ First, compare the beginning of the buffer with `image-type-header-regexps'.
+ If an appropriate image type is found, check if that image type can be
+ autodetected using the variable `image-type-auto-detectable'.  Finally,
+ if `buffer-file-name' is non-nil, check if it matches another major mode
+ in `auto-mode-alist' apart from `image-mode'; if there is another match,
+ the autodetection is considered to have failed.  Return t if all the above
+ steps succeed.
  \(fn)" nil nil)
  
  (autoload (quote create-image) "image" "\
@@@ -15127,7 -15112,7 +15178,7 @@@ Example
  \f
  ;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
  ;;;;;;  image-file-name-regexps image-file-name-extensions) "image-file"
 -;;;;;;  "image-file.el" (17851 10834))
 +;;;;;;  "image-file.el" (17390 26940))
  ;;; Generated autoloads from image-file.el
  
  (defvar image-file-name-extensions (quote ("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm")) "\
@@@ -15189,7 -15174,7 +15240,7 @@@ Image files are those whose name has a
  ;;;***
  \f
  ;;;### (autoloads (image-mode-maybe image-minor-mode image-mode)
 -;;;;;;  "image-mode" "image-mode.el" (17866 8262))
 +;;;;;;  "image-mode" "image-mode.el" (17713 5990))
  ;;; Generated autoloads from image-mode.el
   (push '("\\.jpe?g\\'"    . image-mode) auto-mode-alist)
   (push '("\\.png\\'"      . image-mode) auto-mode-alist)
@@@ -15227,7 -15212,7 +15278,7 @@@ information on these modes
  ;;;***
  \f
  ;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
 -;;;;;;  imenu-sort-function) "imenu" "imenu.el" (17851 10835))
 +;;;;;;  imenu-sort-function) "imenu" "imenu.el" (17817 13976))
  ;;; Generated autoloads from imenu.el
  
  (defvar imenu-sort-function nil "\
@@@ -15342,7 -15327,7 +15393,7 @@@ for more information
  \f
  ;;;### (autoloads (indian-char-glyph indian-glyph-char in-is13194-pre-write-conversion
  ;;;;;;  in-is13194-post-read-conversion indian-compose-string indian-compose-region)
 -;;;;;;  "ind-util" "language/ind-util.el" (17851 10861))
 +;;;;;;  "ind-util" "language/ind-util.el" (17817 14144))
  ;;; Generated autoloads from language/ind-util.el
  
  (autoload (quote indian-compose-region) "ind-util" "\
@@@ -15385,7 -15370,7 +15436,7 @@@ See also the function `indian-glyph-cha
  \f
  ;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
  ;;;;;;  inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
 -;;;;;;  "progmodes/inf-lisp.el" (17851 10868))
 +;;;;;;  "progmodes/inf-lisp.el" (17549 4607))
  ;;; Generated autoloads from progmodes/inf-lisp.el
  
  (defvar inferior-lisp-filter-regexp "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'" "\
@@@ -15452,7 -15437,7 +15503,7 @@@ of `inferior-lisp-program').  Runs the 
  ;;;### (autoloads (Info-speedbar-browser Info-goto-emacs-key-command-node
  ;;;;;;  Info-goto-emacs-command-node Info-mode info-apropos Info-index
  ;;;;;;  Info-directory Info-on-current-buffer info-standalone info-emacs-manual
 -;;;;;;  info info-other-window) "info" "info.el" (17870 6128))
 +;;;;;;  info info-other-window) "info" "info.el" (17817 16152))
  ;;; Generated autoloads from info.el
  
  (autoload (quote info-other-window) "info" "\
@@@ -15618,7 -15603,7 +15669,7 @@@ This will add a speedbar major display 
  \f
  ;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
  ;;;;;;  info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
 -;;;;;;  (17880 31192))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from info-look.el
  
  (autoload (quote info-lookup-reset) "info-look" "\
@@@ -15666,7 -15651,7 +15717,7 @@@ Perform completion on file preceding po
  ;;;***
  \f
  ;;;### (autoloads (info-xref-check-all-custom info-xref-check-all
 -;;;;;;  info-xref-check) "info-xref" "info-xref.el" (17851 10835))
 +;;;;;;  info-xref-check) "info-xref" "info-xref.el" (17524 8597))
  ;;; Generated autoloads from info-xref.el
  
  (autoload (quote info-xref-check) "info-xref" "\
@@@ -15693,7 -15678,7 +15744,7 @@@ quite a while
  ;;;***
  \f
  ;;;### (autoloads (batch-info-validate Info-validate Info-split Info-tagify)
 -;;;;;;  "informat" "informat.el" (17851 10835))
 +;;;;;;  "informat" "informat.el" (17817 13976))
  ;;; Generated autoloads from informat.el
  
  (autoload (quote Info-tagify) "informat" "\
@@@ -15734,7 -15719,7 +15785,7 @@@ For example, invoke \"emacs -batch -f b
  \f
  ;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
  ;;;;;;  isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 15477))
  ;;; Generated autoloads from international/isearch-x.el
  
  (autoload (quote isearch-toggle-specified-input-method) "isearch-x" "\
@@@ -15754,8 -15739,8 +15805,8 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17854
 -;;;;;;  10613))
 +;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (17817
 +;;;;;;  15738))
  ;;; Generated autoloads from isearchb.el
  
  (autoload (quote isearchb-activate) "isearchb" "\
@@@ -15766,43 -15751,12 +15817,43 @@@ accessed via isearchb
  
  \(fn)" t nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (iso-accents-mode) "iso-acc" "obsolete/iso-acc.el"
 +;;;;;;  (17383 38806))
 +;;; Generated autoloads from obsolete/iso-acc.el
 +
 +(autoload (quote iso-accents-mode) "iso-acc" "\
 +Toggle ISO Accents mode, in which accents modify the following letter.
 +This permits easy insertion of accented characters according to ISO-8859-1.
 +When Iso-accents mode is enabled, accent character keys
 +\(`, ', \", ^, / and ~) do not self-insert; instead, they modify the following
 +letter key so that it inserts an ISO accented letter.
 +
 +You can customize ISO Accents mode to a particular language
 +with the command `iso-accents-customize'.
 +
 +Special combinations: ~c gives a c with cedilla,
 +~d gives an Icelandic eth (d with dash).
 +~t gives an Icelandic thorn.
 +\"s gives German sharp s.
 +/a gives a with ring.
 +/e gives an a-e ligature.
 +~< and ~> give guillemots.
 +~! gives an inverted exclamation mark.
 +~? gives an inverted question mark.
 +
 +With an argument, a positive argument enables ISO Accents mode,
 +and a negative argument disables it.
 +
 +\(fn &optional ARG)" t nil)
 +
  ;;;***
  \f
  ;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
  ;;;;;;  iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
  ;;;;;;  iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
 -;;;;;;  "international/iso-cvt.el" (17851 10860))
 +;;;;;;  "international/iso-cvt.el" (17817 14140))
  ;;; Generated autoloads from international/iso-cvt.el
  
  (autoload (quote iso-spanish) "iso-cvt" "\
@@@ -15886,7 -15840,7 +15937,7 @@@ Add submenus to the File menu, to conve
  ;;;***
  \f
  ;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 14140))
  ;;; Generated autoloads from international/iso-transl.el
   (or key-translation-map (setq key-translation-map (make-sparse-keymap)))
   (define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
  ;;;;;;  ispell-region ispell-change-dictionary ispell-kill-ispell
  ;;;;;;  ispell-help ispell-pdict-save ispell-word ispell-local-dictionary-alist
  ;;;;;;  ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
 -;;;;;;  (17875 14313))
 +;;;;;;  (17778 50479))
  ;;; Generated autoloads from textmodes/ispell.el
  (put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
  
@@@ -15944,8 -15898,7 +15995,7 @@@ Each element of this list is also a lis
  DICTIONARY-NAME is a possible string value of variable `ispell-dictionary',
  nil means the default dictionary.
  
- CASECHARS is a regular expression of valid characters that comprise a
- word.
+ CASECHARS is a regular expression of valid characters that comprise a word.
  
  NOT-CASECHARS is the opposite regexp of CASECHARS.
  
@@@ -15959,7 -15912,7 +16009,7 @@@ regular expression \"[']\" for OTHERCHA
  If you want OTHERCHARS to be empty, use the empty string.
  Hint: regexp syntax requires the hyphen to be declared first here.
  
- CASECHAS, NOT-CASECHARS, and OTHERCHARS must be a unibyte string
+ CASECHARS, NOT-CASECHARS, and OTHERCHARS must be unibyte strings
  containing bytes of CHARACTER-SET.  In addition, if they contain
  a non-ASCII byte, the regular expression must be a single
  `character set' construct that doesn't specify a character range
@@@ -16047,7 -16000,7 +16097,7 @@@ which is in `ispell-local-dictionary-al
  This will check or reload the dictionary.  Use \\[ispell-change-dictionary]
  or \\[ispell-region] to update the Ispell process.
  
return values:
Return values:
  nil           word is correct or spelling is accepted.
  0             word is inserted into buffer-local definitions.
  \"word\"        word corrected from word list.
@@@ -16082,9 -16035,9 +16132,9 @@@ SPC:   Accept word this time
  `l':   Look up typed-in replacement in alternate dictionary.  Wildcards okay.
  `u':   Like `i', but the word is lower-cased first.
  `m':   Place typed-in value in personal dictionary, then recheck current word.
- `C-l':  redraws screen
- `C-r':  recursive edit
- `C-z':  suspend Emacs or iconify frame
+ `C-l':  Redraw screen.
+ `C-r':  Recursive edit.
+ `C-z':  Suspend Emacs or iconify frame.
  
  \(fn)" nil nil)
  
@@@ -16187,19 -16140,18 +16237,19 @@@ You can bind this to the key C-c i in G
  
  ;;;***
  \f
 -;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17838
 -;;;;;;  58217))
 +;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (17441
 +;;;;;;  26660))
  ;;; Generated autoloads from iswitchb.el
  
  (defvar iswitchb-mode nil "\
  Non-nil if Iswitchb mode is enabled.
  See the command `iswitchb-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `iswitchb-mode'.")
 +use either \\[customize] or the function `iswitchb-mode'.")
 +
 +(custom-autoload (quote iswitchb-mode) "iswitchb")
  
 -(custom-autoload (quote iswitchb-mode) "iswitchb" nil)
 +(put (quote iswitchb-mode) (quote custom-set) (quote custom-set-minor-mode))
  
  (autoload (quote iswitchb-mode) "iswitchb" "\
  Toggle Iswitchb global minor mode.
@@@ -16214,7 -16166,7 +16264,7 @@@ This mode enables switching between buf
  ;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
  ;;;;;;  japanese-hiragana-region japanese-katakana-region japanese-zenkaku
  ;;;;;;  japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
 -;;;;;;  "japan-util" "language/japan-util.el" (17851 10861))
 +;;;;;;  "japan-util" "language/japan-util.el" (17817 15478))
  ;;; Generated autoloads from language/japan-util.el
  
  (autoload (quote setup-japanese-environment-internal) "japan-util" "\
@@@ -16292,7 -16244,7 +16342,7 @@@ If non-nil, second arg INITIAL-INPUT i
  ;;;***
  \f
  ;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
 -;;;;;;  "jka-compr.el" (17853 24757))
 +;;;;;;  "jka-compr.el" (17817 13976))
  ;;; Generated autoloads from jka-compr.el
  
  (defvar jka-compr-inhibit nil "\
@@@ -16317,7 -16269,7 +16367,7 @@@ by `jka-compr-installed'
  \f
  ;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
  ;;;;;;  keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17390 26938))
  ;;; Generated autoloads from emulation/keypad.el
  
  (defvar keypad-setup nil "\
@@@ -16373,7 -16325,7 +16423,7 @@@ the decimal key on the keypad is mappe
  ;;;***
  \f
  ;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 15477))
  ;;; Generated autoloads from international/kinsoku.el
  
  (autoload (quote kinsoku) "kinsoku" "\
@@@ -16394,8 -16346,8 +16444,8 @@@ the context of text formatting
  
  ;;;***
  \f
 -;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17851
 -;;;;;;  10860))
 +;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (17817
 +;;;;;;  15477))
  ;;; Generated autoloads from international/kkc.el
  
  (defvar kkc-after-update-conversion-functions nil "\
@@@ -16420,7 -16372,7 +16470,7 @@@ and the return value is the length of t
  ;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
  ;;;;;;  kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
  ;;;;;;  kmacro-call-macro kmacro-end-macro kmacro-start-macro) "kmacro"
 -;;;;;;  "kmacro.el" (17851 10836))
 +;;;;;;  "kmacro.el" (17778 50473))
  ;;; Generated autoloads from kmacro.el
   (global-set-key "\C-x(" 'kmacro-start-macro)
   (global-set-key "\C-x)" 'kmacro-end-macro)
@@@ -16527,7 -16479,7 +16577,7 @@@ If kbd macro currently being defined en
  \f
  ;;;### (autoloads (kannada-post-read-conversion kannada-compose-string
  ;;;;;;  kannada-compose-region) "knd-util" "language/knd-util.el"
 -;;;;;;  (17851 10861))
 +;;;;;;  (17817 14145))
  ;;; Generated autoloads from language/knd-util.el
  
  (defconst kannada-consonant "[\x51f75-\x51fb9]")
@@@ -16550,7 -16502,7 +16600,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (setup-korean-environment-internal) "korea-util"
 -;;;;;;  "language/korea-util.el" (17851 10861))
 +;;;;;;  "language/korea-util.el" (17817 15478))
  ;;; Generated autoloads from language/korea-util.el
  
  (defvar default-korean-keyboard (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "") "\
@@@ -16565,7 -16517,7 +16615,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (lm lm-test-run) "landmark" "play/landmark.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17817 14125))
  ;;; Generated autoloads from play/landmark.el
  
  (defalias (quote landmark-repeat) (quote lm-test-run))
@@@ -16599,8 -16551,8 +16649,8 @@@ Use \\[describe-mode] for more info
  \f
  ;;;### (autoloads (lao-compose-region lao-composition-function lao-post-read-conversion
  ;;;;;;  lao-transcribe-roman-to-lao-string lao-transcribe-single-roman-syllable-to-lao
 -;;;;;;  lao-compose-string) "lao-util" "language/lao-util.el" (17851
 -;;;;;;  10861))
 +;;;;;;  lao-compose-string) "lao-util" "language/lao-util.el" (17817
 +;;;;;;  15478))
  ;;; Generated autoloads from language/lao-util.el
  
  (autoload (quote lao-compose-string) "lao-util" "\
@@@ -16649,7 -16601,7 +16699,7 @@@ Not documente
  \f
  ;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
  ;;;;;;  latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
 -;;;;;;  "latexenc" "international/latexenc.el" (17851 10860))
 +;;;;;;  "latexenc" "international/latexenc.el" (17713 5990))
  ;;; Generated autoloads from international/latexenc.el
  
  (defvar latex-inputenc-coding-alist (quote (("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\
@@@ -16681,7 -16633,7 +16731,7 @@@ coding system names is determined from 
  ;;;***
  \f
  ;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
 -;;;;;;  "latin1-disp" "international/latin1-disp.el" (17875 14313))
 +;;;;;;  "latin1-disp" "international/latin1-disp.el" (17817 14141))
  ;;; Generated autoloads from international/latin1-disp.el
  
  (defvar latin1-display nil "\
@@@ -16722,78 -16674,10 +16772,78 @@@ use either \\[customize] or the functio
  
  (custom-autoload (quote latin1-display-ucs-per-lynx) "latin1-disp" nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (turn-on-lazy-lock lazy-lock-mode) "lazy-lock"
 +;;;;;;  "obsolete/lazy-lock.el" (17383 38807))
 +;;; Generated autoloads from obsolete/lazy-lock.el
 +
 +(autoload (quote lazy-lock-mode) "lazy-lock" "\
 +Toggle Lazy Lock mode.
 +With arg, turn Lazy Lock mode on if and only if arg is positive.  Enable it
 +automatically in your `~/.emacs' by:
 +
 + (setq font-lock-support-mode 'lazy-lock-mode)
 +
 +For a newer font-lock support mode with similar functionality, see
 +`jit-lock-mode'.  Eventually, Lazy Lock mode will be deprecated in
 +JIT Lock's favor.
 +
 +When Lazy Lock mode is enabled, fontification can be lazy in a number of ways:
 +
 +- Demand-driven buffer fontification if `lazy-lock-minimum-size' is non-nil.
 +  This means initial fontification does not occur if the buffer is greater than
 +  `lazy-lock-minimum-size' characters in length.  Instead, fontification occurs
 +  when necessary, such as when scrolling through the buffer would otherwise
 +  reveal unfontified areas.  This is useful if buffer fontification is too slow
 +  for large buffers.
 +
 +- Deferred scroll fontification if `lazy-lock-defer-on-scrolling' is non-nil.
 +  This means demand-driven fontification does not occur as you scroll.
 +  Instead, fontification is deferred until after `lazy-lock-defer-time' seconds
 +  of Emacs idle time, while Emacs remains idle.  This is useful if
 +  fontification is too slow to keep up with scrolling.
 +
 +- Deferred on-the-fly fontification if `lazy-lock-defer-on-the-fly' is non-nil.
 +  This means on-the-fly fontification does not occur as you type.  Instead,
 +  fontification is deferred until after `lazy-lock-defer-time' seconds of Emacs
 +  idle time, while Emacs remains idle.  This is useful if fontification is too
 +  slow to keep up with your typing.
 +
 +- Deferred context fontification if `lazy-lock-defer-contextually' is non-nil.
 +  This means fontification updates the buffer corresponding to true syntactic
 +  context, after `lazy-lock-defer-time' seconds of Emacs idle time, while Emacs
 +  remains idle.  Otherwise, fontification occurs on modified lines only, and
 +  subsequent lines can remain fontified corresponding to previous syntactic
 +  contexts.  This is useful where strings or comments span lines.
 +
 +- Stealthy buffer fontification if `lazy-lock-stealth-time' is non-nil.
 +  This means remaining unfontified areas of buffers are fontified if Emacs has
 +  been idle for `lazy-lock-stealth-time' seconds, while Emacs remains idle.
 +  This is useful if any buffer has any deferred fontification.
 +
 +Basic Font Lock mode on-the-fly fontification behavior fontifies modified
 +lines only.  Thus, if `lazy-lock-defer-contextually' is non-nil, Lazy Lock mode
 +on-the-fly fontification may fontify differently, albeit correctly.  In any
 +event, to refontify some lines you can use \\[font-lock-fontify-block].
 +
 +Stealth fontification only occurs while the system remains unloaded.
 +If the system load rises above `lazy-lock-stealth-load' percent, stealth
 +fontification is suspended.  Stealth fontification intensity is controlled via
 +the variable `lazy-lock-stealth-nice' and `lazy-lock-stealth-lines', and
 +verbosity is controlled via the variable `lazy-lock-stealth-verbose'.
 +
 +\(fn &optional ARG)" t nil)
 +
 +(autoload (quote turn-on-lazy-lock) "lazy-lock" "\
 +Unconditionally turn on Lazy Lock mode.
 +
 +\(fn)" nil nil)
 +
  ;;;***
  \f
  ;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
 -;;;;;;  (17851 10868))
 +;;;;;;  (17817 14147))
  ;;; Generated autoloads from progmodes/ld-script.el
  
  (add-to-list (quote auto-mode-alist) (quote ("\\.ld[si]?\\>" . ld-script-mode)))
@@@ -16808,7 -16692,7 +16858,7 @@@ A major mode to edit GNU ld script file
  ;;;***
  \f
  ;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
 -;;;;;;  (17851 10837))
 +;;;;;;  (17817 13976))
  ;;; Generated autoloads from ledit.el
  
  (defconst ledit-save-files t "\
@@@ -16843,7 -16727,7 +16893,7 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (life) "life" "play/life.el" (17851 10866))
 +;;;### (autoloads (life) "life" "play/life.el" (17713 5990))
  ;;; Generated autoloads from play/life.el
  
  (autoload (quote life) "life" "\
@@@ -16856,8 -16740,8 +16906,8 @@@ generations (this defaults to 1)
  
  ;;;***
  \f
 -;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17871
 -;;;;;;  15753))
 +;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (17817
 +;;;;;;  13976))
  ;;; Generated autoloads from loadhist.el
  
  (autoload (quote unload-feature) "loadhist" "\
@@@ -16880,7 -16764,7 +16930,7 @@@ such as redefining an Emacs function
  ;;;***
  \f
  ;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
 -;;;;;;  "locate" "locate.el" (17851 10838))
 +;;;;;;  "locate" "locate.el" (17778 50475))
  ;;; Generated autoloads from locate.el
  
  (defvar locate-ls-subdir-switches "-al" "\
@@@ -16927,7 -16811,7 +16977,7 @@@ except that FILTER is not optional
  
  ;;;***
  \f
 -;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17851 10838))
 +;;;### (autoloads (log-edit) "log-edit" "log-edit.el" (17817 13976))
  ;;; Generated autoloads from log-edit.el
  
  (autoload (quote log-edit) "log-edit" "\
@@@ -16948,8 -16832,8 +16998,8 @@@ If BUFFER is non-nil `log-edit' will ju
  
  ;;;***
  \f
 -;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17851
 -;;;;;;  10838))
 +;;;### (autoloads (log-view-mode) "log-view" "log-view.el" (17496
 +;;;;;;  38723))
  ;;; Generated autoloads from log-view.el
  
  (autoload (quote log-view-mode) "log-view" "\
@@@ -16959,8 -16843,8 +17009,8 @@@ Major mode for browsing CVS log output
  
  ;;;***
  \f
 -;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17851
 -;;;;;;  10838))
 +;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (17778
 +;;;;;;  50475))
  ;;; Generated autoloads from longlines.el
  
  (autoload (quote longlines-mode) "longlines" "\
@@@ -16981,8 -16865,8 +17031,8 @@@ are indicated with a symbol
  ;;;***
  \f
  ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
 -;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17851
 -;;;;;;  10838))
 +;;;;;;  lpr-command lpr-switches printer-name) "lpr" "lpr.el" (17713
 +;;;;;;  5990))
  ;;; Generated autoloads from lpr.el
  
  (defvar lpr-windows-system (memq system-type (quote (emx win32 w32 mswindows ms-dos windows-nt))))
@@@ -17076,7 -16960,7 +17126,7 @@@ for further customization of the printe
  ;;;***
  \f
  ;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
 -;;;;;;  (17851 39451))
 +;;;;;;  (17817 13976))
  ;;; Generated autoloads from ls-lisp.el
  
  (defvar ls-lisp-support-shell-wildcards t "\
@@@ -17087,8 -16971,8 +17137,8 @@@ Otherwise they are treated as Emacs reg
  
  ;;;***
  \f
 -;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17851
 -;;;;;;  10852))
 +;;;### (autoloads (phases-of-moon) "lunar" "calendar/lunar.el" (17390
 +;;;;;;  27324))
  ;;; Generated autoloads from calendar/lunar.el
  
  (autoload (quote phases-of-moon) "lunar" "\
@@@ -17101,8 -16985,8 +17151,8 @@@ This function is suitable for executio
  
  ;;;***
  \f
 -;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17851
 -;;;;;;  10868))
 +;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (17390
 +;;;;;;  27408))
  ;;; Generated autoloads from progmodes/m4-mode.el
  
  (autoload (quote m4-mode) "m4-mode" "\
@@@ -17114,7 -16998,7 +17164,7 @@@ A major mode to edit m4 macro files
  ;;;***
  \f
  ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17390 26938))
  ;;; Generated autoloads from emacs-lisp/macroexp.el
  
  (autoload (quote macroexpand-all) "macroexp" "\
@@@ -17128,7 -17012,7 +17178,7 @@@ definitions to shadow the loaded ones f
  ;;;***
  \f
  ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
 -;;;;;;  name-last-kbd-macro) "macros" "macros.el" (17851 10838))
 +;;;;;;  name-last-kbd-macro) "macros" "macros.el" (17817 13976))
  ;;; Generated autoloads from macros.el
  
  (autoload (quote name-last-kbd-macro) "macros" "\
@@@ -17217,7 -17101,7 +17267,7 @@@ and then select the region of un-tablif
  ;;;***
  \f
  ;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
 -;;;;;;  "mail/mail-extr.el" (17851 10861))
 +;;;;;;  "mail/mail-extr.el" (17390 26942))
  ;;; Generated autoloads from mail/mail-extr.el
  
  (autoload (quote mail-extract-address-components) "mail-extr" "\
@@@ -17249,7 -17133,7 +17299,7 @@@ Convert mail domain DOMAIN to the count
  \f
  ;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
  ;;;;;;  mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17817 14119))
  ;;; Generated autoloads from mail/mail-hist.el
  
  (autoload (quote mail-hist-define-keys) "mail-hist" "\
@@@ -17280,8 -17164,8 +17330,8 @@@ This function normally would be called 
  \f
  ;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
  ;;;;;;  mail-unquote-printable mail-quote-printable mail-file-babyl-p
 -;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17851
 -;;;;;;  10862))
 +;;;;;;  mail-use-rfc822) "mail-utils" "mail/mail-utils.el" (17390
 +;;;;;;  26942))
  ;;; Generated autoloads from mail/mail-utils.el
  
  (defvar mail-use-rfc822 nil "\
@@@ -17333,7 -17217,7 +17383,7 @@@ If 4th arg LIST is non-nil, return a li
  ;;;***
  \f
  ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup)
 -;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17851 10862))
 +;;;;;;  "mailabbrev" "mail/mailabbrev.el" (17817 14119))
  ;;; Generated autoloads from mail/mailabbrev.el
  
  (autoload (quote mail-abbrevs-setup) "mailabbrev" "\
@@@ -17356,8 -17240,8 +17406,8 @@@ If DEFINITION contains multiple address
  ;;;***
  \f
  ;;;### (autoloads (mail-complete define-mail-alias expand-mail-aliases
 -;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (17851
 -;;;;;;  10862))
 +;;;;;;  mail-complete-style) "mailalias" "mail/mailalias.el" (17817
 +;;;;;;  14119))
  ;;; Generated autoloads from mail/mailalias.el
  
  (defvar mail-complete-style (quote angles) "\
@@@ -17403,7 -17287,7 +17453,7 @@@ current header, calls `mail-complete-fu
  ;;;***
  \f
  ;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17390 26942))
  ;;; Generated autoloads from mail/mailclient.el
  
  (autoload (quote mailclient-send-it) "mailclient" "\
@@@ -17417,7 -17301,7 +17467,7 @@@ The mail client is taken to be the hand
  \f
  ;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
  ;;;;;;  makefile-gmake-mode makefile-automake-mode makefile-mode)
 -;;;;;;  "make-mode" "progmodes/make-mode.el" (17851 10868))
 +;;;;;;  "make-mode" "progmodes/make-mode.el" (17713 5991))
  ;;; Generated autoloads from progmodes/make-mode.el
  
  (autoload (quote makefile-mode) "make-mode" "\
@@@ -17534,8 -17418,8 +17584,8 @@@ An adapted `makefile-mode' that knows a
  
  ;;;***
  \f
 -;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17851
 -;;;;;;  10838))
 +;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (17817
 +;;;;;;  13976))
  ;;; Generated autoloads from makesum.el
  
  (autoload (quote make-command-summary) "makesum" "\
@@@ -17546,7 -17430,7 +17596,7 @@@ Previous contents of that buffer are ki
  
  ;;;***
  \f
 -;;;### (autoloads (man-follow man) "man" "man.el" (17851 10838))
 +;;;### (autoloads (man-follow man) "man" "man.el" (17817 14146))
  ;;; Generated autoloads from man.el
  
  (defalias (quote manual-entry) (quote man))
@@@ -17573,7 -17457,7 +17623,7 @@@ Get a Un*x manual page of the item unde
  
  ;;;***
  \f
 -;;;### (autoloads (master-mode) "master" "master.el" (17851 10838))
 +;;;### (autoloads (master-mode) "master" "master.el" (17817 13976))
  ;;; Generated autoloads from master.el
  
  (autoload (quote master-mode) "master" "\
@@@ -17595,8 -17479,8 +17645,8 @@@ yourself the value of `master-of' by ca
  
  ;;;***
  \f
 -;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17851
 -;;;;;;  10838))
 +;;;### (autoloads (menu-bar-mode) "menu-bar" "menu-bar.el" (17817
 +;;;;;;  15287))
  ;;; Generated autoloads from menu-bar.el
  
  (put (quote menu-bar-mode) (quote standard-value) (quote (t)))
@@@ -17631,7 -17515,7 +17681,7 @@@ turn on menu bars; otherwise, turn off 
  ;;;;;;  message-cite-function message-yank-prefix message-citation-line-function
  ;;;;;;  message-send-mail-function message-user-organization-file
  ;;;;;;  message-signature-separator message-from-style) "message"
 -;;;;;;  "gnus/message.el" (17851 10858))
 +;;;;;;  "gnus/message.el" (17817 16940))
  ;;; Generated autoloads from gnus/message.el
  
  (defvar message-from-style (quote default) "\
@@@ -17885,7 -17769,7 +17935,7 @@@ which specify the range to operate on
  ;;;***
  \f
  ;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17390 27409))
  ;;; Generated autoloads from progmodes/meta-mode.el
  
  (autoload (quote metafont-mode) "meta-mode" "\
@@@ -17912,7 -17796,7 +17962,7 @@@ Turning on MetaPost mode calls the valu
  \f
  ;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
  ;;;;;;  metamail-interpret-header) "metamail" "mail/metamail.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17817 14119))
  ;;; Generated autoloads from mail/metamail.el
  
  (autoload (quote metamail-interpret-header) "metamail" "\
@@@ -17957,7 -17841,7 +18007,7 @@@ redisplayed as output is inserted
  \f
  ;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
  ;;;;;;  mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
 -;;;;;;  "mh-e/mh-comp.el" (17851 10863))
 +;;;;;;  "mh-e/mh-comp.el" (17713 5990))
  ;;; Generated autoloads from mh-e/mh-comp.el
  
  (autoload (quote mh-smail) "mh-comp" "\
@@@ -18044,7 -17928,7 +18094,7 @@@ delete the draft message
  
  ;;;***
  \f
 -;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17851 10863))
 +;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (17778 50475))
  ;;; Generated autoloads from mh-e/mh-e.el
  
  (put (quote mh-progs) (quote risky-local-variable) t)
@@@ -18061,7 -17945,7 +18111,7 @@@ Display version information about MH-E 
  ;;;***
  \f
  ;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
 -;;;;;;  "mh-e/mh-folder.el" (17851 10863))
 +;;;;;;  "mh-e/mh-folder.el" (17490 7902))
  ;;; Generated autoloads from mh-e/mh-folder.el
  
  (autoload (quote mh-rmail) "mh-folder" "\
@@@ -18143,7 -18027,7 +18193,7 @@@ perform the operation on all messages i
  ;;;***
  \f
  ;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
 -;;;;;;  "midnight.el" (17851 10838))
 +;;;;;;  "midnight.el" (17817 13976))
  ;;; Generated autoloads from midnight.el
  
  (autoload (quote clean-buffer-list) "midnight" "\
@@@ -18170,18 -18054,17 +18220,18 @@@ to its second argument TM
  ;;;***
  \f
  ;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
 -;;;;;;  "minibuf-eldef.el" (17851 10838))
 +;;;;;;  "minibuf-eldef.el" (17390 26943))
  ;;; Generated autoloads from minibuf-eldef.el
  
  (defvar minibuffer-electric-default-mode nil "\
  Non-nil if Minibuffer-Electric-Default mode is enabled.
  See the command `minibuffer-electric-default-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `minibuffer-electric-default-mode'.")
 +use either \\[customize] or the function `minibuffer-electric-default-mode'.")
 +
 +(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef")
  
 -(custom-autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" nil)
 +(put (quote minibuffer-electric-default-mode) (quote custom-set) (quote custom-set-minor-mode))
  
  (autoload (quote minibuffer-electric-default-mode) "minibuf-eldef" "\
  Toggle Minibuffer Electric Default mode.
@@@ -18199,7 -18082,7 +18249,7 @@@ Returns non-nil if the new state is ena
  ;;;***
  \f
  ;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17390 27409))
  ;;; Generated autoloads from progmodes/mixal-mode.el
  
  (autoload (quote mixal-mode) "mixal-mode" "\
@@@ -18214,7 -18097,7 +18264,7 @@@ Major mode for the mixal asm language
  \f
  ;;;### (autoloads (malayalam-composition-function malayalam-post-read-conversion
  ;;;;;;  malayalam-compose-region) "mlm-util" "language/mlm-util.el"
 -;;;;;;  (17851 10861))
 +;;;;;;  (17817 14145))
  ;;; Generated autoloads from language/mlm-util.el
  
  (autoload (quote malayalam-compose-region) "mlm-util" "\
@@@ -18237,7 -18120,7 +18287,7 @@@ PATTERN regexp
  ;;;***
  \f
  ;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
 -;;;;;;  "mm-extern" "gnus/mm-extern.el" (17851 10858))
 +;;;;;;  "mm-extern" "gnus/mm-extern.el" (17713 5203))
  ;;; Generated autoloads from gnus/mm-extern.el
  
  (autoload (quote mm-extern-cache-contents) "mm-extern" "\
@@@ -18256,7 -18139,7 +18306,7 @@@ If NO-DISPLAY is nil, display it. Other
  ;;;***
  \f
  ;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
 -;;;;;;  (17851 10858))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/mm-partial.el
  
  (autoload (quote mm-inline-partial) "mm-partial" "\
@@@ -18270,7 -18153,7 +18320,7 @@@ If NO-DISPLAY is nil, display it. Other
  ;;;***
  \f
  ;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
 -;;;;;;  "mm-url" "gnus/mm-url.el" (17851 10858))
 +;;;;;;  "mm-url" "gnus/mm-url.el" (17817 13970))
  ;;; Generated autoloads from gnus/mm-url.el
  
  (autoload (quote mm-url-insert-file-contents) "mm-url" "\
@@@ -18287,7 -18170,7 +18337,7 @@@ Insert file contents of URL using `mm-u
  ;;;***
  \f
  ;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
 -;;;;;;  "gnus/mm-uu.el" (17851 10858))
 +;;;;;;  "gnus/mm-uu.el" (17778 50473))
  ;;; Generated autoloads from gnus/mm-uu.el
  
  (autoload (quote mm-uu-dissect) "mm-uu" "\
@@@ -18307,7 -18190,7 +18357,7 @@@ Assume text has been decoded if DECODE
  ;;;***
  \f
  ;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
 -;;;;;;  (17851 10858))
 +;;;;;;  (17496 38719))
  ;;; Generated autoloads from gnus/mml1991.el
  
  (autoload (quote mml1991-encrypt) "mml1991" "\
@@@ -18324,7 -18207,7 +18374,7 @@@ Not documente
  \f
  ;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
  ;;;;;;  mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
 -;;;;;;  "mml2015" "gnus/mml2015.el" (17851 10858))
 +;;;;;;  "mml2015" "gnus/mml2015.el" (17778 50473))
  ;;; Generated autoloads from gnus/mml2015.el
  
  (autoload (quote mml2015-decrypt) "mml2015" "\
@@@ -18365,7 -18248,7 +18415,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (modula-2-mode) "modula2" "progmodes/modula2.el"
 -;;;;;;  (17504 41540))
 +;;;;;;  (17322 60488))
  ;;; Generated autoloads from progmodes/modula2.el
  
  (autoload (quote modula-2-mode) "modula2" "\
@@@ -18397,7 -18280,7 +18447,7 @@@ followed by the first character of the 
  ;;;***
  \f
  ;;;### (autoloads (unmorse-region morse-region) "morse" "play/morse.el"
 -;;;;;;  (17851 10866))
 +;;;;;;  (17817 14125))
  ;;; Generated autoloads from play/morse.el
  
  (autoload (quote morse-region) "morse" "\
@@@ -18412,8 -18295,8 +18462,8 @@@ Convert morse coded text in region to o
  
  ;;;***
  \f
 -;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17851
 -;;;;;;  10838))
 +;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (17817
 +;;;;;;  14147))
  ;;; Generated autoloads from mouse-sel.el
  
  (defvar mouse-sel-mode nil "\
@@@ -18465,7 -18348,7 +18515,7 @@@ primary selection and region
  
  ;;;***
  \f
 -;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17863 20633))
 +;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (17817 14125))
  ;;; Generated autoloads from play/mpuz.el
  
  (autoload (quote mpuz) "mpuz" "\
@@@ -18475,16 -18358,17 +18525,16 @@@ Multiplication puzzle with GNU Emacs
  
  ;;;***
  \f
 -;;;### (autoloads (msb-mode) "msb" "msb.el" (17851 10838))
 +;;;### (autoloads (msb-mode) "msb" "msb.el" (17569 17797))
  ;;; Generated autoloads from msb.el
  
  (defvar msb-mode nil "\
  Non-nil if Msb mode is enabled.
  See the command `msb-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `msb-mode'.")
 +use either \\[customize] or the function `msb-mode'.")
  
 -(custom-autoload (quote msb-mode) "msb" nil)
 +(custom-autoload (quote msb-mode) "msb")
  
  (autoload (quote msb-mode) "msb" "\
  Toggle Msb mode.
@@@ -18501,7 -18385,7 +18551,7 @@@ different buffer menu using the functio
  ;;;;;;  describe-current-coding-system describe-current-coding-system-briefly
  ;;;;;;  describe-coding-system describe-character-set list-charset-chars
  ;;;;;;  read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17817 15478))
  ;;; Generated autoloads from international/mule-diag.el
  
  (defvar non-iso-charset-alist (\` ((mac-roman (ascii latin-iso8859-1 mule-unicode-2500-33ff mule-unicode-0100-24ff mule-unicode-e000-ffff) mac-roman-decoder ((0 255))) (viscii (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-viscii-nonascii-translation-table ((0 255))) (vietnamese-tcvn (ascii vietnamese-viscii-lower vietnamese-viscii-upper) viet-tcvn-nonascii-translation-table ((0 255))) (koi8-r (ascii cyrillic-iso8859-5) cyrillic-koi8-r-nonascii-translation-table ((32 255))) (alternativnyj (ascii cyrillic-iso8859-5) cyrillic-alternativnyj-nonascii-translation-table ((32 255))) (koi8-u (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) cyrillic-koi8-u-nonascii-translation-table ((32 255))) (big5 (ascii chinese-big5-1 chinese-big5-2) decode-big5-char ((32 127) ((161 254) 64 126 161 254))) (sjis (ascii katakana-jisx0201 japanese-jisx0208) decode-sjis-char ((32 127 161 223) ((129 159 224 239) 64 126 128 252))))) "\
@@@ -18675,7 -18559,7 +18725,7 @@@ system which uses fontsets)
  ;;;;;;  coding-system-translation-table-for-decode coding-system-pre-write-conversion
  ;;;;;;  coding-system-post-read-conversion lookup-nested-alist set-nested-alist
  ;;;;;;  truncate-string-to-width store-substring string-to-sequence)
 -;;;;;;  "mule-util" "international/mule-util.el" (17851 10860))
 +;;;;;;  "mule-util" "international/mule-util.el" (17817 15478))
  ;;; Generated autoloads from international/mule-util.el
  
  (autoload (quote string-to-sequence) "mule-util" "\
@@@ -18804,16 -18688,17 +18854,16 @@@ basis, this may not be accurate
  ;;;***
  \f
  ;;;### (autoloads (mwheel-install mouse-wheel-mode) "mwheel" "mwheel.el"
 -;;;;;;  (17851 10838))
 +;;;;;;  (17505 62425))
  ;;; Generated autoloads from mwheel.el
  
  (defvar mouse-wheel-mode nil "\
  Non-nil if Mouse-Wheel mode is enabled.
  See the command `mouse-wheel-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `mouse-wheel-mode'.")
 +use either \\[customize] or the function `mouse-wheel-mode'.")
  
 -(custom-autoload (quote mouse-wheel-mode) "mwheel" nil)
 +(custom-autoload (quote mouse-wheel-mode) "mwheel")
  
  (autoload (quote mouse-wheel-mode) "mwheel" "\
  Toggle mouse wheel support.
@@@ -18832,7 -18717,7 +18882,7 @@@ Enable mouse wheel support
  ;;;### (autoloads (network-connection network-connection-to-service
  ;;;;;;  whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
  ;;;;;;  nslookup nslookup-host route arp netstat ipconfig ping traceroute)
 -;;;;;;  "net-utils" "net/net-utils.el" (17851 10863))
 +;;;;;;  "net-utils" "net/net-utils.el" (17390 26944))
  ;;; Generated autoloads from net/net-utils.el
  
  (autoload (quote traceroute) "net-utils" "\
@@@ -18928,7 -18813,7 +18978,7 @@@ Open a network connection to HOST on PO
  ;;;;;;  uncomment-region comment-kill comment-set-column comment-indent
  ;;;;;;  comment-indent-default comment-normalize-vars comment-multi-line
  ;;;;;;  comment-padding comment-style comment-column) "newcomment"
 -;;;;;;  "newcomment.el" (17851 10839))
 +;;;;;;  "newcomment.el" (17817 13976))
  ;;; Generated autoloads from newcomment.el
  
  (defalias (quote indent-for-comment) (quote comment-indent))
@@@ -19124,7 -19009,7 +19174,7 @@@ unless optional argument SOFT is non-ni
  \f
  ;;;### (autoloads (newsticker-show-news newsticker-start-ticker newsticker-start
  ;;;;;;  newsticker-ticker-running-p newsticker-running-p) "newsticker"
 -;;;;;;  "net/newsticker.el" (17873 60335))
 +;;;;;;  "net/newsticker.el" (17390 26944))
  ;;; Generated autoloads from net/newsticker.el
  
  (autoload (quote newsticker-running-p) "newsticker" "\
@@@ -19166,7 -19051,7 +19216,7 @@@ Switch to newsticker buffer.  You may w
  ;;;***
  \f
  ;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
 -;;;;;;  (17851 10858))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from gnus/nndiary.el
  
  (autoload (quote nndiary-generate-nov-databases) "nndiary" "\
@@@ -19176,8 -19061,8 +19226,8 @@@ Generate NOV databases in all nndiary d
  
  ;;;***
  \f
 -;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17851
 -;;;;;;  10859))
 +;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (17383
 +;;;;;;  38805))
  ;;; Generated autoloads from gnus/nndoc.el
  
  (autoload (quote nndoc-add-type) "nndoc" "\
@@@ -19192,7 -19077,7 +19242,7 @@@ symbol in the alist
  ;;;***
  \f
  ;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
 -;;;;;;  (17851 10859))
 +;;;;;;  (17390 27386))
  ;;; Generated autoloads from gnus/nnfolder.el
  
  (autoload (quote nnfolder-generate-active-file) "nnfolder" "\
@@@ -19204,7 -19089,7 +19254,7 @@@ This command does not work if you use s
  ;;;***
  \f
  ;;;### (autoloads (nnkiboze-generate-groups) "nnkiboze" "gnus/nnkiboze.el"
 -;;;;;;  (17851 10859))
 +;;;;;;  (17817 14138))
  ;;; Generated autoloads from gnus/nnkiboze.el
  
  (autoload (quote nnkiboze-generate-groups) "nnkiboze" "\
@@@ -19216,7 -19101,7 +19266,7 @@@ Finds out what articles are to be part 
  ;;;***
  \f
  ;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
 -;;;;;;  (17851 10859))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/nnml.el
  
  (autoload (quote nnml-generate-nov-databases) "nnml" "\
@@@ -19227,7 -19112,7 +19277,7 @@@ Generate NOV databases in all nnml dire
  ;;;***
  \f
  ;;;### (autoloads (nnsoup-revert-variables nnsoup-set-variables nnsoup-pack-replies)
 -;;;;;;  "nnsoup" "gnus/nnsoup.el" (17851 10859))
 +;;;;;;  "nnsoup" "gnus/nnsoup.el" (17778 50473))
  ;;; Generated autoloads from gnus/nnsoup.el
  
  (autoload (quote nnsoup-pack-replies) "nnsoup" "\
@@@ -19248,7 -19133,7 +19298,7 @@@ Revert posting and mailing methods to t
  ;;;***
  \f
  ;;;### (autoloads (disable-command enable-command disabled-command-function)
 -;;;;;;  "novice" "novice.el" (17851 10839))
 +;;;;;;  "novice" "novice.el" (17817 13976))
  ;;; Generated autoloads from novice.el
  
  (defvar disabled-command-function (quote disabled-command-function) "\
@@@ -19281,7 -19166,7 +19331,7 @@@ to future sessions
  ;;;***
  \f
  ;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17390 27169))
  ;;; Generated autoloads from textmodes/nroff-mode.el
  
  (autoload (quote nroff-mode) "nroff-mode" "\
@@@ -19296,7 -19181,7 +19346,7 @@@ closing requests for requests that are 
  ;;;***
  \f
  ;;;### (autoloads (octave-help) "octave-hlp" "progmodes/octave-hlp.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17390 27409))
  ;;; Generated autoloads from progmodes/octave-hlp.el
  
  (autoload (quote octave-help) "octave-hlp" "\
@@@ -19310,7 -19195,7 +19360,7 @@@ If KEY is not a string, prompt for it w
  ;;;***
  \f
  ;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17778 49132))
  ;;; Generated autoloads from progmodes/octave-inf.el
  
  (autoload (quote inferior-octave) "octave-inf" "\
@@@ -19333,7 -19218,7 +19383,7 @@@ startup file, `~/.emacs-octave'
  ;;;***
  \f
  ;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from progmodes/octave-mod.el
  
  (autoload (quote octave-mode) "octave-mod" "\
@@@ -19429,28 -19314,6 +19479,28 @@@ including a reproducible test case and 
  
  \(fn)" t nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (edit-options list-options) "options" "obsolete/options.el"
 +;;;;;;  (17817 14123))
 +;;; Generated autoloads from obsolete/options.el
 +
 +(autoload (quote list-options) "options" "\
 +Display a list of Emacs user options, with values and documentation.
 +It is now better to use Customize instead.
 +
 +\(fn)" t nil)
 +
 +(autoload (quote edit-options) "options" "\
 +Edit a list of Emacs user option values.
 +Selects a buffer containing such a list,
 +in which there are commands to set the option values.
 +Type \\[describe-mode] in that buffer for a list of commands.
 +
 +The Custom feature is intended to make this obsolete.
 +
 +\(fn)" t nil)
 +
  ;;;***
  \f
  ;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
  ;;;;;;  org-store-link org-tags-view org-diary org-cycle-agenda-files
  ;;;;;;  org-todo-list org-agenda-list org-batch-agenda org-agenda
  ;;;;;;  org-global-cycle org-cycle org-mode) "org" "textmodes/org.el"
 -;;;;;;  (17871 15754))
 +;;;;;;  (17817 15940))
  ;;; Generated autoloads from textmodes/org.el
  
  (autoload (quote org-mode) "org" "\
@@@ -19727,7 -19590,7 +19777,7 @@@ The file is stored under the name `org-
  ;;;***
  \f
  ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
 -;;;;;;  (17882 17519))
 +;;;;;;  (17817 16152))
  ;;; Generated autoloads from outline.el
  (put 'outline-regexp 'safe-local-variable 'string-or-null-p)
  
@@@ -19783,8 -19646,8 +19833,8 @@@ See the command `outline-mode' for mor
  
  ;;;***
  \f
 -;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17851
 -;;;;;;  10872))
 +;;;### (autoloads nil "paragraphs" "textmodes/paragraphs.el" (17496
 +;;;;;;  38721))
  ;;; Generated autoloads from textmodes/paragraphs.el
  (put 'paragraph-start 'safe-local-variable 'stringp)
  (put 'paragraph-separate 'safe-local-variable 'stringp)
  
  ;;;***
  \f
 -;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17851 10839))
 +;;;### (autoloads (show-paren-mode) "paren" "paren.el" (17778 50475))
  ;;; Generated autoloads from paren.el
  
  (defvar show-paren-mode nil "\
@@@ -19823,7 -19686,7 +19873,7 @@@ in `show-paren-style' after `show-paren
  ;;;***
  \f
  ;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17390 27324))
  ;;; Generated autoloads from calendar/parse-time.el
  
  (autoload (quote parse-time-string) "parse-time" "\
@@@ -19835,8 -19698,8 +19885,8 @@@ unknown are returned as nil
  
  ;;;***
  \f
 -;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17851
 -;;;;;;  10869))
 +;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (17390
 +;;;;;;  27409))
  ;;; Generated autoloads from progmodes/pascal.el
  
  (autoload (quote pascal-mode) "pascal" "\
@@@ -19889,7 -19752,7 +19939,7 @@@ no args, if that value is non-nil
  ;;;***
  \f
  ;;;### (autoloads (pc-bindings-mode) "pc-mode" "emulation/pc-mode.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emulation/pc-mode.el
  
  (autoload (quote pc-bindings-mode) "pc-mode" "\
@@@ -19907,18 -19770,17 +19957,18 @@@ C-Escape does list-buffers
  ;;;***
  \f
  ;;;### (autoloads (pc-selection-mode pc-selection-mode) "pc-select"
 -;;;;;;  "emulation/pc-select.el" (17851 10853))
 +;;;;;;  "emulation/pc-select.el" (17390 26938))
  ;;; Generated autoloads from emulation/pc-select.el
  
  (defvar pc-selection-mode nil "\
  Non-nil if Pc-Selection mode is enabled.
  See the command `pc-selection-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `pc-selection-mode'.")
 +use either \\[customize] or the function `pc-selection-mode'.")
 +
 +(custom-autoload (quote pc-selection-mode) "pc-select")
  
 -(custom-autoload (quote pc-selection-mode) "pc-select" nil)
 +(put (quote pc-selection-mode) (quote custom-set) (quote custom-set-minor-mode))
  
  (autoload (quote pc-selection-mode) "pc-select" "\
  Change mark behavior to emulate Motif, MAC or MS-Windows cut and paste style.
@@@ -19980,12 -19842,12 +20030,12 @@@ This mode enables Delete Selection mod
  Setting this variable directly does not take effect;
  you must modify it using \\[customize] or \\[pc-selection-mode].")
  
 -(custom-autoload (quote pc-selection-mode) "pc-select" nil)
 +(custom-autoload (quote pc-selection-mode) "pc-select")
  
  ;;;***
  \f
 -;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17851
 -;;;;;;  10839))
 +;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (17817
 +;;;;;;  13976))
  ;;; Generated autoloads from pcmpl-cvs.el
  
  (autoload (quote pcomplete/cvs) "pcmpl-cvs" "\
@@@ -19996,7 -19858,7 +20046,7 @@@ Completion rules for the `cvs' command
  ;;;***
  \f
  ;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
 -;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (17851 10839))
 +;;;;;;  "pcmpl-gnu" "pcmpl-gnu.el" (17817 13976))
  ;;; Generated autoloads from pcmpl-gnu.el
  
  (autoload (quote pcomplete/gzip) "pcmpl-gnu" "\
@@@ -20024,7 -19886,7 +20074,7 @@@ Completion for the GNU tar utility
  ;;;***
  \f
  ;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
 -;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (17851 10839))
 +;;;;;;  "pcmpl-linux" "pcmpl-linux.el" (17817 13976))
  ;;; Generated autoloads from pcmpl-linux.el
  
  (autoload (quote pcomplete/kill) "pcmpl-linux" "\
@@@ -20044,8 -19906,8 +20094,8 @@@ Completion for GNU/Linux `mount'
  
  ;;;***
  \f
 -;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17851
 -;;;;;;  10839))
 +;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (17817
 +;;;;;;  13976))
  ;;; Generated autoloads from pcmpl-rpm.el
  
  (autoload (quote pcomplete/rpm) "pcmpl-rpm" "\
@@@ -20061,7 -19923,7 +20111,7 @@@ You can use \\[eshell-report-bug] to d
  \f
  ;;;### (autoloads (pcomplete/chgrp pcomplete/chown pcomplete/which
  ;;;;;;  pcomplete/xargs pcomplete/rm pcomplete/rmdir pcomplete/cd)
 -;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (17851 10839))
 +;;;;;;  "pcmpl-unix" "pcmpl-unix.el" (17817 13976))
  ;;; Generated autoloads from pcmpl-unix.el
  
  (autoload (quote pcomplete/cd) "pcmpl-unix" "\
@@@ -20107,8 -19969,8 +20157,8 @@@ Completion for the `chgrp' command
  \f
  ;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
  ;;;;;;  pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
 -;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17851
 -;;;;;;  10839))
 +;;;;;;  pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (17466
 +;;;;;;  27845))
  ;;; Generated autoloads from pcomplete.el
  
  (autoload (quote pcomplete) "pcomplete" "\
@@@ -20167,7 -20029,7 +20217,7 @@@ Setup shell-mode to use pcomplete
  \f
  ;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
  ;;;;;;  cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
 -;;;;;;  "pcvs.el" (17851 10840))
 +;;;;;;  "pcvs.el" (17817 13976))
  ;;; Generated autoloads from pcvs.el
  
  (autoload (quote cvs-checkout) "pcvs" "\
@@@ -20244,7 -20106,7 +20294,7 @@@ The exact behavior is determined also b
  
  ;;;***
  \f
 -;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17851 10839))
 +;;;### (autoloads nil "pcvs-defs" "pcvs-defs.el" (17817 13976))
  ;;; Generated autoloads from pcvs-defs.el
  
  (defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] (quote (menu-item "Directory Status" cvs-status :help "A more verbose status of a workarea"))) (define-key m [checkout] (quote (menu-item "Checkout Module" cvs-checkout :help "Check out a module from the repository"))) (define-key m [update] (quote (menu-item "Update Directory" cvs-update :help "Fetch updates from the repository"))) (define-key m [examine] (quote (menu-item "Examine Directory" cvs-examine :help "Examine the current state of a workarea"))) (fset (quote cvs-global-menu) m)))
  ;;;***
  \f
  ;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17499 10453))
  ;;; Generated autoloads from progmodes/perl-mode.el
  
  (autoload (quote perl-mode) "perl-mode" "\
@@@ -20310,7 -20172,7 +20360,7 @@@ Turning on Perl mode runs the normal ho
  ;;;### (autoloads (pgg-snarf-keys pgg-snarf-keys-region pgg-insert-key
  ;;;;;;  pgg-verify pgg-verify-region pgg-sign pgg-sign-region pgg-decrypt
  ;;;;;;  pgg-decrypt-region pgg-encrypt pgg-encrypt-symmetric pgg-encrypt-symmetric-region
 -;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (17851 10840))
 +;;;;;;  pgg-encrypt-region) "pgg" "pgg.el" (17713 5990))
  ;;; Generated autoloads from pgg.el
  
  (autoload (quote pgg-encrypt-region) "pgg" "\
@@@ -20444,7 -20306,7 +20494,7 @@@ Import public keys in the current buffe
  ;;;***
  \f
  ;;;### (autoloads (pgg-gpg-symmetric-key-p) "pgg-gpg" "pgg-gpg.el"
 -;;;;;;  (17887 6558))
 +;;;;;;  (17817 16940))
  ;;; Generated autoloads from pgg-gpg.el
  
  (autoload (quote pgg-gpg-symmetric-key-p) "pgg-gpg" "\
@@@ -20455,7 -20317,7 +20505,7 @@@ True if decoded armor MESSAGE-KEYS has 
  ;;;***
  \f
  ;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17817 14128))
  ;;; Generated autoloads from textmodes/picture.el
  
  (autoload (quote picture-mode) "picture" "\
@@@ -20536,7 -20398,7 +20586,7 @@@ they are not defaultly assigned to keys
  ;;;***
  \f
  ;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17611 9183))
  ;;; Generated autoloads from textmodes/po.el
  
  (autoload (quote po-find-file-coding-system) "po" "\
@@@ -20547,7 -20409,7 +20597,7 @@@ Called through `file-coding-system-alis
  
  ;;;***
  \f
 -;;;### (autoloads (pong) "pong" "play/pong.el" (17851 10866))
 +;;;### (autoloads (pong) "pong" "play/pong.el" (17549 5052))
  ;;; Generated autoloads from play/pong.el
  
  (autoload (quote pong) "pong" "\
@@@ -20564,7 -20426,7 +20614,7 @@@ pong-mode keybindings:\\<pong-mode-map
  ;;;***
  \f
  ;;;### (autoloads (pp-eval-last-sexp pp-eval-expression pp pp-buffer
 -;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (17852 50694))
 +;;;;;;  pp-to-string) "pp" "emacs-lisp/pp.el" (17778 50473))
  ;;; Generated autoloads from emacs-lisp/pp.el
  
  (autoload (quote pp-to-string) "pp" "\
@@@ -20620,7 -20482,7 +20670,7 @@@ Ignores leading comment characters
  ;;;;;;  pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
  ;;;;;;  pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
  ;;;;;;  pr-ps-directory-preview pr-interface) "printing" "printing.el"
 -;;;;;;  (17866 27909))
 +;;;;;;  (17817 13971))
  ;;; Generated autoloads from printing.el
  
  (autoload (quote pr-interface) "printing" "\
@@@ -21208,7 -21070,7 +21258,7 @@@ are both set to t
  ;;;***
  \f
  ;;;### (autoloads (switch-to-prolog prolog-mode) "prolog" "progmodes/prolog.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17713 5991))
  ;;; Generated autoloads from progmodes/prolog.el
  
  (autoload (quote prolog-mode) "prolog" "\
@@@ -21231,7 -21093,7 +21281,7 @@@ With prefix argument \\[universal-prefi
  
  ;;;***
  \f
 -;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17851 10840))
 +;;;### (autoloads nil "ps-bdf" "ps-bdf.el" (17817 15478))
  ;;; Generated autoloads from ps-bdf.el
  
  (defvar bdf-directory-list (if (memq system-type (quote (ms-dos windows-nt))) (list (expand-file-name "fonts/bdf" installation-directory)) (quote ("/usr/local/share/emacs/fonts/bdf"))) "\
@@@ -21240,8 -21102,8 +21290,8 @@@ The default value is '(\"/usr/local/sha
  
  ;;;***
  \f
 -;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17851
 -;;;;;;  10869))
 +;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (17390
 +;;;;;;  27409))
  ;;; Generated autoloads from progmodes/ps-mode.el
  
  (autoload (quote ps-mode) "ps-mode" "\
@@@ -21290,7 -21152,7 +21340,7 @@@ Typing \\<ps-run-mode-map>\\[ps-run-got
  ;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string
  ;;;;;;  ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string
  ;;;;;;  ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer)
 -;;;;;;  "ps-mule" "ps-mule.el" (17851 10840))
 +;;;;;;  "ps-mule" "ps-mule.el" (17817 13971))
  ;;; Generated autoloads from ps-mule.el
  
  (defvar ps-multibyte-buffer nil "\
@@@ -21411,8 -21273,8 +21461,8 @@@ Not documente
  ;;;;;;  ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
  ;;;;;;  ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
  ;;;;;;  ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
 -;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17880
 -;;;;;;  31192))
 +;;;;;;  ps-page-dimensions-database) "ps-print" "ps-print.el" (17817
 +;;;;;;  13971))
  ;;; Generated autoloads from ps-print.el
  
  (defvar ps-page-dimensions-database (list (list (quote a4) (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list (quote a3) (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list (quote letter) (* 72 8.5) (* 72 11.0) "Letter") (list (quote legal) (* 72 8.5) (* 72 14.0) "Legal") (list (quote letter-small) (* 72 7.68) (* 72 10.16) "LetterSmall") (list (quote tabloid) (* 72 11.0) (* 72 17.0) "Tabloid") (list (quote ledger) (* 72 17.0) (* 72 11.0) "Ledger") (list (quote statement) (* 72 5.5) (* 72 8.5) "Statement") (list (quote executive) (* 72 7.5) (* 72 10.0) "Executive") (list (quote a4small) (* 72 7.47) (* 72 10.85) "A4Small") (list (quote b4) (* 72 10.125) (* 72 14.33) "B4") (list (quote b5) (* 72 7.16) (* 72 10.125) "B5")) "\
@@@ -21609,7 -21471,7 +21659,7 @@@ If EXTENSION is any other symbol, it i
  ;;;***
  \f
  ;;;### (autoloads (jython-mode python-mode run-python) "python" "progmodes/python.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17817 13957))
  ;;; Generated autoloads from progmodes/python.el
  
  (add-to-list (quote interpreter-mode-alist) (quote ("jython" . jython-mode)))
@@@ -21684,7 -21546,7 +21734,7 @@@ Runs `jython-mode-hook' after `python-m
  ;;;***
  \f
  ;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
 -;;;;;;  (17851 10859))
 +;;;;;;  (17407 3112))
  ;;; Generated autoloads from gnus/qp.el
  
  (autoload (quote quoted-printable-decode-region) "qp" "\
@@@ -21707,7 -21569,7 +21757,7 @@@ them into characters should be done sep
  ;;;;;;  quail-defrule quail-install-decode-map quail-install-map
  ;;;;;;  quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
  ;;;;;;  quail-define-package quail-use-package quail-title) "quail"
 -;;;;;;  "international/quail.el" (17859 27906))
 +;;;;;;  "international/quail.el" (17817 15478))
  ;;; Generated autoloads from international/quail.el
  
  (autoload (quote quail-title) "quail" "\
@@@ -21938,8 -21800,8 +21988,8 @@@ of each directory
  \f
  ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
  ;;;;;;  quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
 -;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17851
 -;;;;;;  10864))
 +;;;;;;  quickurl-ask quickurl) "quickurl" "net/quickurl.el" (17390
 +;;;;;;  26944))
  ;;; Generated autoloads from net/quickurl.el
  
  (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
@@@ -22011,7 -21873,7 +22061,7 @@@ Display `quickurl-list' as a formatted 
  ;;;***
  \f
  ;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
 -;;;;;;  "net/rcirc.el" (17851 10864))
 +;;;;;;  "net/rcirc.el" (17778 50475))
  ;;; Generated autoloads from net/rcirc.el
  
  (autoload (quote rcirc) "rcirc" "\
@@@ -22043,8 -21905,8 +22093,8 @@@ Global minor mode for tracking activit
  
  ;;;***
  \f
 -;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17851
 -;;;;;;  10864))
 +;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (17817
 +;;;;;;  14122))
  ;;; Generated autoloads from net/rcompile.el
  
  (autoload (quote remote-compile) "rcompile" "\
@@@ -22056,7 -21918,7 +22106,7 @@@ See \\[compile]
  ;;;***
  \f
  ;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from emacs-lisp/re-builder.el
  
  (defalias (quote regexp-builder) (quote re-builder))
@@@ -22068,7 -21930,7 +22118,7 @@@ Construct a regexp interactively
  
  ;;;***
  \f
 -;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17851 10841))
 +;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (17778 48817))
  ;;; Generated autoloads from recentf.el
  
  (defvar recentf-mode nil "\
@@@ -22095,8 -21957,8 +22145,8 @@@ that were operated on recently
  ;;;### (autoloads (clear-rectangle string-insert-rectangle string-rectangle
  ;;;;;;  delete-whitespace-rectangle open-rectangle insert-rectangle
  ;;;;;;  yank-rectangle kill-rectangle extract-rectangle delete-extract-rectangle
 -;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (17851
 -;;;;;;  10841))
 +;;;;;;  delete-rectangle move-to-column-force) "rect" "rect.el" (17713
 +;;;;;;  5306))
  ;;; Generated autoloads from rect.el
  
  (autoload (quote move-to-column-force) "rect" "\
@@@ -22224,8 -22086,8 +22274,8 @@@ rectangle which were empty
  
  ;;;***
  \f
 -;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17851
 -;;;;;;  10872))
 +;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (17817
 +;;;;;;  14128))
  ;;; Generated autoloads from textmodes/refill.el
  
  (autoload (quote refill-mode) "refill" "\
@@@ -22241,7 -22103,7 +22291,7 @@@ refilling if they would cause auto-fill
  ;;;***
  \f
  ;;;### (autoloads (reftex-reset-scanning-information reftex-mode
 -;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17851 10872))
 +;;;;;;  turn-on-reftex) "reftex" "textmodes/reftex.el" (17405 10316))
  ;;; Generated autoloads from textmodes/reftex.el
  
  (autoload (quote turn-on-reftex) "reftex" "\
@@@ -22291,7 -22153,7 +22341,7 @@@ This enforces rescanning the buffer on 
  ;;;***
  \f
  ;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17817 14128))
  ;;; Generated autoloads from textmodes/reftex-cite.el
  
  (autoload (quote reftex-citation) "reftex-cite" "\
@@@ -22321,7 -22183,7 +22371,7 @@@ While entering the regexp, completion o
  ;;;***
  \f
  ;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17817 14128))
  ;;; Generated autoloads from textmodes/reftex-global.el
  
  (autoload (quote reftex-isearch-minor-mode) "reftex-global" "\
@@@ -22338,7 -22200,7 +22388,7 @@@ With no argument, this command toggle
  ;;;***
  \f
  ;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17817 14128))
  ;;; Generated autoloads from textmodes/reftex-index.el
  
  (autoload (quote reftex-index-phrases-mode) "reftex-index" "\
@@@ -22371,7 -22233,7 +22421,7 @@@ Here are all local bindings
  ;;;***
  \f
  ;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
 -;;;;;;  (17851 10872))
 +;;;;;;  (17817 14128))
  ;;; Generated autoloads from textmodes/reftex-parse.el
  
  (autoload (quote reftex-all-document-files) "reftex-parse" "\
@@@ -22383,8 -22245,8 +22433,8 @@@ of master file
  
  ;;;***
  \f
 -;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17851
 -;;;;;;  10872))
 +;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (17817
 +;;;;;;  14129))
  ;;; Generated autoloads from textmodes/reftex-vars.el
  (put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
  (put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
  ;;;***
  \f
  ;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emacs-lisp/regexp-opt.el
  
  (autoload (quote regexp-opt) "regexp-opt" "\
@@@ -22421,7 -22283,7 +22471,7 @@@ This means the number of non-shy regex
  
  ;;;***
  \f
 -;;;### (autoloads (repeat) "repeat" "repeat.el" (17851 10841))
 +;;;### (autoloads (repeat) "repeat" "repeat.el" (17817 13977))
  ;;; Generated autoloads from repeat.el
  
  (autoload (quote repeat) "repeat" "\
@@@ -22439,7 -22301,7 +22489,7 @@@ can be modified by the global variable 
  ;;;***
  \f
  ;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17817 14120))
  ;;; Generated autoloads from mail/reporter.el
  
  (autoload (quote reporter-submit-bug-report) "reporter" "\
@@@ -22471,7 -22333,7 +22521,7 @@@ mail-sending package is used for editin
  ;;;***
  \f
  ;;;### (autoloads (reposition-window) "reposition" "reposition.el"
 -;;;;;;  (17851 10841))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from reposition.el
  
  (autoload (quote reposition-window) "reposition" "\
@@@ -22498,8 -22360,8 +22548,8 @@@ first comment line visible (if point i
  
  ;;;***
  \f
 -;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17851
 -;;;;;;  10841))
 +;;;### (autoloads (resume-suspend-hook) "resume" "resume.el" (17817
 +;;;;;;  13977))
  ;;; Generated autoloads from resume.el
  
  (autoload (quote resume-suspend-hook) "resume" "\
@@@ -22510,7 -22372,7 +22560,7 @@@ Clear out the file used for transmittin
  ;;;***
  \f
  ;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
 -;;;;;;  (17851 10841))
 +;;;;;;  (17496 38723))
  ;;; Generated autoloads from reveal.el
  
  (autoload (quote reveal-mode) "reveal" "\
@@@ -22527,9 -22389,10 +22577,9 @@@ With zero or negative ARG turn mode off
  Non-nil if Global-Reveal mode is enabled.
  See the command `global-reveal-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `global-reveal-mode'.")
 +use either \\[customize] or the function `global-reveal-mode'.")
  
 -(custom-autoload (quote global-reveal-mode) "reveal" nil)
 +(custom-autoload (quote global-reveal-mode) "reveal")
  
  (autoload (quote global-reveal-mode) "reveal" "\
  Toggle Reveal mode in all buffers on or off.
@@@ -22544,7 -22407,7 +22594,7 @@@ With zero or negative ARG turn mode off
  ;;;***
  \f
  ;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emacs-lisp/ring.el
  
  (autoload (quote ring-p) "ring" "\
@@@ -22559,7 -22422,7 +22609,7 @@@ Make a ring that can contain SIZE eleme
  
  ;;;***
  \f
 -;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17851 10864))
 +;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (17817 14122))
  ;;; Generated autoloads from net/rlogin.el
   (add-hook 'same-window-regexps "^\\*rlogin-.*\\*\\(\\|<[0-9]+>\\)")
  
@@@ -22610,8 -22473,8 +22660,8 @@@ variable
  ;;;;;;  rmail-mail-new-frame rmail-primary-inbox-list rmail-delete-after-output
  ;;;;;;  rmail-highlight-face rmail-highlighted-headers rmail-retry-ignored-headers
  ;;;;;;  rmail-displayed-headers rmail-ignored-headers rmail-dont-reply-to-names
 -;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17851
 -;;;;;;  10862))
 +;;;;;;  rmail-movemail-variant-p) "rmail" "mail/rmail.el" (17778
 +;;;;;;  50475))
  ;;; Generated autoloads from mail/rmail.el
  
  (autoload (quote rmail-movemail-variant-p) "rmail" "\
@@@ -22876,7 -22739,7 +22926,7 @@@ Set PASSWORD to be used for retrieving 
  ;;;***
  \f
  ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "mail/rmailedit.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17390 26943))
  ;;; Generated autoloads from mail/rmailedit.el
  
  (autoload (quote rmail-edit-current-message) "rmailedit" "\
@@@ -22888,7 -22751,7 +22938,7 @@@ Edit the contents of this message
  \f
  ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
  ;;;;;;  rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
 -;;;;;;  "mail/rmailkwd.el" (17851 10862))
 +;;;;;;  "mail/rmailkwd.el" (17390 26943))
  ;;; Generated autoloads from mail/rmailkwd.el
  
  (autoload (quote rmail-add-label) "rmailkwd" "\
@@@ -22927,7 -22790,7 +22977,7 @@@ With prefix argument N moves forward N 
  ;;;***
  \f
  ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "mail/rmailmsc.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17817 14120))
  ;;; Generated autoloads from mail/rmailmsc.el
  
  (autoload (quote set-rmail-inbox-list) "rmailmsc" "\
@@@ -22941,7 -22804,7 +22991,7 @@@ If FILE-NAME is empty, remove any exist
  \f
  ;;;### (autoloads (rmail-output-body-to-file rmail-output rmail-fields-not-to-output
  ;;;;;;  rmail-output-to-rmail-file rmail-output-file-alist) "rmailout"
 -;;;;;;  "mail/rmailout.el" (17851 10862))
 +;;;;;;  "mail/rmailout.el" (17778 50475))
  ;;; Generated autoloads from mail/rmailout.el
  
  (defvar rmail-output-file-alist nil "\
@@@ -23008,8 -22871,8 +23058,8 @@@ FILE-NAME defaults, interactively, fro
  \f
  ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
  ;;;;;;  rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
 -;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17851
 -;;;;;;  10862))
 +;;;;;;  rmail-sort-by-date) "rmailsort" "mail/rmailsort.el" (17390
 +;;;;;;  26943))
  ;;; Generated autoloads from mail/rmailsort.el
  
  (autoload (quote rmail-sort-by-date) "rmailsort" "\
@@@ -23061,18 -22924,18 +23111,18 @@@ KEYWORDS is a comma-separated list of l
  ;;;;;;  rmail-summary-by-senders rmail-summary-by-topic rmail-summary-by-regexp
  ;;;;;;  rmail-summary-by-recipients rmail-summary-by-labels rmail-summary
  ;;;;;;  rmail-summary-line-count-flag rmail-summary-scroll-between-messages)
 -;;;;;;  "rmailsum" "mail/rmailsum.el" (17851 10862))
 +;;;;;;  "rmailsum" "mail/rmailsum.el" (17427 42815))
  ;;; Generated autoloads from mail/rmailsum.el
  
  (defvar rmail-summary-scroll-between-messages t "\
  *Non-nil means Rmail summary scroll commands move between messages.")
  
 -(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum" t)
 +(custom-autoload (quote rmail-summary-scroll-between-messages) "rmailsum")
  
  (defvar rmail-summary-line-count-flag t "\
  *Non-nil means Rmail summary should show the number of lines in each message.")
  
 -(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum" t)
 +(custom-autoload (quote rmail-summary-line-count-flag) "rmailsum")
  
  (autoload (quote rmail-summary) "rmailsum" "\
  Display a summary of all messages, one line per message.
@@@ -23138,25 -23001,12 +23188,25 @@@ Then it should be a regexp matching you
  
  Setting this variable has an effect only before reading a mail.")
  
 -(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum" t)
 +(custom-autoload (quote rmail-user-mail-address-regexp) "rmailsum")
 +
 +;;;***
 +\f
 +;;;### (autoloads (news-post-news) "rnewspost" "obsolete/rnewspost.el"
 +;;;;;;  (17817 14123))
 +;;; Generated autoloads from obsolete/rnewspost.el
 +
 +(autoload (quote news-post-news) "rnewspost" "\
 +Begin editing a new USENET news article to be posted.
 +Type \\[describe-mode] once editing the article to get a list of commands.
 +If NOQUERY is non-nil, we do not query before doing the work.
 +
 +\(fn &optional NOQUERY)" t nil)
  
  ;;;***
  \f
  ;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
 -;;;;;;  rot13-string rot13) "rot13" "rot13.el" (17851 10841))
 +;;;;;;  rot13-string rot13) "rot13" "rot13.el" (17817 13977))
  ;;; Generated autoloads from rot13.el
  
  (autoload (quote rot13) "rot13" "\
@@@ -23193,52 -23043,8 +23243,52 @@@ Toggle the use of ROT13 encoding for th
  
  ;;;***
  \f
 -;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17851
 -;;;;;;  10841))
 +;;;### (autoloads (resize-minibuffer-mode resize-minibuffer-frame-exactly
 +;;;;;;  resize-minibuffer-frame-max-height resize-minibuffer-frame
 +;;;;;;  resize-minibuffer-window-exactly resize-minibuffer-window-max-height
 +;;;;;;  resize-minibuffer-mode) "rsz-mini" "obsolete/rsz-mini.el"
 +;;;;;;  (17817 14123))
 +;;; Generated autoloads from obsolete/rsz-mini.el
 +
 +(defvar resize-minibuffer-mode nil "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-mode) "rsz-mini" t)
 +
 +(defvar resize-minibuffer-window-max-height nil "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-window-max-height) "rsz-mini" t)
 +
 +(defvar resize-minibuffer-window-exactly t "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-window-exactly) "rsz-mini" t)
 +
 +(defvar resize-minibuffer-frame nil "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-frame) "rsz-mini" t)
 +
 +(defvar resize-minibuffer-frame-max-height nil "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-frame-max-height) "rsz-mini" t)
 +
 +(defvar resize-minibuffer-frame-exactly t "\
 +*This variable is obsolete.")
 +
 +(custom-autoload (quote resize-minibuffer-frame-exactly) "rsz-mini" t)
 +
 +(autoload (quote resize-minibuffer-mode) "rsz-mini" "\
 +This function is obsolete.
 +
 +\(fn &optional PREFIX)" t nil)
 +
 +;;;***
 +\f
 +;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (17778
 +;;;;;;  50476))
  ;;; Generated autoloads from ruler-mode.el
  
  (autoload (quote ruler-mode) "ruler-mode" "\
@@@ -23248,8 -23054,8 +23298,8 @@@ Display a ruler in the header line if A
  
  ;;;***
  \f
 -;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17851
 -;;;;;;  10853))
 +;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (17418
 +;;;;;;  6751))
  ;;; Generated autoloads from emacs-lisp/rx.el
  
  (autoload (quote rx-to-string) "rx" "\
@@@ -23557,7 -23363,7 +23607,7 @@@ enclosed in `(and ...)'
  ;;;***
  \f
  ;;;### (autoloads (savehist-mode savehist-mode) "savehist" "savehist.el"
 -;;;;;;  (17851 10841))
 +;;;;;;  (17466 28165))
  ;;; Generated autoloads from savehist.el
  
  (defvar savehist-mode nil "\
@@@ -23583,7 -23389,7 +23633,7 @@@ which is probably undesirable
  ;;;***
  \f
  ;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
 -;;;;;;  (17851 10869))
 +;;;;;;  (17390 27409))
  ;;; Generated autoloads from progmodes/scheme.el
  
  (autoload (quote scheme-mode) "scheme" "\
@@@ -23625,7 -23431,7 +23675,7 @@@ that variable's value is a string
  ;;;***
  \f
  ;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
 -;;;;;;  (17851 10859))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/score-mode.el
  
  (autoload (quote gnus-score-mode) "score-mode" "\
@@@ -23636,35 -23442,10 +23686,35 @@@ This mode is an extended emacs-lisp mod
  
  \(fn)" t nil)
  
 +;;;***
 +\f
 +;;;### (autoloads (scribe-mode) "scribe" "obsolete/scribe.el" (17817
 +;;;;;;  14123))
 +;;; Generated autoloads from obsolete/scribe.el
 +
 +(autoload (quote scribe-mode) "scribe" "\
 +Major mode for editing files of Scribe (a text formatter) source.
 +Scribe-mode is similar to text-mode, with a few extra commands added.
 +\\{scribe-mode-map}
 +
 +Interesting variables:
 +
 +`scribe-fancy-paragraphs'
 +  Non-nil makes Scribe mode use a different style of paragraph separation.
 +
 +`scribe-electric-quote'
 +  Non-nil makes insert of double quote use `` or '' depending on context.
 +
 +`scribe-electric-parenthesis'
 +  Non-nil makes an open-parenthesis char (one of `([<{')
 +  automatically insert its close if typed after an @Command form.
 +
 +\(fn)" t nil)
 +
  ;;;***
  \f
  ;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
 -;;;;;;  (17851 10841))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from scroll-all.el
  
  (defvar scroll-all-mode nil "\
@@@ -23687,7 -23468,7 +23737,7 @@@ apply to all visible windows in the sam
  ;;;***
  \f
  ;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
 -;;;;;;  (17851 10842))
 +;;;;;;  (17390 26945))
  ;;; Generated autoloads from scroll-lock.el
  
  (autoload (quote scroll-lock-mode) "scroll-lock" "\
@@@ -23709,7 -23490,7 +23759,7 @@@ during scrolling
  ;;;;;;  mail-alias-file mail-default-reply-to mail-archive-file-name
  ;;;;;;  mail-header-separator send-mail-function mail-interactive
  ;;;;;;  mail-self-blind mail-specify-envelope-from mail-from-style)
 -;;;;;;  "sendmail" "mail/sendmail.el" (17851 10862))
 +;;;;;;  "sendmail" "mail/sendmail.el" (17713 5990))
  ;;; Generated autoloads from mail/sendmail.el
  
  (defvar mail-from-style (quote angles) "\
@@@ -24009,19 -23790,19 +24059,19 @@@ Like `mail' command, but display mail b
  
  ;;;***
  \f
 -;;;### (autoloads (server-mode server-start) "server" "server.el"
 -;;;;;;  (17851 42899))
 +;;;### (autoloads (server-save-buffers-kill-terminal server-mode
 +;;;;;;  server-start) "server" "server.el" (17778 59051))
  ;;; Generated autoloads from server.el
  
  (autoload (quote server-start) "server" "\
  Allow this Emacs process to be a server for client processes.
  This starts a server communications subprocess through which
 -client \"editors\" can send your editing commands to this Emacs job.
 -To use the server, set up the program `emacsclient' in the
 +client \"editors\" can send your editing commands to this Emacs
 +job.  To use the server, set up the program `emacsclient' in the
  Emacs distribution as your standard \"editor\".
  
 -Optional argument LEAVE-DEAD (interactively, a prefix arg) means just
 -kill any existing server communications subprocess.
 +Prefix arg LEAVE-DEAD means just kill any existing server
 +communications subprocess.
  
  \(fn &optional LEAVE-DEAD)" t nil)
  
@@@ -24042,19 -23823,9 +24092,19 @@@ Server mode runs a process that accept
  
  \(fn &optional ARG)" t nil)
  
 +(autoload (quote server-save-buffers-kill-terminal) "server" "\
 +Offer to save each buffer, then kill PROC.
 +
 +With prefix arg, silently save all file-visiting buffers, then kill.
 +
 +If emacsclient was started with a list of filenames to edit, then
 +only these files will be asked to be saved.
 +
 +\(fn PROC &optional ARG)" nil nil)
 +
  ;;;***
  \f
 -;;;### (autoloads (ses-mode) "ses" "ses.el" (17851 10843))
 +;;;### (autoloads (ses-mode) "ses" "ses.el" (17778 50477))
  ;;; Generated autoloads from ses.el
  
  (autoload (quote ses-mode) "ses" "\
@@@ -24073,7 -23844,7 +24123,7 @@@ These are active only in the minibuffer
  ;;;***
  \f
  ;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
 -;;;;;;  (17851 10873))
 +;;;;;;  (17817 13959))
  ;;; Generated autoloads from textmodes/sgml-mode.el
  
  (autoload (quote sgml-mode) "sgml-mode" "\
@@@ -24141,7 -23912,7 +24191,7 @@@ To work around that, do
  ;;;***
  \f
  ;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
 -;;;;;;  (17851 10870))
 +;;;;;;  (17817 16152))
  ;;; Generated autoloads from progmodes/sh-script.el
  (put 'sh-shell 'safe-local-variable 'symbolp)
  
@@@ -24205,7 -23976,7 +24255,7 @@@ with your script for an edit-interpret-
  
  ;;;***
  \f
 -;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17851 10859))
 +;;;### (autoloads (sha1) "sha1" "gnus/sha1.el" (17383 38805))
  ;;; Generated autoloads from gnus/sha1.el
  
  (autoload (quote sha1) "sha1" "\
@@@ -24220,14 -23991,14 +24270,14 @@@ If BINARY is non-nil, return a string i
  ;;;***
  \f
  ;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
 -;;;;;;  (17854 10614))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emacs-lisp/shadow.el
  
  (autoload (quote list-load-path-shadows) "shadow" "\
  Display a list of Emacs Lisp files that shadow other files.
  
 -This function lists potential load path problems.  Directories in
 -the `load-path' variable are searched, in order, for Emacs Lisp
 +This function lists potential load-path problems.  Directories in the
 +`load-path' variable are searched, in order, for Emacs Lisp
  files.  When a previously encountered file name is found again, a
  message is displayed indicating that the later file is \"hidden\" by
  the earlier.
@@@ -24267,8 -24038,8 +24317,8 @@@ buffer called `*Shadows*'.  Shadowings 
  ;;;***
  \f
  ;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
 -;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (17851
 -;;;;;;  10843))
 +;;;;;;  shadow-define-cluster) "shadowfile" "shadowfile.el" (17778
 +;;;;;;  50477))
  ;;; Generated autoloads from shadowfile.el
  
  (autoload (quote shadow-define-cluster) "shadowfile" "\
@@@ -24307,7 -24078,7 +24357,7 @@@ Set up file shadowing
  ;;;***
  \f
  ;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
 -;;;;;;  (17851 10843))
 +;;;;;;  (17817 15738))
  ;;; Generated autoloads from shell.el
  
  (defvar shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe" "\
@@@ -24354,7 -24125,7 +24404,7 @@@ Otherwise, one argument `-i' is passed 
  ;;;***
  \f
  ;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
 -;;;;;;  "sieve" "gnus/sieve.el" (17851 10860))
 +;;;;;;  "sieve" "gnus/sieve.el" (17383 38805))
  ;;; Generated autoloads from gnus/sieve.el
  
  (autoload (quote sieve-manage) "sieve" "\
@@@ -24375,7 -24146,7 +24425,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
 -;;;;;;  (17851 10860))
 +;;;;;;  (17383 38805))
  ;;; Generated autoloads from gnus/sieve-mode.el
  
  (autoload (quote sieve-mode) "sieve-mode" "\
@@@ -24390,14 -24161,14 +24440,14 @@@ Turning on Sieve mode runs `sieve-mode-
  
  ;;;***
  \f
 -;;;### (autoloads nil "simple" "simple.el" (17880 31192))
 +;;;### (autoloads nil "simple" "simple.el" (17817 16152))
  ;;; Generated autoloads from simple.el
  (put 'fill-prefix 'safe-local-variable 'string-or-null-p)
  
  ;;;***
  \f
 -;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17851
 -;;;;;;  10870))
 +;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (17817
 +;;;;;;  14147))
  ;;; Generated autoloads from progmodes/simula.el
  
  (autoload (quote simula-mode) "simula" "\
@@@ -24446,7 -24217,7 +24496,7 @@@ with no arguments, if that value is non
  ;;;***
  \f
  ;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
 -;;;;;;  define-skeleton) "skeleton" "skeleton.el" (17851 10843))
 +;;;;;;  define-skeleton) "skeleton" "skeleton.el" (17817 13977))
  ;;; Generated autoloads from skeleton.el
  
  (defvar skeleton-filter-function (quote identity) "\
@@@ -24556,7 -24327,7 +24606,7 @@@ symmetrical ones, and the same characte
  ;;;***
  \f
  ;;;### (autoloads (smerge-mode smerge-ediff) "smerge-mode" "smerge-mode.el"
 -;;;;;;  (17851 10844))
 +;;;;;;  (17496 38723))
  ;;; Generated autoloads from smerge-mode.el
  
  (autoload (quote smerge-ediff) "smerge-mode" "\
@@@ -24575,7 -24346,7 +24625,7 @@@ Minor mode to simplify editing output f
  ;;;***
  \f
  ;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
 -;;;;;;  (17875 18095))
 +;;;;;;  (17441 26811))
  ;;; Generated autoloads from gnus/smiley.el
  
  (autoload (quote smiley-region) "smiley" "\
@@@ -24593,7 -24364,7 +24643,7 @@@ interactively. If there's no argument, 
  ;;;***
  \f
  ;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
 -;;;;;;  "mail/smtpmail.el" (17868 41435))
 +;;;;;;  "mail/smtpmail.el" (17778 50475))
  ;;; Generated autoloads from mail/smtpmail.el
  
  (autoload (quote smtpmail-send-it) "smtpmail" "\
@@@ -24608,7 -24379,7 +24658,7 @@@ Send mail that was queued as a result o
  
  ;;;***
  \f
 -;;;### (autoloads (snake) "snake" "play/snake.el" (17851 10866))
 +;;;### (autoloads (snake) "snake" "play/snake.el" (17817 14125))
  ;;; Generated autoloads from play/snake.el
  
  (autoload (quote snake) "snake" "\
@@@ -24632,7 -24403,7 +24682,7 @@@ Snake mode keybindings
  ;;;***
  \f
  ;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
 -;;;;;;  (17851 10864))
 +;;;;;;  (17817 14122))
  ;;; Generated autoloads from net/snmp-mode.el
  
  (autoload (quote snmp-mode) "snmp-mode" "\
@@@ -24663,7 -24434,7 +24713,7 @@@ then `snmpv2-mode-hook'
  \f
  ;;;### (autoloads (solar-equinoxes-solstices sunrise-sunset calendar-location-name
  ;;;;;;  calendar-longitude calendar-latitude calendar-time-display-form)
 -;;;;;;  "solar" "calendar/solar.el" (17851 10852))
 +;;;;;;  "solar" "calendar/solar.el" (17390 27324))
  ;;; Generated autoloads from calendar/solar.el
  
  (defvar calendar-time-display-form (quote (12-hours ":" minutes am-pm (if time-zone " (") time-zone (if time-zone ")"))) "\
@@@ -24734,8 -24505,8 +24784,8 @@@ Requires floating point
  
  ;;;***
  \f
 -;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17851
 -;;;;;;  10866))
 +;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (17817
 +;;;;;;  14125))
  ;;; Generated autoloads from play/solitaire.el
  
  (autoload (quote solitaire) "solitaire" "\
@@@ -24812,7 -24583,7 +24862,7 @@@ Pick your favourite shortcuts
  \f
  ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
  ;;;;;;  sort-fields sort-numeric-fields sort-pages sort-paragraphs
 -;;;;;;  sort-lines sort-subr) "sort" "sort.el" (17851 10844))
 +;;;;;;  sort-lines sort-subr) "sort" "sort.el" (17817 13977))
  ;;; Generated autoloads from sort.el
  
  (autoload (quote sort-subr) "sort" "\
@@@ -24954,8 -24725,8 +25004,8 @@@ From a program takes two point or marke
  
  ;;;***
  \f
 -;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17851
 -;;;;;;  10860))
 +;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (17817
 +;;;;;;  16940))
  ;;; Generated autoloads from gnus/spam.el
  
  (autoload (quote spam-initialize) "spam" "\
@@@ -24967,7 -24738,7 +25017,7 @@@ Install the spam.el hooks and do other 
  \f
  ;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
  ;;;;;;  spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
 -;;;;;;  "gnus/spam-report.el" (17851 10860))
 +;;;;;;  "gnus/spam-report.el" (17390 27306))
  ;;; Generated autoloads from gnus/spam-report.el
  
  (autoload (quote spam-report-process-queue) "spam-report" "\
@@@ -25010,14 -24781,14 +25060,14 @@@ Spam reports will be queued with the me
  ;;;***
  \f
  ;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
 -;;;;;;  "speedbar.el" (17882 17519))
 +;;;;;;  "speedbar.el" (17778 50477))
  ;;; Generated autoloads from speedbar.el
  
  (defalias (quote speedbar) (quote speedbar-frame-mode))
  
  (autoload (quote speedbar-frame-mode) "speedbar" "\
  Enable or disable speedbar.  Positive ARG means turn on, negative turn off.
 -A nil ARG means toggle.  Once the speedbar frame is activated, a buffer in
 +nil means toggle.  Once the speedbar frame is activated, a buffer in
  `speedbar-mode' will be displayed.  Currently, only one speedbar is
  supported at a time.
  `speedbar-before-popup-hook' is called before popping up the speedbar frame.
@@@ -25035,7 -24806,7 +25085,7 @@@ selected.  If the speedbar frame is act
  ;;;***
  \f
  ;;;### (autoloads (spell-string spell-region spell-word spell-buffer)
 -;;;;;;  "spell" "textmodes/spell.el" (17851 10873))
 +;;;;;;  "spell" "textmodes/spell.el" (17817 14129))
  ;;; Generated autoloads from textmodes/spell.el
  
  (put (quote spell-filter) (quote risky-local-variable) t)
@@@ -25071,8 -24842,8 +25121,8 @@@ Check spelling of string supplied as ar
  
  ;;;***
  \f
 -;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17851
 -;;;;;;  10866))
 +;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (17817
 +;;;;;;  14125))
  ;;; Generated autoloads from play/spook.el
  
  (autoload (quote spook) "spook" "\
@@@ -25090,8 -24861,8 +25140,8 @@@ Return a vector containing the lines fr
  ;;;### (autoloads (sql-linter sql-db2 sql-interbase sql-postgres
  ;;;;;;  sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
  ;;;;;;  sql-sybase sql-oracle sql-product-interactive sql-mode sql-help
 -;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (17851
 -;;;;;;  10870))
 +;;;;;;  sql-add-product-keywords) "sql" "progmodes/sql.el" (17817
 +;;;;;;  16161))
  ;;; Generated autoloads from progmodes/sql.el
  
  (autoload (quote sql-add-product-keywords) "sql" "\
@@@ -25522,8 -25293,8 +25572,8 @@@ input.  See `sql-interactive-mode'
  ;;;;;;  strokes-mode strokes-list-strokes strokes-load-user-strokes
  ;;;;;;  strokes-help strokes-describe-stroke strokes-do-complex-stroke
  ;;;;;;  strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
 -;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (17851
 -;;;;;;  10844))
 +;;;;;;  strokes-global-set-stroke) "strokes" "strokes.el" (17817
 +;;;;;;  13977))
  ;;; Generated autoloads from strokes.el
  
  (autoload (quote strokes-global-set-stroke) "strokes" "\
@@@ -25633,7 -25404,7 +25683,7 @@@ Read a complex stroke and insert its gl
  ;;;***
  \f
  ;;;### (autoloads (studlify-buffer studlify-word studlify-region)
 -;;;;;;  "studly" "play/studly.el" (17504 41540))
 +;;;;;;  "studly" "play/studly.el" (17279 27079))
  ;;; Generated autoloads from play/studly.el
  
  (autoload (quote studlify-region) "studly" "\
@@@ -25653,7 -25424,7 +25703,7 @@@ Studlify-case the current buffer
  
  ;;;***
  \f
 -;;;### (autoloads (locate-library) "subr" "subr.el" (17868 65234))
 +;;;### (autoloads (locate-library) "subr" "subr.el" (17817 15467))
  ;;; Generated autoloads from subr.el
  
  (autoload (quote locate-library) "subr" "\
@@@ -25675,7 -25446,7 +25725,7 @@@ and the file name is displayed in the e
  ;;;***
  \f
  ;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
 -;;;;;;  (17854 10614))
 +;;;;;;  (17817 14120))
  ;;; Generated autoloads from mail/supercite.el
  
  (autoload (quote sc-cite-original) "supercite" "\
@@@ -25707,7 -25478,7 +25757,7 @@@ before, and `sc-post-hook' is run afte
  
  ;;;***
  \f
 -;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17851 10844))
 +;;;### (autoloads (t-mouse-mode) "t-mouse" "t-mouse.el" (17778 50477))
  ;;; Generated autoloads from t-mouse.el
  
  (defvar t-mouse-mode nil "\
@@@ -25729,7 -25500,7 +25779,7 @@@ Turn it on to use Emacs mouse commands
  
  ;;;***
  \f
 -;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17851 10844))
 +;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (17817 13977))
  ;;; Generated autoloads from tabify.el
  
  (autoload (quote untabify) "tabify" "\
@@@ -25764,7 -25535,7 +25814,7 @@@ The variable `tab-width' controls the s
  ;;;;;;  table-recognize table-insert-row-column table-insert-column
  ;;;;;;  table-insert-row table-insert table-point-left-cell-hook
  ;;;;;;  table-point-entered-cell-hook table-load-hook table-cell-map-hook)
 -;;;;;;  "table" "textmodes/table.el" (17851 10873))
 +;;;;;;  "table" "textmodes/table.el" (17778 50479))
  ;;; Generated autoloads from textmodes/table.el
  
  (defvar table-cell-map-hook nil "\
@@@ -26352,7 -26123,7 +26402,7 @@@ converts a table into plain text withou
  
  ;;;***
  \f
 -;;;### (autoloads (talk-connect) "talk" "talk.el" (17851 10845))
 +;;;### (autoloads (talk talk-connect) "talk" "talk.el" (17817 13977))
  ;;; Generated autoloads from talk.el
  
  (autoload (quote talk-connect) "talk" "\
@@@ -26360,14 -26131,9 +26410,14 @@@ Connect to display DISPLAY for the Emac
  
  \(fn DISPLAY)" t nil)
  
 +(autoload (quote talk) "talk" "\
 +Connect to the Emacs talk group from the current X display or tty frame.
 +
 +\(fn)" t nil)
 +
  ;;;***
  \f
 -;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17851 10845))
 +;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (17778 50477))
  ;;; Generated autoloads from tar-mode.el
  
  (autoload (quote tar-mode) "tar-mode" "\
@@@ -26391,7 -26157,7 +26441,7 @@@ See also: variables `tar-update-datesta
  ;;;***
  \f
  ;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
 -;;;;;;  "progmodes/tcl.el" (17851 10870))
 +;;;;;;  "progmodes/tcl.el" (17478 25206))
  ;;; Generated autoloads from progmodes/tcl.el
  
  (autoload (quote tcl-mode) "tcl" "\
@@@ -26442,7 -26208,7 +26492,7 @@@ Prefix argument means invert sense of `
  
  ;;;***
  \f
 -;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17851 10864))
 +;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (17817 14122))
  ;;; Generated autoloads from net/telnet.el
   (add-hook 'same-window-regexps "\\*telnet-.*\\*\\(\\|<[0-9]+>\\)")
  
@@@ -26469,8 -26235,8 +26519,8 @@@ Normally input is edited in Emacs and s
  
  ;;;***
  \f
 -;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17884
 -;;;;;;  57195))
 +;;;### (autoloads (ansi-term term make-term) "term" "term.el" (17817
 +;;;;;;  13977))
  ;;; Generated autoloads from term.el
  
  (autoload (quote make-term) "term" "\
@@@ -26498,8 -26264,8 +26548,8 @@@ Start a terminal-emulator in a new buff
  
  ;;;***
  \f
 -;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17851
 -;;;;;;  10845))
 +;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (17817
 +;;;;;;  13977))
  ;;; Generated autoloads from terminal.el
  
  (autoload (quote terminal-emulator) "terminal" "\
@@@ -26536,7 -26302,7 +26586,7 @@@ subprocess started
  ;;;***
  \f
  ;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17390 26938))
  ;;; Generated autoloads from emacs-lisp/testcover.el
  
  (autoload (quote testcover-this-defun) "testcover" "\
@@@ -26546,7 -26312,7 +26596,7 @@@ Start coverage on function under point
  
  ;;;***
  \f
 -;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17852 64479))
 +;;;### (autoloads (tetris) "tetris" "play/tetris.el" (17817 14126))
  ;;; Generated autoloads from play/tetris.el
  
  (autoload (quote tetris) "tetris" "\
@@@ -26577,7 -26343,7 +26627,7 @@@ tetris-mode keybindings
  ;;;;;;  tex-start-commands tex-start-options slitex-run-command latex-run-command
  ;;;;;;  tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
  ;;;;;;  tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
 -;;;;;;  (17851 10873))
 +;;;;;;  (17817 14129))
  ;;; Generated autoloads from textmodes/tex-mode.el
  
  (defvar tex-shell-file-name nil "\
@@@ -26879,7 -26645,7 +26929,7 @@@ Major mode to edit DocTeX files
  ;;;***
  \f
  ;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
 -;;;;;;  "texinfmt" "textmodes/texinfmt.el" (17851 10873))
 +;;;;;;  "texinfmt" "textmodes/texinfmt.el" (17778 50479))
  ;;; Generated autoloads from textmodes/texinfmt.el
  
  (autoload (quote texinfo-format-buffer) "texinfmt" "\
@@@ -26919,18 -26685,18 +26969,18 @@@ if large.  You can use Info-split to d
  ;;;***
  \f
  ;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
 -;;;;;;  "texinfo" "textmodes/texinfo.el" (17851 10873))
 +;;;;;;  "texinfo" "textmodes/texinfo.el" (17390 26946))
  ;;; Generated autoloads from textmodes/texinfo.el
  
  (defvar texinfo-open-quote "``" "\
  *String inserted by typing \\[texinfo-insert-quote] to open a quotation.")
  
 -(custom-autoload (quote texinfo-open-quote) "texinfo" t)
 +(custom-autoload (quote texinfo-open-quote) "texinfo")
  
  (defvar texinfo-close-quote "''" "\
  *String inserted by typing \\[texinfo-insert-quote] to close a quotation.")
  
 -(custom-autoload (quote texinfo-close-quote) "texinfo" t)
 +(custom-autoload (quote texinfo-close-quote) "texinfo")
  
  (autoload (quote texinfo-mode) "texinfo" "\
  Major mode for editing Texinfo files.
@@@ -27006,7 -26772,7 +27056,7 @@@ value of `texinfo-mode-hook'
  ;;;### (autoloads (thai-auto-composition-mode thai-composition-function
  ;;;;;;  thai-post-read-conversion thai-compose-buffer thai-compose-string
  ;;;;;;  thai-compose-region) "thai-util" "language/thai-util.el"
 -;;;;;;  (17851 10861))
 +;;;;;;  (17817 15478))
  ;;; Generated autoloads from language/thai-util.el
  
  (autoload (quote thai-compose-region) "thai-util" "\
@@@ -27050,7 -26816,7 +27100,7 @@@ Minor mode for automatically correct Th
  \f
  ;;;### (autoloads (list-at-point number-at-point symbol-at-point
  ;;;;;;  sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
 -;;;;;;  "thingatpt" "thingatpt.el" (17851 10845))
 +;;;;;;  "thingatpt" "thingatpt.el" (17817 13977))
  ;;; Generated autoloads from thingatpt.el
  
  (autoload (quote forward-thing) "thingatpt" "\
@@@ -27107,7 -26873,7 +27157,7 @@@ Not documente
  \f
  ;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
  ;;;;;;  thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
 -;;;;;;  (17851 10845))
 +;;;;;;  (17591 9719))
  ;;; Generated autoloads from thumbs.el
  
  (autoload (quote thumbs-find-thumb) "thumbs" "\
@@@ -27146,7 -26912,7 +27196,7 @@@ In dired, call the setroot program on t
  ;;;;;;  tibetan-composition-function tibetan-decompose-string tibetan-decompose-region
  ;;;;;;  tibetan-compose-region tibetan-compose-string tibetan-transcription-to-tibetan
  ;;;;;;  tibetan-tibetan-to-transcription tibetan-char-p) "tibet-util"
 -;;;;;;  "language/tibet-util.el" (17851 10861))
 +;;;;;;  "language/tibet-util.el" (17817 15478))
  ;;; Generated autoloads from language/tibet-util.el
  
  (autoload (quote tibetan-char-p) "tibet-util" "\
@@@ -27225,7 -26991,7 +27275,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
 -;;;;;;  (17851 10873))
 +;;;;;;  (17817 14129))
  ;;; Generated autoloads from textmodes/tildify.el
  
  (autoload (quote tildify-region) "tildify" "\
@@@ -27249,7 -27015,7 +27299,7 @@@ This function performs no refilling of 
  ;;;***
  \f
  ;;;### (autoloads (display-time-mode display-time display-time-day-and-date)
 -;;;;;;  "time" "time.el" (17851 10845))
 +;;;;;;  "time" "time.el" (17713 5993))
  ;;; Generated autoloads from time.el
  
  (defvar display-time-day-and-date nil "\
@@@ -27291,8 -27057,8 +27341,8 @@@ This runs the normal hook `display-time
  ;;;### (autoloads (safe-date-to-time time-to-days time-to-day-in-year
  ;;;;;;  date-leap-year-p days-between date-to-day time-add time-subtract
  ;;;;;;  time-since days-to-time time-less-p seconds-to-time time-to-seconds
 -;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (17851
 -;;;;;;  10852))
 +;;;;;;  date-to-time) "time-date" "calendar/time-date.el" (17390
 +;;;;;;  27324))
  ;;; Generated autoloads from calendar/time-date.el
  
  (autoload (quote date-to-time) "time-date" "\
@@@ -27378,7 -27144,7 +27428,7 @@@ If DATE is malformed, return a time val
  ;;;***
  \f
  ;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
 -;;;;;;  "time-stamp.el" (17851 10845))
 +;;;;;;  "time-stamp.el" (17778 50479))
  ;;; Generated autoloads from time-stamp.el
  (put 'time-stamp-format 'safe-local-variable 'stringp)
  (put 'time-stamp-line-limit 'safe-local-variable 'integerp)
@@@ -27421,7 -27187,7 +27471,7 @@@ With ARG, turn time stamping on if and 
  ;;;;;;  timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
  ;;;;;;  timeclock-change timeclock-status-string timeclock-out timeclock-in
  ;;;;;;  timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
 -;;;;;;  (17851 10852))
 +;;;;;;  (17713 4915))
  ;;; Generated autoloads from calendar/timeclock.el
  
  (autoload (quote timeclock-modeline-display) "timeclock" "\
@@@ -27522,7 -27288,7 +27572,7 @@@ relative only to the time worked today
  \f
  ;;;### (autoloads (with-timeout run-with-idle-timer add-timeout run-with-timer
  ;;;;;;  run-at-time cancel-function-timers cancel-timer) "timer"
 -;;;;;;  "emacs-lisp/timer.el" (17851 10853))
 +;;;;;;  "emacs-lisp/timer.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/timer.el
  
  (defalias (quote disable-timeout) (quote cancel-timer))
@@@ -27598,7 -27364,7 +27648,7 @@@ be detected
  ;;;***
  \f
  ;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
 -;;;;;;  "international/titdic-cnv.el" (17871 15753))
 +;;;;;;  "international/titdic-cnv.el" (17817 15478))
  ;;; Generated autoloads from international/titdic-cnv.el
  
  (autoload (quote titdic-convert) "titdic-cnv" "\
@@@ -27621,8 -27387,8 +27671,8 @@@ To get complete usage, invoke \"emacs -
  ;;;***
  \f
  ;;;### (autoloads (tamil-composition-function tamil-post-read-conversion
 -;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (17851
 -;;;;;;  10861))
 +;;;;;;  tamil-compose-region) "tml-util" "language/tml-util.el" (17817
 +;;;;;;  14146))
  ;;; Generated autoloads from language/tml-util.el
  
  (autoload (quote tamil-compose-region) "tml-util" "\
@@@ -27645,9 -27411,10 +27695,9 @@@ PATTERN regexp
  ;;;***
  \f
  ;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
 -;;;;;;  "tmm.el" (17851 10845))
 +;;;;;;  "tmm.el" (17778 50479))
  ;;; Generated autoloads from tmm.el
   (define-key global-map "\M-`" 'tmm-menubar)
 - (define-key global-map [f10] 'tmm-menubar)
   (define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
  
  (autoload (quote tmm-menubar) "tmm" "\
@@@ -27685,7 -27452,7 +27735,7 @@@ Its value should be an event that has 
  \f
  ;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
  ;;;;;;  todo-insert-item todo-add-item-non-interactively todo-add-category)
 -;;;;;;  "todo-mode" "calendar/todo-mode.el" (17851 10852))
 +;;;;;;  "todo-mode" "calendar/todo-mode.el" (17390 27324))
  ;;; Generated autoloads from calendar/todo-mode.el
  
  (autoload (quote todo-add-category) "todo-mode" "\
@@@ -27745,16 -27512,10 +27795,16 @@@ Show TODO list
  ;;;***
  \f
  ;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
 -;;;;;;  tool-bar-local-item tool-bar-add-item) "tool-bar" "tool-bar.el"
 -;;;;;;  (17851 10845))
 +;;;;;;  tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame)
 +;;;;;;  "tool-bar" "tool-bar.el" (17496 38966))
  ;;; Generated autoloads from tool-bar.el
  
 +(autoload (quote toggle-tool-bar-mode-from-frame) "tool-bar" "\
 +Toggle tool bar on or off, based on the status of the current frame.
 +See `tool-bar-mode' for more information.
 +
 +\(fn &optional ARG)" t nil)
 +
  (put (quote tool-bar-mode) (quote standard-value) (quote (t)))
  
  (autoload (quote tool-bar-add-item) "tool-bar" "\
@@@ -27819,7 -27580,7 +27869,7 @@@ holds a keymap
  ;;;***
  \f
  ;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emulation/tpu-edt.el
  
  (defvar tpu-edt-mode nil "\
@@@ -27846,7 -27607,7 +27896,7 @@@ Turn on TPU/edt emulation
  ;;;***
  \f
  ;;;### (autoloads (tpu-set-cursor-bound tpu-set-cursor-free tpu-set-scroll-margins)
 -;;;;;;  "tpu-extras" "emulation/tpu-extras.el" (17851 10853))
 +;;;;;;  "tpu-extras" "emulation/tpu-extras.el" (17817 13982))
  ;;; Generated autoloads from emulation/tpu-extras.el
  
  (autoload (quote tpu-set-scroll-margins) "tpu-extras" "\
@@@ -27866,7 -27627,7 +27916,7 @@@ Constrain the cursor to the flow of th
  
  ;;;***
  \f
 -;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17851 10853))
 +;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/tq.el
  
  (autoload (quote tq-create) "tq" "\
@@@ -27880,7 -27641,7 +27930,7 @@@ to a tcp server on another machine
  ;;;***
  \f
  ;;;### (autoloads (trace-function-background trace-function trace-buffer)
 -;;;;;;  "trace" "emacs-lisp/trace.el" (17851 10853))
 +;;;;;;  "trace" "emacs-lisp/trace.el" (17817 13982))
  ;;; Generated autoloads from emacs-lisp/trace.el
  
  (defvar trace-buffer "*trace-output*" "\
@@@ -27917,7 -27678,7 +27967,7 @@@ BUFFER defaults to `trace-buffer'
  ;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
  ;;;;;;  tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
  ;;;;;;  tramp-file-name-handler tramp-completion-file-name-regexp
 -;;;;;;  tramp-file-name-regexp) "tramp" "net/tramp.el" (17872 44165))
 +;;;;;;  tramp-file-name-regexp) "tramp" "net/tramp.el" (17817 16949))
  ;;; Generated autoloads from net/tramp.el
  
  (defvar tramp-unified-filenames (not (featurep (quote xemacs))) "\
@@@ -28015,7 -27776,7 +28065,7 @@@ Not documente
  (autoload (quote tramp-completion-handle-file-name-all-completions) "tramp" "\
  Like `file-name-all-completions' for partial tramp files.
  
 -\(fn FILENAME DIRECTORY)" nil nil)
 +\(fn FILENAME DIRECTORY &optional PREDICATE)" nil nil)
  
  (autoload (quote tramp-completion-handle-file-name-completion) "tramp" "\
  Like `file-name-completion' for tramp files.
@@@ -28030,7 -27791,7 +28080,7 @@@ Discard Tramp from loading remote files
  ;;;***
  \f
  ;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
 -;;;;;;  (17851 10864))
 +;;;;;;  (17374 21429))
  ;;; Generated autoloads from net/tramp-ftp.el
  
  (autoload (quote tramp-ftp-enable-ange-ftp) "tramp-ftp" "\
@@@ -28045,8 -27806,8 +28095,8 @@@ Not documente
  ;;;;;;  tumme-display-thumb tumme-display-thumbs-append tumme-setup-dired-keybindings
  ;;;;;;  tumme-jump-thumbnail-buffer tumme-delete-tag tumme-tag-files
  ;;;;;;  tumme-show-all-from-dir tumme-display-thumbs tumme-dired-with-window-configuration
 -;;;;;;  tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17851
 -;;;;;;  10847))
 +;;;;;;  tumme-dired-insert-marked-thumbs) "tumme" "tumme.el" (17713
 +;;;;;;  5410))
  ;;; Generated autoloads from tumme.el
  
  (autoload (quote tumme-dired-insert-marked-thumbs) "tumme" "\
@@@ -28176,8 -27937,8 +28226,8 @@@ easy-to-use form
  
  ;;;***
  \f
 -;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17856
 -;;;;;;  1486))
 +;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (17817
 +;;;;;;  16152))
  ;;; Generated autoloads from tutorial.el
  
  (autoload (quote help-with-tutorial) "tutorial" "\
@@@ -28202,7 -27963,7 +28252,7 @@@ resumed later
  ;;;***
  \f
  ;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
 -;;;;;;  "textmodes/two-column.el" (17851 10873))
 +;;;;;;  "textmodes/two-column.el" (17817 14129))
  ;;; Generated autoloads from textmodes/two-column.el
   (autoload '2C-command "two-column" () t 'keymap)
   (global-set-key "\C-x6" '2C-command)
@@@ -28253,7 -28014,7 +28303,7 @@@ First column's text    sSs  Second colu
  ;;;;;;  type-break type-break-mode type-break-keystroke-threshold
  ;;;;;;  type-break-good-break-interval type-break-good-rest-interval
  ;;;;;;  type-break-interval type-break-mode) "type-break" "type-break.el"
 -;;;;;;  (17855 40306))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from type-break.el
  
  (defvar type-break-mode nil "\
@@@ -28436,7 -28197,7 +28486,7 @@@ FRAC should be the inverse of the fract
  ;;;***
  \f
  ;;;### (autoloads (ununderline-region underline-region) "underline"
 -;;;;;;  "textmodes/underline.el" (17851 10873))
 +;;;;;;  "textmodes/underline.el" (17817 14129))
  ;;; Generated autoloads from textmodes/underline.el
  
  (autoload (quote underline-region) "underline" "\
@@@ -28457,7 -28218,7 +28507,7 @@@ which specify the range to operate on
  ;;;***
  \f
  ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
 -;;;;;;  "undigest" "mail/undigest.el" (17851 10862))
 +;;;;;;  "undigest" "mail/undigest.el" (17817 14120))
  ;;; Generated autoloads from mail/undigest.el
  
  (autoload (quote undigestify-rmail-message) "undigest" "\
@@@ -28476,7 -28237,7 +28526,7 @@@ following the containing message
  ;;;***
  \f
  ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
 -;;;;;;  (17851 10862))
 +;;;;;;  (17817 14120))
  ;;; Generated autoloads from mail/unrmail.el
  
  (autoload (quote batch-unrmail) "unrmail" "\
@@@ -28495,8 -28256,8 +28545,8 @@@ Convert Rmail file FILE to system inbo
  
  ;;;***
  \f
 -;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17851
 -;;;;;;  10853))
 +;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (17405
 +;;;;;;  10313))
  ;;; Generated autoloads from emacs-lisp/unsafep.el
  
  (autoload (quote unsafep) "unsafep" "\
@@@ -28509,7 -28270,7 +28559,7 @@@ of symbols with local bindings
  ;;;***
  \f
  ;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
 -;;;;;;  "url/url.el" (17851 10875))
 +;;;;;;  "url/url.el" (17817 13984))
  ;;; Generated autoloads from url/url.el
  
  (autoload (quote url-retrieve) "url" "\
@@@ -28549,7 -28310,7 +28599,7 @@@ no further processing).  URL is either 
  ;;;***
  \f
  ;;;### (autoloads (url-register-auth-scheme url-get-authentication)
 -;;;;;;  "url-auth" "url/url-auth.el" (17854 10614))
 +;;;;;;  "url-auth" "url/url-auth.el" (17383 38807))
  ;;; Generated autoloads from url/url-auth.el
  
  (autoload (quote url-get-authentication) "url-auth" "\
@@@ -28567,7 -28328,7 +28617,7 @@@ TYPE   is the type of authentication t
         representing the type (basic, digest, etc), or nil or the symbol 'any'
         to specify that any authentication is acceptable.  If requesting 'any'
         the strongest matching authentication will be returned.  If this is
-        wrong, its no big deal, the error from the server will specify exactly
+        wrong, it's no big deal, the error from the server will specify exactly
         what type of auth to use
  PROMPT is boolean - specifies whether to ask the user for a username/password
         if one cannot be found in the cache
@@@ -28591,8 -28352,8 +28641,8 @@@ RATING   a rating between 1 and 10 of t
  ;;;***
  \f
  ;;;### (autoloads (url-cache-expired url-cache-extract url-is-cached
 -;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (17851
 -;;;;;;  10873))
 +;;;;;;  url-store-in-cache) "url-cache" "url/url-cache.el" (17337
 +;;;;;;  56256))
  ;;; Generated autoloads from url/url-cache.el
  
  (autoload (quote url-store-in-cache) "url-cache" "\
@@@ -28617,7 -28378,7 +28667,7 @@@ Return t iff a cached file has expired
  
  ;;;***
  \f
 -;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17851 10873))
 +;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (17383 38807))
  ;;; Generated autoloads from url/url-cid.el
  
  (autoload (quote url-cid) "url-cid" "\
@@@ -28628,7 -28389,7 +28678,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
 -;;;;;;  "url/url-dav.el" (17851 10873))
 +;;;;;;  "url/url-dav.el" (17713 5993))
  ;;; Generated autoloads from url/url-dav.el
  
  (autoload (quote url-dav-supported-p) "url-dav" "\
@@@ -28643,8 -28404,8 +28693,8 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17851
 -;;;;;;  10873))
 +;;;### (autoloads (url-file) "url-file" "url/url-file.el" (17383
 +;;;;;;  38807))
  ;;; Generated autoloads from url/url-file.el
  
  (autoload (quote url-file) "url-file" "\
@@@ -28655,7 -28416,7 +28705,7 @@@ Handle file: and ftp: URLs
  ;;;***
  \f
  ;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
 -;;;;;;  "url/url-gw.el" (17851 10873))
 +;;;;;;  "url/url-gw.el" (17817 14148))
  ;;; Generated autoloads from url/url-gw.el
  
  (autoload (quote url-gateway-nslookup-host) "url-gw" "\
@@@ -28674,8 -28435,8 +28724,8 @@@ Might do a non-blocking connection; us
  ;;;***
  \f
  ;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
 -;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (17851
 -;;;;;;  10873))
 +;;;;;;  url-handler-mode) "url-handlers" "url/url-handlers.el" (17713
 +;;;;;;  5734))
  ;;; Generated autoloads from url/url-handlers.el
  
  (defvar url-handler-mode nil "\
@@@ -28719,7 -28480,7 +28769,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
 -;;;;;;  url-http) "url-http" "url/url-http.el" (17861 9844))
 +;;;;;;  url-http) "url-http" "url/url-http.el" (17817 13984))
  ;;; Generated autoloads from url/url-http.el
  
  (autoload (quote url-http) "url-http" "\
@@@ -28784,7 -28545,7 +28834,7 @@@ HTTPS retrievals are asynchronous."
  
  ;;;***
  \f
 -;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17851 10873))
 +;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (17591 9873))
  ;;; Generated autoloads from url/url-irc.el
  
  (autoload (quote url-irc) "url-irc" "\
@@@ -28794,8 -28555,8 +28844,8 @@@ Not documente
  
  ;;;***
  \f
 -;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17851
 -;;;;;;  10873))
 +;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (17383
 +;;;;;;  38807))
  ;;; Generated autoloads from url/url-ldap.el
  
  (autoload (quote url-ldap) "url-ldap" "\
@@@ -28809,7 -28570,7 +28859,7 @@@ URL can be a URL string, or a URL vecto
  ;;;***
  \f
  ;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
 -;;;;;;  (17851 10874))
 +;;;;;;  (17383 38807))
  ;;; Generated autoloads from url/url-mailto.el
  
  (autoload (quote url-mail) "url-mailto" "\
@@@ -28825,7 -28586,7 +28875,7 @@@ Handle the mailto: URL syntax
  ;;;***
  \f
  ;;;### (autoloads (url-data url-generic-emulator-loader url-info
 -;;;;;;  url-man) "url-misc" "url/url-misc.el" (17851 10874))
 +;;;;;;  url-man) "url-misc" "url/url-misc.el" (17383 38807))
  ;;; Generated autoloads from url/url-misc.el
  
  (autoload (quote url-man) "url-misc" "\
@@@ -28857,7 -28618,7 +28907,7 @@@ Fetch a data URL (RFC 2397)
  ;;;***
  \f
  ;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
 -;;;;;;  (17851 10874))
 +;;;;;;  (17374 21266))
  ;;; Generated autoloads from url/url-news.el
  
  (autoload (quote url-news) "url-news" "\
@@@ -28874,7 -28635,7 +28924,7 @@@ Not documente
  \f
  ;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
  ;;;;;;  dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
 -;;;;;;  (17851 10874))
 +;;;;;;  (17383 38807))
  ;;; Generated autoloads from url/url-ns.el
  
  (autoload (quote isPlainHostName) "url-ns" "\
@@@ -28915,7 -28676,7 +28965,7 @@@ Not documente
  ;;;***
  \f
  ;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
 -;;;;;;  "url/url-parse.el" (17851 10874))
 +;;;;;;  "url/url-parse.el" (17778 50479))
  ;;; Generated autoloads from url/url-parse.el
  
  (autoload (quote url-recreate-url) "url-parse" "\
@@@ -28933,7 -28694,7 +28983,7 @@@ Format is
  ;;;***
  \f
  ;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
 -;;;;;;  (17851 10874))
 +;;;;;;  (17350 14840))
  ;;; Generated autoloads from url/url-privacy.el
  
  (autoload (quote url-setup-privacy-info) "url-privacy" "\
@@@ -28949,7 -28710,7 +28999,7 @@@ Setup variables that expose info about 
  ;;;;;;  url-strip-leading-spaces url-eat-trailing-space url-get-normalized-date
  ;;;;;;  url-lazy-message url-normalize-url url-insert-entities-in-string
  ;;;;;;  url-parse-args url-debug url-debug) "url-util" "url/url-util.el"
 -;;;;;;  (17851 10874))
 +;;;;;;  (17778 50479))
  ;;; Generated autoloads from url/url-util.el
  
  (defvar url-debug nil "\
@@@ -29078,7 -28839,7 +29128,7 @@@ This uses `url-current-object', set loc
  ;;;***
  \f
  ;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
 -;;;;;;  "userlock" "userlock.el" (17851 10848))
 +;;;;;;  "userlock" "userlock.el" (17817 13977))
  ;;; Generated autoloads from userlock.el
  
  (autoload (quote ask-user-about-lock) "userlock" "\
@@@ -29106,7 -28867,7 +29156,7 @@@ The buffer in question is current when 
  
  ;;;***
  \f
 -;;;### (autoloads nil "utf-7" "international/utf-7.el" (17851 10861))
 +;;;### (autoloads nil "utf-7" "international/utf-7.el" (17817 14143))
  ;;; Generated autoloads from international/utf-7.el
  (autoload-coding-system 'utf-7 '(require 'utf-7))
  
  \f
  ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
  ;;;;;;  uudecode-decode-region-external) "uudecode" "gnus/uudecode.el"
 -;;;;;;  (17856 1487))
 +;;;;;;  (17549 5046))
  ;;; Generated autoloads from gnus/uudecode.el
  
  (autoload (quote uudecode-decode-region-external) "uudecode" "\
@@@ -29144,7 -28905,7 +29194,7 @@@ If FILE-NAME is non-nil, save the resul
  ;;;;;;  vc-directory vc-merge vc-insert-headers vc-version-other-window
  ;;;;;;  vc-diff vc-register vc-next-action vc-do-command edit-vc-file
  ;;;;;;  with-vc-file vc-branch-part vc-trunk-p vc-before-checkin-hook
 -;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17851 10849))
 +;;;;;;  vc-checkin-hook vc-checkout-hook) "vc" "vc.el" (17778 49122))
  ;;; Generated autoloads from vc.el
  
  (defvar vc-checkout-hook nil "\
@@@ -29432,7 -29193,7 +29482,7 @@@ colors. `vc-annotate-background' specif
  
  ;;;***
  \f
 -;;;### (autoloads nil "vc-arch" "vc-arch.el" (17852 50694))
 +;;;### (autoloads nil "vc-arch" "vc-arch.el" (17817 16875))
  ;;; Generated autoloads from vc-arch.el
   (defun vc-arch-registered (file)
    (if (vc-find-root file "{arch}/=tagging-method")
  
  ;;;***
  \f
 -;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17851 10848))
 +;;;### (autoloads nil "vc-cvs" "vc-cvs.el" (17390 26948))
  ;;; Generated autoloads from vc-cvs.el
   (defun vc-cvs-registered (f)
    (when (file-readable-p (expand-file-name
  
  ;;;***
  \f
 -;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17851 10848))
 +;;;### (autoloads nil "vc-mcvs" "vc-mcvs.el" (17390 26948))
  ;;; Generated autoloads from vc-mcvs.el
   (defun vc-mcvs-registered (file)
    (if (vc-find-root file "MCVS/CVS")
  ;;;***
  \f
  ;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc-rcs.el"
 -;;;;;;  (17851 10848))
 +;;;;;;  (17390 26948))
  ;;; Generated autoloads from vc-rcs.el
  
  (defvar vc-rcs-master-templates (quote ("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
  *Where to look for RCS master files.
  For a description of possible values, see `vc-check-master-templates'.")
  
 -(custom-autoload (quote vc-rcs-master-templates) "vc-rcs" t)
 +(custom-autoload (quote vc-rcs-master-templates) "vc-rcs")
   (defun vc-rcs-registered (f) (vc-default-registered 'RCS f))
  
  ;;;***
  \f
  ;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc-sccs.el"
 -;;;;;;  (17851 10848))
 +;;;;;;  (17390 26948))
  ;;; Generated autoloads from vc-sccs.el
  
  (defvar vc-sccs-master-templates (quote ("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
  *Where to look for SCCS master files.
  For a description of possible values, see `vc-check-master-templates'.")
  
 -(custom-autoload (quote vc-sccs-master-templates) "vc-sccs" t)
 +(custom-autoload (quote vc-sccs-master-templates) "vc-sccs")
   (defun vc-sccs-registered(f) (vc-default-registered 'SCCS f))
  
  (defun vc-sccs-search-project-dir (dirname basename) "\
@@@ -29493,16 -29254,16 +29543,16 @@@ find any project directory." (let ((pro
  
  ;;;***
  \f
 -;;;### (autoloads nil "vc-svn" "vc-svn.el" (17882 17519))
 +;;;### (autoloads nil "vc-svn" "vc-svn.el" (17778 50479))
  ;;; Generated autoloads from vc-svn.el
   (defun vc-svn-registered (f)
    (let ((admin-dir (cond ((and (eq system-type 'windows-nt)
 -                               (getenv "SVN_ASP_DOT_NET_HACK"))
 -                          "_svn")
 -                         (t ".svn"))))
 +                             (getenv "SVN_ASP_DOT_NET_HACK"))
 +                        "_svn")
 +                       (t ".svn"))))
      (when (file-readable-p (expand-file-name
 -                            (concat admin-dir "/entries")
 -                            (file-name-directory f)))
 +                          (concat admin-dir "/entries")
 +                          (file-name-directory f)))
        (load "vc-svn")
        (vc-svn-registered f))))
  
  ;;;***
  \f
  ;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
 -;;;;;;  (17854 10614))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from progmodes/vhdl-mode.el
  
  (autoload (quote vhdl-mode) "vhdl-mode" "\
@@@ -30052,7 -29813,7 +30102,7 @@@ Key bindings
  
  ;;;***
  \f
 -;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17806 44346))
 +;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (17817 14136))
  ;;; Generated autoloads from emulation/vi.el
  
  (autoload (quote vi-mode) "vi" "\
@@@ -30107,7 -29868,7 +30157,7 @@@ Syntax table and abbrevs while in vi mo
  ;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
  ;;;;;;  viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
  ;;;;;;  viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
 -;;;;;;  "language/viet-util.el" (17851 10861))
 +;;;;;;  "language/viet-util.el" (17817 15478))
  ;;; Generated autoloads from language/viet-util.el
  
  (autoload (quote viet-encode-viscii-char) "viet-util" "\
@@@ -30153,8 -29914,8 +30203,8 @@@ Not documente
  \f
  ;;;### (autoloads (View-exit-and-edit view-mode-enter view-mode view-buffer-other-frame
  ;;;;;;  view-buffer-other-window view-buffer view-file-other-frame
 -;;;;;;  view-file-other-window view-file) "view" "view.el" (17851
 -;;;;;;  10849))
 +;;;;;;  view-file-other-window view-file) "view" "view.el" (17390
 +;;;;;;  26949))
  ;;; Generated autoloads from view.el
  
  (defvar view-mode nil "\
@@@ -30363,8 -30124,8 +30413,8 @@@ Exit View mode and make the current buf
  
  ;;;***
  \f
 -;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17851
 -;;;;;;  10854))
 +;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (17817
 +;;;;;;  13982))
  ;;; Generated autoloads from emulation/vip.el
  
  (autoload (quote vip-setup) "vip" "\
@@@ -30380,7 -30141,7 +30430,7 @@@ Turn on VIP emulation of VI
  ;;;***
  \f
  ;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
 -;;;;;;  (17852 50694))
 +;;;;;;  (17778 50473))
  ;;; Generated autoloads from emulation/viper.el
  
  (autoload (quote toggle-viper-mode) "viper" "\
@@@ -30390,14 -30151,14 +30440,14 @@@ If Viper is enabled, turn it off.  Othe
  \(fn)" t nil)
  
  (autoload (quote viper-mode) "viper" "\
- Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Viper'.
+ Turn on Viper emulation of Vi in Emacs. See Info node `(viper)Top'.
  
  \(fn)" t nil)
  
  ;;;***
  \f
  ;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
 -;;;;;;  (17851 10853))
 +;;;;;;  (17496 38727))
  ;;; Generated autoloads from emacs-lisp/warnings.el
  
  (defvar warning-prefix-function nil "\
@@@ -30486,7 -30247,7 +30536,7 @@@ this is equivalent to `display-warning'
  ;;;***
  \f
  ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
 -;;;;;;  (17873 19573))
 +;;;;;;  (17817 14148))
  ;;; Generated autoloads from wdired.el
  
  (autoload (quote wdired-change-to-wdired-mode) "wdired" "\
@@@ -30502,7 -30263,7 +30552,7 @@@ See `wdired-mode'
  
  ;;;***
  \f
 -;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17851 10865))
 +;;;### (autoloads (webjump) "webjump" "net/webjump.el" (17817 14122))
  ;;; Generated autoloads from net/webjump.el
  
  (autoload (quote webjump) "webjump" "\
@@@ -30519,7 -30280,7 +30569,7 @@@ Please submit bug reports and other fee
  ;;;***
  \f
  ;;;### (autoloads (which-function-mode) "which-func" "progmodes/which-func.el"
 -;;;;;;  (17851 10871))
 +;;;;;;  (17611 10401))
  ;;; Generated autoloads from progmodes/which-func.el
   (put 'which-func-format 'risky-local-variable t)
   (put 'which-func-current 'risky-local-variable t)
@@@ -30552,7 -30313,7 +30602,7 @@@ and off otherwise
  ;;;;;;  whitespace-buffer whitespace-toggle-ateol-check whitespace-toggle-spacetab-check
  ;;;;;;  whitespace-toggle-indent-check whitespace-toggle-trailing-check
  ;;;;;;  whitespace-toggle-leading-check) "whitespace" "whitespace.el"
 -;;;;;;  (17851 10849))
 +;;;;;;  (17817 13977))
  ;;; Generated autoloads from whitespace.el
  
  (autoload (quote whitespace-toggle-leading-check) "whitespace" "\
@@@ -30643,7 -30404,7 +30693,7 @@@ This is meant to be added buffer-locall
  ;;;***
  \f
  ;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
 -;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (17851 10849))
 +;;;;;;  widget-browse-at) "wid-browse" "wid-browse.el" (17817 13977))
  ;;; Generated autoloads from wid-browse.el
  
  (autoload (quote widget-browse-at) "wid-browse" "\
@@@ -30670,8 -30431,8 +30720,8 @@@ With arg, turn widget mode on if and on
  ;;;***
  \f
  ;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
 -;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17887
 -;;;;;;  5449))
 +;;;;;;  widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (17778
 +;;;;;;  50479))
  ;;; Generated autoloads from wid-edit.el
  
  (autoload (quote widgetp) "wid-edit" "\
@@@ -30715,8 -30476,8 +30765,8 @@@ Setup current buffer so editing string 
  ;;;***
  \f
  ;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
 -;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (17851
 -;;;;;;  10849))
 +;;;;;;  windmove-up windmove-left) "windmove" "windmove.el" (17817
 +;;;;;;  13977))
  ;;; Generated autoloads from windmove.el
  
  (autoload (quote windmove-left) "windmove" "\
@@@ -30769,7 -30530,7 +30819,7 @@@ Default MODIFIER is 'shift
  ;;;***
  \f
  ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
 -;;;;;;  (17851 10849))
 +;;;;;;  (17390 26950))
  ;;; Generated autoloads from winner.el
  
  (defvar winner-mode nil "\
@@@ -30788,7 -30549,7 +30838,7 @@@ With arg, turn Winner mode on if and on
  ;;;***
  \f
  ;;;### (autoloads (woman-find-file woman-dired-find-file woman) "woman"
 -;;;;;;  "woman.el" (17851 10849))
 +;;;;;;  "woman.el" (17817 16161))
  ;;; Generated autoloads from woman.el
  
  (autoload (quote woman) "woman" "\
@@@ -30824,7 -30585,7 +30874,7 @@@ decompress the file if appropriate.  Se
  ;;;***
  \f
  ;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
 -;;;;;;  (17851 10854))
 +;;;;;;  (17817 13982))
  ;;; Generated autoloads from emulation/ws-mode.el
  
  (autoload (quote wordstar-mode) "ws-mode" "\
@@@ -30937,7 -30698,7 +30987,7 @@@ The key bindings are
  ;;;***
  \f
  ;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
 -;;;;;;  (17851 10850))
 +;;;;;;  (17611 9421))
  ;;; Generated autoloads from xml.el
  
  (autoload (quote xml-parse-file) "xml" "\
@@@ -30962,19 -30723,18 +31012,19 @@@ If PARSE-NS is non-nil, then QNAMES ar
  
  ;;;***
  \f
 -;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17851
 -;;;;;;  10850))
 +;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (17390
 +;;;;;;  26950))
  ;;; Generated autoloads from xt-mouse.el
  
  (defvar xterm-mouse-mode nil "\
  Non-nil if Xterm-Mouse mode is enabled.
  See the command `xterm-mouse-mode' for a description of this minor-mode.
  Setting this variable directly does not take effect;
 -either customize it (see the info node `Easy Customization')
 -or call the function `xterm-mouse-mode'.")
 +use either \\[customize] or the function `xterm-mouse-mode'.")
 +
 +(custom-autoload (quote xterm-mouse-mode) "xt-mouse")
  
 -(custom-autoload (quote xterm-mouse-mode) "xt-mouse" nil)
 +(put (quote xterm-mouse-mode) (quote custom-set) (quote custom-set-minor-mode))
  
  (autoload (quote xterm-mouse-mode) "xt-mouse" "\
  Toggle XTerm mouse mode.
@@@ -30992,7 -30752,7 +31042,7 @@@ down the SHIFT key while pressing the m
  ;;;***
  \f
  ;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
 -;;;;;;  "gnus/yenc.el" (17851 10860))
 +;;;;;;  "gnus/yenc.el" (17383 38805))
  ;;; Generated autoloads from gnus/yenc.el
  
  (autoload (quote yenc-decode-region) "yenc" "\
@@@ -31008,7 -30768,7 +31058,7 @@@ Extract file name from an yenc header
  ;;;***
  \f
  ;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
 -;;;;;;  yow) "yow" "play/yow.el" (17851 10866))
 +;;;;;;  yow) "yow" "play/yow.el" (17817 14126))
  ;;; Generated autoloads from play/yow.el
  
  (autoload (quote yow) "yow" "\
@@@ -31034,7 -30794,7 +31084,7 @@@ Zippy goes to the analyst
  
  ;;;***
  \f
 -;;;### (autoloads (zone) "zone" "play/zone.el" (17851 10866))
 +;;;### (autoloads (zone) "zone" "play/zone.el" (17383 38807))
  ;;; Generated autoloads from play/zone.el
  
  (autoload (quote zone) "zone" "\
@@@ -31162,30 -30922,25 +31212,30 @@@ Zone out, completely
  ;;;;;;  "progmodes/idlw-toolbar.el" "progmodes/mantemp.el" "progmodes/xscheme.el"
  ;;;;;;  "register.el" "replace.el" "rfn-eshadow.el" "s-region.el"
  ;;;;;;  "saveplace.el" "sb-image.el" "scroll-bar.el" "select.el"
 -;;;;;;  "soundex.el" "startup.el" "subdirs.el" "tempo.el" "textmodes/bib-mode.el"
 -;;;;;;  "textmodes/makeinfo.el" "textmodes/page-ext.el" "textmodes/page.el"
 -;;;;;;  "textmodes/refbib.el" "textmodes/refer.el" "textmodes/reftex-auc.el"
 -;;;;;;  "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el" "textmodes/reftex-sel.el"
 -;;;;;;  "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el" "textmodes/text-mode.el"
 -;;;;;;  "timezone.el" "tooltip.el" "tree-widget.el" "uniquify.el"
 -;;;;;;  "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
 +;;;;;;  "soundex.el" "startup.el" "subdirs.el" "tempo.el" "term/apollo.el"
 +;;;;;;  "term/bobcat.el" "term/cygwin.el" "term/internal.el" "term/linux.el"
 +;;;;;;  "term/lk201.el" "term/pc-win.el" "term/rxvt.el" "term/sun.el"
 +;;;;;;  "term/tty-colors.el" "term/vt102.el" "term/vt125.el" "term/vt200.el"
 +;;;;;;  "term/vt201.el" "term/vt220.el" "term/vt240.el" "term/vt300.el"
 +;;;;;;  "term/vt320.el" "term/vt400.el" "term/vt420.el" "termdev.el"
 +;;;;;;  "textmodes/bib-mode.el" "textmodes/makeinfo.el" "textmodes/page-ext.el"
 +;;;;;;  "textmodes/page.el" "textmodes/refbib.el" "textmodes/refer.el"
 +;;;;;;  "textmodes/reftex-auc.el" "textmodes/reftex-dcr.el" "textmodes/reftex-ref.el"
 +;;;;;;  "textmodes/reftex-sel.el" "textmodes/reftex-toc.el" "textmodes/texnfo-upd.el"
 +;;;;;;  "textmodes/text-mode.el" "timezone.el" "tooltip.el" "tree-widget.el"
 +;;;;;;  "uniquify.el" "url/url-about.el" "url/url-cookie.el" "url/url-dired.el"
  ;;;;;;  "url/url-expand.el" "url/url-ftp.el" "url/url-history.el"
  ;;;;;;  "url/url-imap.el" "url/url-methods.el" "url/url-nfs.el" "url/url-proxy.el"
  ;;;;;;  "url/url-vars.el" "url/vc-dav.el" "vc-hooks.el" "vcursor.el"
  ;;;;;;  "version.el" "vms-patch.el" "vmsproc.el" "vt-control.el"
  ;;;;;;  "vt100-led.el" "w32-fns.el" "w32-vars.el" "widget.el" "window.el"
 -;;;;;;  "x-dnd.el") (17887 8772 360075))
 +;;;;;;  "x-dnd.el") (17817 17746 543314))
  
  ;;;***
  \f
 -;; Local Variables:
 -;; version-control: never
 -;; no-byte-compile: t
 -;; no-update-autoloads: t
 -;; End:
 +;;; Local Variables:
 +;;; version-control: never
 +;;; no-byte-compile: t
 +;;; no-update-autoloads: t
 +;;; End:
  ;;; loaddefs.el ends here
diff --combined lisp/simple.el
index 28caa0c4f0bd46d2bd4887699f9306aeba427078,44408c4f42717884f9aced84fbc45f0b5042e383..1b998c9b27bcfd9222f462bfb5e3dea191a4fcd1
@@@ -85,22 -85,34 +85,22 @@@ If the optional third argument FRAME i
  buffer list instead of the selected frame's buffer list.
  If no other buffer exists, the buffer `*scratch*' is returned."
    (setq frame (or frame (selected-frame)))
 -  (or (get-next-valid-buffer (frame-parameter frame 'buried-buffer-list)
 -                           buffer visible-ok frame)
 -      (get-next-valid-buffer (nreverse (buffer-list frame))
 -                           buffer visible-ok frame)
 +  (or (get-next-valid-buffer (nreverse (buffer-list frame))
 +                           buffer visible-ok frame)
        (progn
        (set-buffer-major-mode (get-buffer-create "*scratch*"))
        (get-buffer "*scratch*"))))
 -
  (defun next-buffer ()
    "Switch to the next buffer in cyclic order."
    (interactive)
 -  (let ((buffer (current-buffer))
 -      (bbl (frame-parameter nil 'buried-buffer-list)))
 +  (let ((buffer (current-buffer)))
      (switch-to-buffer (other-buffer buffer t))
 -    (bury-buffer buffer)
 -    (set-frame-parameter nil 'buried-buffer-list
 -                       (cons buffer (delq buffer bbl)))))
 +    (bury-buffer buffer)))
  
  (defun previous-buffer ()
    "Switch to the previous buffer in cyclic order."
    (interactive)
 -  (let ((buffer (last-buffer (current-buffer) t))
 -      (bbl (frame-parameter nil 'buried-buffer-list)))
 -    (switch-to-buffer buffer)
 -    ;; Clean up buried-buffer-list up to and including the chosen buffer.
 -    (while (and bbl (not (eq (car bbl) buffer)))
 -      (setq bbl (cdr bbl)))
 -    (set-frame-parameter nil 'buried-buffer-list bbl)))
 +  (switch-to-buffer (last-buffer (current-buffer) t)))
  
  \f
  ;;; next-error support framework
@@@ -2380,8 -2392,6 +2380,8 @@@ the text which should be made available
  The second, optional, argument PUSH, has the same meaning as the
  similar argument to `x-set-cut-buffer', which see.")
  
 +(make-variable-frame-local 'interprogram-cut-function)
 +
  (defvar interprogram-paste-function nil
    "Function to call to get text cut from other programs.
  
@@@ -2402,8 -2412,6 +2402,8 @@@ most recent string, the function shoul
  difficult to tell whether Emacs or some other program provided the
  current string, it is probably good enough to return nil if the string
  is equal (according to `string=') to the last text Emacs provided.")
 +
 +(make-variable-frame-local 'interprogram-paste-function)
  \f
  
  
@@@ -2828,12 -2836,12 +2828,12 @@@ When calling from a program, nil means 
  a number counts as a prefix arg.
  
  To kill a whole line, when point is not at the beginning, type \
- \\[beginning-of-line] \\[kill-line] \\[kill-line].
+ \\[move-beginning-of-line] \\[kill-line] \\[kill-line].
  
  If `kill-whole-line' is non-nil, then this command kills the whole line
  including its terminating newline, when used at the beginning of a line
  with no argument.  As a consequence, you can always kill a whole line
- by typing \\[beginning-of-line] \\[kill-line].
+ by typing \\[move-beginning-of-line] \\[kill-line].
  
  If you want to append the killed line to the last killed text,
  use \\[append-next-kill] before \\[kill-line].
@@@ -4419,7 -4427,7 +4419,7 @@@ of the buffer appears in the mode line.
  
  (defcustom blink-matching-paren-on-screen t
    "*Non-nil means show matching open-paren when it is on screen.
- If nil, means don't show it (but the open-paren can still be shown
+ If nil, don't show it (but the open-paren can still be shown
  when it is off screen).
  
  This variable has no effect if `blink-matching-paren' is nil.
@@@ -4440,7 -4448,7 +4440,7 @@@ If nil, search stops at the beginning o
    :group 'paren-blinking)
  
  (defcustom blink-matching-paren-dont-ignore-comments nil
-   "*nil means `blink-matching-paren' ignores comments.
+   "*If nil, `blink-matching-paren' ignores comments.
  More precisely, when looking for the matching parenthesis,
  it skips the contents of comments that end before point."
    :type 'boolean
@@@ -5420,33 -5428,36 +5420,33 @@@ front of the list of recently selected 
  \f
  ;;; Handling of Backspace and Delete keys.
  
 -(defcustom normal-erase-is-backspace
 -  (and (not noninteractive)
 -       (or (memq system-type '(ms-dos windows-nt))
 -         (eq window-system 'mac)
 -         (and (memq window-system '(x))
 -              (fboundp 'x-backspace-delete-keys-p)
 -              (x-backspace-delete-keys-p))
 -         ;; If the terminal Emacs is running on has erase char
 -         ;; set to ^H, use the Backspace key for deleting
 -         ;; backward and, and the Delete key for deleting forward.
 -         (and (null window-system)
 -              (eq tty-erase-char ?\^H))))
 -  "If non-nil, Delete key deletes forward and Backspace key deletes backward.
 -
 -On window systems, the default value of this option is chosen
 -according to the keyboard used.  If the keyboard has both a Backspace
 -key and a Delete key, and both are mapped to their usual meanings, the
 -option's default value is set to t, so that Backspace can be used to
 -delete backward, and Delete can be used to delete forward.
 -
 -If not running under a window system, customizing this option accomplishes
 -a similar effect by mapping C-h, which is usually generated by the
 -Backspace key, to DEL, and by mapping DEL to C-d via
 -`keyboard-translate'.  The former functionality of C-h is available on
 -the F1 key.  You should probably not use this setting if you don't
 -have both Backspace, Delete and F1 keys.
 +(defcustom normal-erase-is-backspace 'maybe
 +  "Set the default behaviour of the Delete and Backspace keys.
 +
 +If set to t, Delete key deletes forward and Backspace key deletes
 +backward.
 +
 +If set to nil, both Delete and Backspace keys delete backward.
 +
 +If set to 'maybe (which is the default), Emacs automatically
 +selects a behaviour.  On window systems, the behaviour depends on
 +the keyboard used.  If the keyboard has both a Backspace key and
 +a Delete key, and both are mapped to their usual meanings, the
 +option's default value is set to t, so that Backspace can be used
 +to delete backward, and Delete can be used to delete forward.
 +
 +If not running under a window system, customizing this option
 +accomplishes a similar effect by mapping C-h, which is usually
 +generated by the Backspace key, to DEL, and by mapping DEL to C-d
 +via `keyboard-translate'.  The former functionality of C-h is
 +available on the F1 key.  You should probably not use this
 +setting if you don't have both Backspace, Delete and F1 keys.
  
  Setting this variable with setq doesn't take effect.  Programmatically,
  call `normal-erase-is-backspace-mode' (which see) instead."
 -  :type 'boolean
 +  :type '(choice (const :tag "Off" nil)
 +               (const :tag "Maybe" maybe)
 +               (other :tag "On" t))
    :group 'editing-basics
    :version "21.1"
    :set (lambda (symbol value)
             (normal-erase-is-backspace-mode (or value 0))
           (set-default symbol value))))
  
 +(defun normal-erase-is-backspace-setup-frame (&optional frame)
 +  "Set up `normal-erase-is-backspace-mode' on FRAME, if necessary."
 +  (unless frame (setq frame (selected-frame)))
 +  (with-selected-frame frame
 +    (unless (terminal-parameter nil 'normal-erase-is-backspace)
 +      (if (cond ((eq normal-erase-is-backspace 'maybe)
 +               (and (not noninteractive)
 +                    (or (memq system-type '(ms-dos windows-nt))
 +                        (eq window-system 'mac)
 +                        (and (memq window-system '(x))
 +                             (fboundp 'x-backspace-delete-keys-p)
 +                             (x-backspace-delete-keys-p))
 +                        ;; If the terminal Emacs is running on has erase char
 +                        ;; set to ^H, use the Backspace key for deleting
 +                        ;; backward and, and the Delete key for deleting forward.
 +                        (and (null window-system)
 +                             (eq tty-erase-char ?\^H)))))
 +              (t
 +               normal-erase-is-backspace))
 +        (normal-erase-is-backspace-mode 1)
 +      (normal-erase-is-backspace-mode 0)))))
  
  (defun normal-erase-is-backspace-mode (&optional arg)
    "Toggle the Erase and Delete mode of the Backspace and Delete keys.
  
  With numeric arg, turn the mode on if and only if ARG is positive.
  
 -On window systems, when this mode is on, Delete is mapped to C-d and
 -Backspace is mapped to DEL; when this mode is off, both Delete and
 -Backspace are mapped to DEL.  (The remapping goes via
 -`function-key-map', so binding Delete or Backspace in the global or
 -local keymap will override that.)
 +On window systems, when this mode is on, Delete is mapped to C-d
 +and Backspace is mapped to DEL; when this mode is off, both
 +Delete and Backspace are mapped to DEL.  (The remapping goes via
 +`local-function-key-map', so binding Delete or Backspace in the
 +global or local keymap will override that.)
  
  In addition, on window systems, the bindings of C-Delete, M-Delete,
  C-M-Delete, C-Backspace, M-Backspace, and C-M-Backspace are changed in
@@@ -5509,57 -5499,54 +5509,57 @@@ have both Backspace, Delete and F1 keys
  
  See also `normal-erase-is-backspace'."
    (interactive "P")
 -  (setq normal-erase-is-backspace
 -      (if arg
 -          (> (prefix-numeric-value arg) 0)
 -        (not normal-erase-is-backspace)))
 -
 -  (cond ((or (memq window-system '(x w32 mac pc))
 -           (memq system-type '(ms-dos windows-nt)))
 -       (let ((bindings
 -              `(([C-delete] [C-backspace])
 -                ([M-delete] [M-backspace])
 -                ([C-M-delete] [C-M-backspace])
 -                (,esc-map
 -                 [C-delete] [C-backspace])))
 -             (old-state (lookup-key function-key-map [delete])))
 -
 -         (if normal-erase-is-backspace
 +  (let ((enabled (or (and arg (> (prefix-numeric-value arg) 0))
 +                   (and (not arg)
 +                        (not (eq 1 (terminal-parameter
 +                                    nil 'normal-erase-is-backspace)))))))
 +    (set-terminal-parameter nil 'normal-erase-is-backspace
 +                          (if enabled 1 0))
 +
 +    (cond ((or (memq window-system '(x w32 mac pc))
 +             (memq system-type '(ms-dos windows-nt)))
 +         (let* ((bindings
 +                 `(([C-delete] [C-backspace])
 +                   ([M-delete] [M-backspace])
 +                   ([C-M-delete] [C-M-backspace])
 +                   (,esc-map
 +                    [C-delete] [C-backspace])))
 +                (old-state (lookup-key local-function-key-map [delete])))
 +
 +           (if enabled
 +               (progn
 +                 (define-key local-function-key-map [delete] [?\C-d])
 +                 (define-key local-function-key-map [kp-delete] [?\C-d])
 +                 (define-key local-function-key-map [backspace] [?\C-?]))
 +             (define-key local-function-key-map [delete] [?\C-?])
 +             (define-key local-function-key-map [kp-delete] [?\C-?])
 +             (define-key local-function-key-map [backspace] [?\C-?]))
 +
 +           ;; Maybe swap bindings of C-delete and C-backspace, etc.
 +           (unless (equal old-state (lookup-key local-function-key-map [delete]))
 +             (dolist (binding bindings)
 +               (let ((map global-map))
 +                 (when (keymapp (car binding))
 +                   (setq map (car binding) binding (cdr binding)))
 +                 (let* ((key1 (nth 0 binding))
 +                        (key2 (nth 1 binding))
 +                        (binding1 (lookup-key map key1))
 +                        (binding2 (lookup-key map key2)))
 +                   (define-key map key1 binding2)
 +                   (define-key map key2 binding1)))))))
 +        (t
 +         (if enabled
               (progn
 -               (define-key function-key-map [delete] [?\C-d])
 -               (define-key function-key-map [kp-delete] [?\C-d])
 -               (define-key function-key-map [backspace] [?\C-?]))
 -           (define-key function-key-map [delete] [?\C-?])
 -           (define-key function-key-map [kp-delete] [?\C-?])
 -           (define-key function-key-map [backspace] [?\C-?]))
 -
 -         ;; Maybe swap bindings of C-delete and C-backspace, etc.
 -         (unless (equal old-state (lookup-key function-key-map [delete]))
 -           (dolist (binding bindings)
 -             (let ((map global-map))
 -               (when (keymapp (car binding))
 -                 (setq map (car binding) binding (cdr binding)))
 -               (let* ((key1 (nth 0 binding))
 -                      (key2 (nth 1 binding))
 -                      (binding1 (lookup-key map key1))
 -                      (binding2 (lookup-key map key2)))
 -                 (define-key map key1 binding2)
 -                 (define-key map key2 binding1)))))))
 -       (t
 -        (if normal-erase-is-backspace
 -            (progn
 -              (keyboard-translate ?\C-h ?\C-?)
 -              (keyboard-translate ?\C-? ?\C-d))
 -          (keyboard-translate ?\C-h ?\C-h)
 -          (keyboard-translate ?\C-? ?\C-?))))
 -
 -  (run-hooks 'normal-erase-is-backspace-hook)
 -  (if (interactive-p)
 -      (message "Delete key deletes %s"
 -             (if normal-erase-is-backspace "forward" "backward"))))
 +               (keyboard-translate ?\C-h ?\C-?)
 +               (keyboard-translate ?\C-? ?\C-d))
 +           (keyboard-translate ?\C-h ?\C-h)
 +           (keyboard-translate ?\C-? ?\C-?))))
 +
 +    (run-hooks 'normal-erase-is-backspace-hook)
 +    (if (interactive-p)
 +      (message "Delete key deletes %s"
 +               (if (terminal-parameter nil 'normal-erase-is-backspace)
 +                   "forward" "backward")))))
  \f
  (defvar vis-mode-saved-buffer-invisibility-spec nil
    "Saved value of `buffer-invisibility-spec' when Visible mode is on.")
diff --combined lisp/startup.el
index c19a997da8286dc6ba0bbbd6e8c28b504544df42,76bec878338bae4d2fcb87dc3e4554e223d30cd2..7e88b5f29e960aefacdadaba2ac0c0f86400cfa0
  (defvar command-line-processed nil
    "Non-nil once command line has been processed.")
  
 +(defvar window-system initial-window-system
 +  "Name of window system the selected frame is displaying through.
 +The value is a symbol--for instance, `x' for X windows.
 +The value is nil if the selected frame is on a text-only-terminal.")
 +
 +(make-variable-frame-local 'window-system)
 +
  (defgroup initialization nil
    "Emacs start-up procedure."
    :group 'internal)
@@@ -444,19 -437,36 +444,19 @@@ or `CVS', and any subdirectory that con
        ;; for instance due to a dense colormap.
        (when (or frame-initial-frame
                  ;; If frame-initial-frame has no meaning, do this anyway.
 -                (not (and window-system
 +                (not (and initial-window-system
                            (not noninteractive)
 -                          (not (eq window-system 'pc)))))
 +                          (not (eq initial-window-system 'pc)))))
          ;; Modify the initial frame based on what .emacs puts into
          ;; ...-frame-alist.
          (if (fboundp 'frame-notice-user-settings)
              (frame-notice-user-settings))
 +        ;; Set the faces for the initial background mode even if
 +        ;; frame-notice-user-settings didn't (such as on a tty).
 +        ;; frame-set-background-mode is idempotent, so it won't
 +        ;; cause any harm if it's already been done.
          (if (fboundp 'frame-set-background-mode)
 -            ;; Set the faces for the initial background mode even if
 -            ;; frame-notice-user-settings didn't (such as on a tty).
 -            ;; frame-set-background-mode is idempotent, so it won't
 -            ;; cause any harm if it's already been done.
 -            (let ((frame (selected-frame))
 -                  term)
 -              (when (and (null window-system)
 -                         ;; Don't override default set by files in lisp/term.
 -                         (null default-frame-background-mode)
 -                         (let ((bg (frame-parameter frame 'background-color)))
 -                           (or (null bg)
 -                               (member bg '(unspecified "unspecified-bg"
 -                                                        "unspecified-fg")))))
 -
 -                (setq term (getenv "TERM"))
 -                ;; Some files in lisp/term do a better job with the
 -                ;; background mode, but we leave this here anyway, in
 -                ;; case they remove those files.
 -                (if (string-match "^\\(xterm\\|rxvt\\|dtterm\\|eterm\\)"
 -                                  term)
 -                    (setq default-frame-background-mode 'light)))
 -              (frame-set-background-mode (selected-frame)))))
 +            (frame-set-background-mode (selected-frame))))
  
        ;; Now we know the user's default font, so add it to the menu.
        (if (fboundp 'font-menu-add-default)
  (defvar tool-bar-originally-present nil
    "Non-nil if tool-bars are present before user and site init files are read.")
  
 +(defvar handle-args-function-alist '((nil . tty-handle-args))
 +  "Functions for processing window-system dependent command-line arguments.
 +Window system startup files should add their own function to this
 +alist, which should parse the command line arguments.  Those
 +pertaining to the window system should be processed and removed
 +from the returned command line.")
 +
 +(defvar window-system-initialization-alist '((nil . ignore))
 +  "Alist of window-system initialization functions.
 +Window-system startup files should add their own initialization
 +function to this list.  The function should take no arguments,
 +and initialize the window system environment to prepare for
 +opening the first frame (e.g. open a connection to an X server).")
 +
  ;; Handle the X-like command-line arguments "-fg", "-bg", "-name", etc.
  (defun tty-handle-args (args)
    (let (rest)
      (setq eol-mnemonic-dos  "(DOS)"
            eol-mnemonic-mac  "(Mac)")))
  
 -  ;; Read window system's init file if using a window system.
 +  ;; Make sure window system's init file was loaded in loadup.el if using a window system.
    (condition-case error
 -      (if (and window-system (not noninteractive))
 -        (load (concat term-file-prefix
 -                      (symbol-name window-system)
 -                      "-win")
 -              ;; Every window system should have a startup file;
 -              ;; barf if we can't find it.
 -              nil t))
 -    ;; If we can't read it, print the error message and exit.
 +    (unless noninteractive
 +      (if (and initial-window-system
 +             (not (featurep
 +                   (intern (concat (symbol-name initial-window-system) "-win")))))
 +        (error "Unsupported window system `%s'" initial-window-system))
 +      ;; Process window-system specific command line parameters.
 +      (setq command-line-args
 +          (funcall (or (cdr (assq initial-window-system handle-args-function-alist))
 +                       (error "Unsupported window system `%s'" initial-window-system))
 +                   command-line-args))
 +      ;; Initialize the window system. (Open connection, etc.)
 +      (funcall (or (cdr (assq initial-window-system window-system-initialization-alist))
 +                 (error "Unsupported window system `%s'" initial-window-system))))
 +    ;; If there was an error, print the error message and exit.
      (error
       (princ
        (if (eq (car error) 'error)
                               (cdr error) ", "))))
        'external-debugging-output)
       (terpri 'external-debugging-output)
 -     (setq window-system nil)
 +     (setq initial-window-system nil)
       (kill-emacs)))
  
 -  ;; Windowed displays do this inside their *-win.el.
 -  (unless (or (display-graphic-p) noninteractive)
 -    (setq command-line-args (tty-handle-args command-line-args)))
 -
    (set-locale-environment nil)
  
-   ;; Convert preloaded file names to absolute.
-   (let ((lisp-dir
-        (file-truename
-         (file-name-directory
-          (locate-file "simple" load-path
-                       (get-load-suffixes))))))
-     (setq load-history
-         (mapcar (lambda (elt)
-                   (if (and (stringp (car elt))
-                            (not (file-name-absolute-p (car elt))))
-                       (cons (concat lisp-dir
-                                     (car elt))
-                             (cdr elt))
-                     elt))
-                 load-history)))
+   ;; Convert preloaded file names in load-history to absolute.
+   (let ((simple-file-name
+        (locate-file "simple" load-path (get-load-suffixes)))
+       lisp-dir)
+     ;; Don't abort if simple.el cannot be found, but print a warning.
+     (if (null simple-file-name)
+       (progn
+         (princ "Warning: Could not find simple.el nor simple.elc"
+                'external-debugging-output)
+         (terpri 'external-debugging-output))
+       (setq lisp-dir (file-truename (file-name-directory simple-file-name)))
+       (setq load-history
+           (mapcar (lambda (elt)
+                     (if (and (stringp (car elt))
+                              (not (file-name-absolute-p (car elt))))
+                         (cons (concat lisp-dir
+                                       (car elt))
+                               (cdr elt))
+                       elt))
+                   load-history))))
  
    ;; Convert the arguments to Emacs internal representation.
    (let ((args (cdr command-line-args)))
    ;; If frame was created with a menu bar, set menu-bar-mode on.
    (unless (or noninteractive
              emacs-basic-display
 -              (and (memq window-system '(x w32))
 +              (and (memq initial-window-system '(x w32))
                     (<= (frame-parameter nil 'menu-bar-lines) 0)))
      (menu-bar-mode 1))
  
    ;; Can't do this init in defcustom because the relevant variables
    ;; are not set.
    (custom-reevaluate-setting 'blink-cursor-mode)
 -  (custom-reevaluate-setting 'normal-erase-is-backspace)
    (custom-reevaluate-setting 'tooltip-mode)
    (custom-reevaluate-setting 'global-font-lock-mode)
    (custom-reevaluate-setting 'mouse-wheel-down-event)
    (custom-reevaluate-setting 'send-mail-function)
    (custom-reevaluate-setting 'focus-follows-mouse)
  
 +  (normal-erase-is-backspace-setup-frame)
 +
    ;; Register default TTY colors for the case the terminal hasn't a
 -  ;; terminal init file.
 -  (unless (memq window-system '(x w32 mac))
 -    ;; We do this regardles of whether the terminal supports colors
 -    ;; or not, since they can switch that support on or off in
 -    ;; mid-session by setting the tty-color-mode frame parameter.
 -    (tty-register-default-colors))
 +  ;; terminal init file.  We do this regardles of whether the terminal
 +  ;; supports colors or not and regardless the current display type,
 +  ;; since users can connect to color-capable terminals and also
 +  ;; switch color support on or off in mid-session by setting the
 +  ;; tty-color-mode frame parameter.
 +  (tty-register-default-colors)
  
    ;; Record whether the tool-bar is present before the user and site
    ;; init files are processed.  frame-notice-user-settings uses this
    ;; Load library for our terminal type.
    ;; User init file can set term-file-prefix to nil to prevent this.
    (unless (or noninteractive
 -              window-system
 -              (null term-file-prefix))
 -    (let* ((TERM (getenv "TERM"))
 -           (term TERM)
 -          hyphend)
 -      (while (and term
 -                  (not (load (concat term-file-prefix term) t t)))
 -        ;; Strip off last hyphen and what follows, then try again
 -        (setq term
 -              (if (setq hyphend (string-match "[-_][^-_]+\\'" term))
 -                  (substring term 0 hyphend)
 -                nil)))
 -      (setq term TERM)
 -      ;; The terminal file has been loaded, now call the terminal specific
 -      ;; initialization function.
 -      (while term
 -      (let ((term-init-func (intern-soft (concat "terminal-init-" term))))
 -        (if (not (fboundp term-init-func))
 -              ;; Strip off last hyphen and what follows, then try again
 -              (setq term
 -                    (if (setq hyphend (string-match "[-_][^-_]+\\'" term))
 -                        (substring term 0 hyphend)
 -                      nil))
 -            (setq term nil)
 -          (funcall term-init-func))))))
 +              initial-window-system)
 +    (tty-run-terminal-initialization (selected-frame)))
  
    ;; Update the out-of-memory error message based on user's key bindings
    ;; for save-some-buffers.
@@@ -1333,6 -1353,7 +1337,6 @@@ Warning Warning!!!  Pure space overflo
      (force-mode-line-update)
      (setq fancy-current-text (cdr fancy-current-text))))
  
 -
  (defun fancy-splash-default-action ()
    "Stop displaying the splash screen buffer.
  This is an internal function used to turn off the splash screen after
@@@ -1342,23 -1363,20 +1346,23 @@@ mouse.
    (if (and (memq 'down (event-modifiers last-command-event))
           (eq (posn-window (event-start last-command-event))
               (selected-window)))
 -      ;; This is a mouse-down event in the spash screen window.
 +      ;; This is a mouse-down event in the splash screen window.
        ;; Ignore it and consume the corresponding mouse-up event.
        (read-event)
      (push last-command-event unread-command-events))
    (throw 'exit nil))
  
 -(defun fancy-splash-special-event-action ()
 -  "Save the last event and stop displaying the splash screen buffer.
 -This is an internal function used to turn off the splash screen after
 -the user caused an input event that is bound in `special-event-map'"
 -  (interactive)
 -  (setq fancy-splash-last-input-event last-input-event)
 -  (throw 'exit nil))
 +(defun fancy-splash-exit ()
 +  "Exit the splash screen."
 +  (if (get-buffer "GNU Emacs")
 +      (throw 'stop-splashing nil)))
  
 +(defun fancy-splash-delete-frame (frame)
 +  "Exit the splash screen after the frame is deleted."
 +  ;; We can not throw from `delete-frame-events', so we set up a timer
 +  ;; to exit the recursive edit as soon as Emacs is idle again.
 +  (if (frame-live-p frame)
 +      (run-at-time 0 nil 'fancy-splash-exit)))
  
  (defun fancy-splash-screens (&optional hide-on-input)
    "Display fancy splash screens when Emacs starts."
        (save-selected-window
          (select-frame frame)
          (switch-to-buffer " GNU Emacs")
+         (make-local-variable 'cursor-type)
          (setq splash-buffer (current-buffer))
          (catch 'stop-splashing
            (unwind-protect
 -              (let ((map (make-sparse-keymap))
 -                    (cursor-type nil))
 -                (use-local-map map)
 -                (define-key map [switch-frame] 'ignore)
 +              (let* ((map (make-sparse-keymap))
 +                     (cursor-type nil)
 +                     (overriding-local-map map)
 +                     ;; Catch if our frame is deleted; the delete-frame
 +                     ;; event is unreliable and is handled by
 +                     ;; `special-event-map' anyway.
 +                     (delete-frame-functions (cons 'fancy-splash-delete-frame
 +                                                   delete-frame-functions)))
                  (define-key map [t] 'fancy-splash-default-action)
                  (define-key map [mouse-movement] 'ignore)
                  (define-key map [mode-line t] 'ignore)
 -                ;; Temporarily bind special events to
 -                ;; fancy-splash-special-event-action so as to stop
 -                ;; displaying splash screens with such events.
 -                ;; Otherwise, drag-n-drop into splash screens may
 -                ;; leave us in recursive editing with invisible
 -                ;; cursors for a while.
 -                (setq special-event-map (make-sparse-keymap))
 -                (map-keymap
 -                 (lambda (key def)
 -                   (define-key special-event-map (vector key)
 -                     (if (eq def 'ignore)
 -                         'ignore
 -                       'fancy-splash-special-event-action)))
 -                 old-special-event-map)
 +                (define-key map [select-window] 'ignore)
 +                ;; Temporarily bind special events to
 +                ;; fancy-splash-special-event-action so as to stop
 +                ;; displaying splash screens with such events.
 +                ;; Otherwise, drag-n-drop into splash screens may
 +                ;; leave us in recursive editing with invisible
 +                ;; cursors for a while.
 +                (setq special-event-map (make-sparse-keymap))
 +                (map-keymap
 +                 (lambda (key def)
 +                   (define-key special-event-map (vector key)
 +                     (if (eq def 'ignore)
 +                         'ignore
 +                       'fancy-splash-special-event-action)))
 +                 old-special-event-map)
                  (setq display-hourglass nil
                        minor-mode-map-alist nil
                        emulation-mode-map-alists nil
                    emulation-mode-map-alists old-emulation-mode-map-alists
                    special-event-map old-special-event-map)
              (kill-buffer splash-buffer)
 +            (when (frame-live-p frame)
 +              (select-frame frame)
 +              (switch-to-buffer fancy-splash-outer-buffer))
              (when fancy-splash-last-input-event
                (setq last-input-event fancy-splash-last-input-event
                      fancy-splash-last-input-event nil)
 -              (command-execute (lookup-key special-event-map
 -                                           (vector last-input-event))
 -                               nil (vector last-input-event) t))))))
 +              (command-execute (lookup-key special-event-map
 +                                           (vector last-input-event))
 +                               nil (vector last-input-event) t))))))
      ;; If hide-on-input is nil, don't hide the buffer on input.
      (if (or (window-minibuffer-p)
            (window-dedicated-p (selected-window)))
@@@ -1457,15 -1468,6 +1462,15 @@@ Warning Warning!!!  Pure space overflo
          (view-mode-enter nil 'kill-buffer))
        (goto-char (point-min)))))
  
 +(defun fancy-splash-special-event-action ()
 +  "Save the last event and stop displaying the splash screen buffer.
 +This is an internal function used to turn off the splash screen after
 +the user caused an input event that is bound in `special-event-map'"
 +  (interactive)
 +  (setq fancy-splash-last-input-event last-input-event)
 +  (throw 'exit nil))
 +
 +
  (defun fancy-splash-frame ()
    "Return the frame to use for the fancy splash screen.
  Returning non-nil does not mean we should necessarily
@@@ -1557,90 -1559,90 +1562,90 @@@ More Manuals / Ordering Manuals    How 
                          "
  Copyright (C) 2007 Free Software Foundation, Inc."))
  
 -            ;; No mouse menus, so give help using kbd commands.
 -
 -            ;; If keys have their default meanings,
 -            ;; use precomputed string to save lots of time.
 -            (if (and (eq (key-binding "\C-h") 'help-command)
 -                     (eq (key-binding "\C-xu") 'advertised-undo)
 -                     (eq (key-binding "\C-x\C-c") 'save-buffers-kill-emacs)
 -                     (eq (key-binding "\C-ht") 'help-with-tutorial)
 -                     (eq (key-binding "\C-hi") 'info)
 -                     (eq (key-binding "\C-hr") 'info-emacs-manual)
 -                     (eq (key-binding "\C-h\C-n") 'view-emacs-news))
 -                (insert "
 +          ;; No mouse menus, so give help using kbd commands.
 +
 +          ;; If keys have their default meanings,
 +          ;; use precomputed string to save lots of time.
 +          (if (and (eq (key-binding "\C-h") 'help-command)
 +                   (eq (key-binding "\C-xu") 'advertised-undo)
 +                   (eq (key-binding "\C-x\C-c") 'save-buffers-kill-terminal)
 +                   (eq (key-binding "\C-ht") 'help-with-tutorial)
 +                   (eq (key-binding "\C-hi") 'info)
 +                   (eq (key-binding "\C-hr") 'info-emacs-manual)
 +                   (eq (key-binding "\C-h\C-n") 'view-emacs-news))
 +              (insert "
  Get help         C-h  (Hold down CTRL and press h)
  Emacs manual     C-h r
  Emacs tutorial           C-h t           Undo changes     C-x u
  Buy manuals        C-h C-m         Exit Emacs     C-x C-c
  Browse manuals     C-h i")
  
 -              (insert (substitute-command-keys
 -                       (format "\n
 +            (insert (substitute-command-keys
 +                     (format "\n
  Get help         %s
  Emacs manual     \\[info-emacs-manual]
  Emacs tutorial           \\[help-with-tutorial]\tUndo changes\t\\[advertised-undo]
 -Buy manuals        \\[view-order-manuals]\tExit Emacs\t\\[save-buffers-kill-emacs]
 +Buy manuals        \\[view-order-manuals]\tExit Emacs\t\\[save-buffers-kill-terminal]
  Browse manuals     \\[info]"
 -                               (let ((where (where-is-internal
 -                                             'help-command nil t)))
 -                                 (if where
 -                                     (key-description where)
 -                                   "M-x help"))))))
 -
 -            ;; Say how to use the menu bar with the keyboard.
 -            (if (and (eq (key-binding "\M-`") 'tmm-menubar)
 -                     (eq (key-binding [f10]) 'tmm-menubar))
 -                (insert "
 +                             (let ((where (where-is-internal
 +                                           'help-command nil t)))
 +                               (if where
 +                                   (key-description where)
 +                                 "M-x help"))))))
 +
 +          ;; Say how to use the menu bar with the keyboard.
 +          (if (and (eq (key-binding "\M-`") 'tmm-menubar)
 +                   (eq (key-binding [f10]) 'tmm-menubar))
 +              (insert "
  Activate menubar   F10  or  ESC `  or   M-`")
 -              (insert (substitute-command-keys "
 +            (insert (substitute-command-keys "
  Activate menubar     \\[tmm-menubar]")))
  
 -            ;; Many users seem to have problems with these.
 -            (insert "
 +          ;; Many users seem to have problems with these.
 +          (insert "
  \(`C-' means use the CTRL key.  `M-' means use the Meta (or Alt) key.
  If you have no Meta key, you may instead type ESC followed by the character.)")
  
 -            (insert "\n\n" (emacs-version)
 -                    "
 +          (insert "\n\n" (emacs-version)
 +                  "
  Copyright (C) 2007 Free Software Foundation, Inc.")
  
 -            (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
 -                     (eq (key-binding "\C-h\C-d") 'describe-distribution)
 -                     (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
 -                (insert
 -                 "\n
 +          (if (and (eq (key-binding "\C-h\C-c") 'describe-copying)
 +                   (eq (key-binding "\C-h\C-d") 'describe-distribution)
 +                   (eq (key-binding "\C-h\C-w") 'describe-no-warranty))
 +              (insert
 +               "\n
  GNU Emacs comes with ABSOLUTELY NO WARRANTY; type C-h C-w for full details.
  Emacs is Free Software--Free as in Freedom--so you can redistribute copies
  of Emacs and modify it; type C-h C-c to see the conditions.
  Type C-h C-d for information on getting the latest version.")
 -              (insert (substitute-command-keys
 -                       "\n
 +            (insert (substitute-command-keys
 +                     "\n
  GNU Emacs comes with ABSOLUTELY NO WARRANTY; type \\[describe-no-warranty] for full details.
  Emacs is Free Software--Free as in Freedom--so you can redistribute copies
  of Emacs and modify it; type \\[describe-copying] to see the conditions.
  Type \\[describe-distribution] for information on getting the latest version."))))
  
 -          ;; The rest of the startup screen is the same on all
 -          ;; kinds of terminals.
 -
 -          ;; Give information on recovering, if there was a crash.
 -          (and auto-save-list-file-prefix
 -               ;; Don't signal an error if the
 -               ;; directory for auto-save-list files
 -               ;; does not yet exist.
 -               (file-directory-p (file-name-directory
 -                                  auto-save-list-file-prefix))
 -               (directory-files
 -                (file-name-directory auto-save-list-file-prefix)
 -                nil
 -                (concat "\\`"
 -                        (regexp-quote (file-name-nondirectory
 -                                       auto-save-list-file-prefix)))
 -                t)
 -               (insert "\n\nIf an Emacs session crashed recently, "
 -                       "type Meta-x recover-session RET\nto recover"
 -                       " the files you were editing."))
 +        ;; The rest of the startup screen is the same on all
 +        ;; kinds of terminals.
 +
 +        ;; Give information on recovering, if there was a crash.
 +        (and auto-save-list-file-prefix
 +             ;; Don't signal an error if the
 +             ;; directory for auto-save-list files
 +             ;; does not yet exist.
 +             (file-directory-p (file-name-directory
 +                                auto-save-list-file-prefix))
 +             (directory-files
 +              (file-name-directory auto-save-list-file-prefix)
 +              nil
 +              (concat "\\`"
 +                      (regexp-quote (file-name-nondirectory
 +                                     auto-save-list-file-prefix)))
 +              t)
 +             (insert "\n\nIf an Emacs session crashed recently, "
 +                     "type Meta-x recover-session RET\nto recover"
 +                     " the files you were editing."))
  
            ;; Display the input that we set up in the buffer.
            (set-buffer-modified-p nil)
          (if (and view-read-only (not view-mode))
              (view-mode-enter nil 'kill-buffer))
            (goto-char (point-min))
 -          (if hide-on-input
 -              (if (or (window-minibuffer-p)
 -                      (window-dedicated-p (selected-window)))
 -                  ;; If hide-on-input is nil, creating a new frame will
 -                  ;; generate enough events that the subsequent `sit-for'
 -                  ;; will immediately return anyway.
 -                  nil ;; (pop-to-buffer (current-buffer))
 +        (if hide-on-input
 +            (if (or (window-minibuffer-p)
 +                    (window-dedicated-p (selected-window)))
 +                ;; If hide-on-input is nil, creating a new frame will
 +                ;; generate enough events that the subsequent `sit-for'
 +                ;; will immediately return anyway.
 +                nil ;; (pop-to-buffer (current-buffer))
                (save-window-excursion
 -                  (switch-to-buffer (current-buffer))
 -                (sit-for 120)))
 -          (condition-case nil
 -              (switch-to-buffer (current-buffer))
 -            ;; In case the window is dedicated or something.
 -            (error (pop-to-buffer (current-buffer))))))
 +                (switch-to-buffer (current-buffer))
 +                (sit-for 120))
 +              (condition-case nil
 +                  (switch-to-buffer (current-buffer))))))
        ;; Unwind ... ensure splash buffer is killed
        (if hide-on-input
          (kill-buffer "GNU Emacs")
  
  (defun display-startup-echo-area-message ()
    (let ((resize-mini-windows t))
 -    (message "%s" (startup-echo-area-message))))
 +    (or noninteractive ;(input-pending-p) init-file-had-error
 +      ;; t if the init file says to inhibit the echo area startup message.
 +      (and inhibit-startup-echo-area-message
 +           user-init-file
 +           (or (and (get 'inhibit-startup-echo-area-message 'saved-value)
 +                    (equal inhibit-startup-echo-area-message
 +                           (if (equal init-file-user "")
 +                               (user-login-name)
 +                             init-file-user)))
 +               ;; Wasn't set with custom; see if .emacs has a setq.
 +               (let ((buffer (get-buffer-create " *temp*")))
 +                 (prog1
 +                     (condition-case nil
 +                         (save-excursion
 +                           (set-buffer buffer)
 +                           (insert-file-contents user-init-file)
 +                           (re-search-forward
 +                            (concat
 +                             "([ \t\n]*setq[ \t\n]+"
 +                             "inhibit-startup-echo-area-message[ \t\n]+"
 +                             (regexp-quote
 +                              (prin1-to-string
 +                               (if (equal init-file-user "")
 +                                   (user-login-name)
 +                                 init-file-user)))
 +                             "[ \t\n]*)")
 +                            nil t))
 +                       (error nil))
 +                   (kill-buffer buffer)))))
 +      ;; display-splash-screen at the end of command-line-1 calls
 +      ;; use-fancy-splash-screens-p. This can cause image.el to be
 +      ;; loaded, putting "Loading image... done" in the echo area.
 +      ;; This hides startup-echo-area-message. So
 +      ;; use-fancy-splash-screens-p is called here simply to get the
 +      ;; loading of image.el (if needed) out of the way before
 +      ;; display-startup-echo-area-message runs.
 +      (progn
 +        (use-fancy-splash-screens-p)
 +        (message "%s" (startup-echo-area-message))))))
  
  
  (defun display-splash-screen (&optional hide-on-input)
@@@ -1724,14 -1690,51 +1729,14 @@@ Fancy splash screens are used on graphi
  normal otherwise.
  With a prefix argument, any user input hides the splash screen."
    (interactive "P")
 -  (if (use-fancy-splash-screens-p)
 -      (fancy-splash-screens hide-on-input)
 -    (normal-splash-screen hide-on-input)))
 -
 +  ;; Prevent recursive calls from server-process-filter.
 +  (if (not (get-buffer "GNU Emacs"))
 +      (if (use-fancy-splash-screens-p)
 +        (fancy-splash-screens hide-on-input)
 +      (normal-splash-screen hide-on-input))))
  
  (defun command-line-1 (command-line-args-left)
 -  (or noninteractive (input-pending-p) init-file-had-error
 -      ;; t if the init file says to inhibit the echo area startup message.
 -      (and inhibit-startup-echo-area-message
 -         user-init-file
 -         (or (and (get 'inhibit-startup-echo-area-message 'saved-value)
 -                  (equal inhibit-startup-echo-area-message
 -                         (if (equal init-file-user "")
 -                             (user-login-name)
 -                           init-file-user)))
 -             ;; Wasn't set with custom; see if .emacs has a setq.
 -             (let ((buffer (get-buffer-create " *temp*")))
 -               (prog1
 -                   (condition-case nil
 -                       (save-excursion
 -                         (set-buffer buffer)
 -                         (insert-file-contents user-init-file)
 -                         (re-search-forward
 -                          (concat
 -                           "([ \t\n]*setq[ \t\n]+"
 -                           "inhibit-startup-echo-area-message[ \t\n]+"
 -                           (regexp-quote
 -                            (prin1-to-string
 -                             (if (equal init-file-user "")
 -                                 (user-login-name)
 -                               init-file-user)))
 -                           "[ \t\n]*)")
 -                          nil t))
 -                     (error nil))
 -                 (kill-buffer buffer)))))
 -      ;; display-splash-screen at the end of command-line-1 calls
 -      ;; use-fancy-splash-screens-p. This can cause image.el to be
 -      ;; loaded, putting "Loading image... done" in the echo area.
 -      ;; This hides startup-echo-area-message. So
 -      ;; use-fancy-splash-screens-p is called here simply to get the
 -      ;; loading of image.el (if needed) out of the way before
 -      ;; display-startup-echo-area-message runs.
 -      (progn
 -        (use-fancy-splash-screens-p)
 -        (display-startup-echo-area-message)))
 +  (display-startup-echo-area-message)
  
    ;; Delay 2 seconds after an init file error message
    ;; was displayed, so user can read it.
diff --combined lisp/subr.el
index c91c9c599b772be8bad5a376c68b2a74506a2ffb,846acf52385df15e90f7fc429e9222205c6235f7..ce4a2507602db16441c94254479ad1e7575a842e
@@@ -1612,7 -1612,7 +1612,7 @@@ any other non-digit terminates the char
        ;; or C-q C-x might not return immediately since ESC or C-x might be
        ;; bound to some prefix in function-key-map or key-translation-map.
        (setq translated char)
 -      (let ((translation (lookup-key function-key-map (vector char))))
 +      (let ((translation (lookup-key local-function-key-map (vector char))))
        (if (arrayp translation)
            (setq translated (aref translation 0))))
        (cond ((null translated))
@@@ -2171,6 -2171,7 +2171,7 @@@ If UNDO is present and non-nil, it is 
                       (get-text-property 0 'yank-handler string)))
         (param (or (nth 1 handler) string))
         (opoint (point))
+        (inhibit-read-only inhibit-read-only)
         end)
  
      (setq yank-undo-function t)
        (insert param))
      (setq end (point))
  
+     ;; Prevent read-only properties from interfering with the
+     ;; following text property changes.
+     (setq inhibit-read-only t)
      ;; What should we do with `font-lock-face' properties?
      (if font-lock-defaults
        ;; No, just wipe them.
@@@ -2338,23 -2343,6 +2343,23 @@@ See also `with-temp-buffer'.
         (if (window-live-p save-selected-window-window)
             (select-window save-selected-window-window 'norecord))))))
  
 +(defmacro with-selected-frame (frame &rest body)
 +  "Execute the forms in BODY with FRAME as the selected frame.
 +The value returned is the value of the last form in BODY.
 +See also `with-temp-buffer'."
 +  (declare (indent 1) (debug t))
 +  (let ((old-frame (make-symbol "old-frame"))
 +      (old-buffer (make-symbol "old-buffer")))
 +    `(let ((,old-frame (selected-frame))
 +         (,old-buffer (current-buffer)))
 +       (unwind-protect
 +         (progn (select-frame ,frame)
 +                ,@body)
 +       (if (frame-live-p ,old-frame)
 +           (select-frame ,old-frame))
 +       (if (buffer-live-p ,old-buffer)
 +           (set-buffer ,old-buffer))))))
 +
  (defmacro with-temp-file (file &rest body)
    "Create a new buffer, evaluate BODY there, and write the buffer to FILE.
  The value returned is the value of the last form in BODY.
diff --combined lisp/term/README
index 1912df47f4f5952536785da516f93a1a1629a405,972bd49c796964670bae4816c921a0e00cb56549..2f4422981f92b0ff014bf75995fedc7b01b3c82c
@@@ -1,43 -1,24 +1,48 @@@
+ Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+   Free Software Foundation, Inc.
+ See the end of the file for license conditions.
     This directory contains files of elisp that customize Emacs for certain
  terminal types.
  
 -   When Emacs starts, it checks the TERM environment variable to see what type
 -of terminal the user is running on, checks for an elisp file named
 -"term/${TERM}.el", and if one exists, loads it.  If that doesn't yield a file
 -that exists, the last hyphen and what follows it is stripped.  If that doesn't
 -yield a file that exists, the previous hyphen is stripped, and so on until all
 -hyphens are gone.  For example, if the terminal type is `aaa-48-foo', Emacs
 -will try first `term/aaa-48-foo.el', then `term/aaa-48.el' and finally
 -`term/aaa.el'.  Each terminal specific file should contain a function
 -named terminal-init-TERMINALNAME (eg terminal-init-aaa-48 for
 -term/aaa-48.el) that Emacs will call in order to initialize the
 -terminal. The terminal files should not contain any top level forms
 -that are executed when the file is loaded, all the initialization
 -actions are performed by the terminal-init-TERMINALNAME functions.
 +   When Emacs opens a new terminal, it checks the TERM environment variable to
 +see what type of terminal the user is running on, searches for an elisp file
 +named "term/${TERM}.el", and if one exists, loads it.  If Emacs finds no
 +suitable file, then it strips the last hyphen and what follows it from TERM,
 +and tries again.  If that still doesn't yield a file, then the previous hyphen
 +is stripped, and so on until all hyphens are gone.  For example, if the
 +terminal type is `aaa-48-foo', Emacs will try first `term/aaa-48-foo.el', then
 +`term/aaa-48.el' and finally `term/aaa.el'.  Emacs stops searching at the
 +first file found, and will not load more than one file for any terminal.  Note
 +that it is not an error if Emacs is unable to find a terminal initialization
 +file; in that case, it will simply proceed with the next step without loading
 +any files.
 +
 +   Once the file has been loaded (or the search failed), Emacs tries to call a
 +function named `terminal-init-TERMINALNAME' (eg `terminal-init-aaa-48' for the
 +`aaa-48' terminal) in order to initialize the terminal.  Once again, if the
 +function is not found, Emacs strips the last component of the name and tries
 +again using the shorter name.  This search is independent of the previous file
 +search, so that you can have terminal initialization functions for a family of
 +terminals collected in a single file named after the family name, and users
 +may put terminal initialization functions directly in their .emacs files.
 +
 +   Note that an individual terminal file is loaded only once in an Emacs
 +session; if the same terminal type is opened again, Emacs will simply call the
 +initialization function without reloading the file.  Therefore, all the actual
 +initialization actions should be collected in terminal-init-* functions; the
 +file should not contain any top-level form that is not a function or variable
 +declaration.  Simply loading the file should not have any side effect.
 +
 +   Similarly, the terminal initialization function is called only once on any
 +given terminal, when the first frame is created on it.  The function is not
 +called for subsequent frames on the same terminal.  Therefore, terminal-init-*
 +functions should only modify terminal-local variables (such as
 +`local-function-key-map') and terminal parameters.  For example, it is not
 +correct to modify frame parameters, since the modifications will only be
 +applied for the first frame opened on the terminal.
 +
  
     When writing terminal packages, there are some things it is good to keep in
  mind.
@@@ -241,3 -222,21 +246,21 @@@ it up to the user's .emacs file whethe
  
     Before writing a terminal-support package, it's a good idea to read the
  existing ones and learn the common conventions.
\f
+ This file is part of GNU Emacs.
+ GNU Emacs 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.
+ GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
diff --combined lisp/term/mac-win.el
index 7e3d7b14ddd8cd1304a78394e74a2068762ddaf1,51274e6f5be58ee176e08442c8f2752a00c90546..7e40c46fcf2d5d041bf3000cef8fa98073eabbf4
@@@ -1064,20 -1064,20 +1064,20 @@@ XConsortium: rgb.txt,v 10.41 94/02/20 1
  
  ;; Map certain keypad keys into ASCII characters
  ;; that people usually expect.
 -(define-key function-key-map [backspace] [?\d])
 -(define-key function-key-map [delete] [?\d])
 -(define-key function-key-map [tab] [?\t])
 -(define-key function-key-map [linefeed] [?\n])
 -(define-key function-key-map [clear] [?\C-l])
 -(define-key function-key-map [return] [?\C-m])
 -(define-key function-key-map [escape] [?\e])
 -(define-key function-key-map [M-backspace] [?\M-\d])
 -(define-key function-key-map [M-delete] [?\M-\d])
 -(define-key function-key-map [M-tab] [?\M-\t])
 -(define-key function-key-map [M-linefeed] [?\M-\n])
 -(define-key function-key-map [M-clear] [?\M-\C-l])
 -(define-key function-key-map [M-return] [?\M-\C-m])
 -(define-key function-key-map [M-escape] [?\M-\e])
 +(define-key local-function-key-map [backspace] [?\d])
 +(define-key local-function-key-map [delete] [?\d])
 +(define-key local-function-key-map [tab] [?\t])
 +(define-key local-function-key-map [linefeed] [?\n])
 +(define-key local-function-key-map [clear] [?\C-l])
 +(define-key local-function-key-map [return] [?\C-m])
 +(define-key local-function-key-map [escape] [?\e])
 +(define-key local-function-key-map [M-backspace] [?\M-\d])
 +(define-key local-function-key-map [M-delete] [?\M-\d])
 +(define-key local-function-key-map [M-tab] [?\M-\t])
 +(define-key local-function-key-map [M-linefeed] [?\M-\n])
 +(define-key local-function-key-map [M-clear] [?\M-\C-l])
 +(define-key local-function-key-map [M-return] [?\M-\C-m])
 +(define-key local-function-key-map [M-escape] [?\M-\e])
  
  ;; These tell read-char how to convert
  ;; these special chars to ASCII.
@@@ -1585,7 -1585,10 +1585,10 @@@ in `selection-converter-alist', which s
      (if (and type-data
             (setq str (mac-coerce-ae-data (car type-data)
                                           (cdr type-data) "TEXT")))
-       (string-to-number str)
+       (let ((num (string-to-number str)))
+         ;; Mac OS Classic may return "0e+0" as the coerced value for
+         ;; the type "magn" and the data "\000\000\000\000".
+         (if (= num 0.0) 0 num))
        nil)))
  
  (defun mac-bytes-to-integer (bytes &optional from to)
@@@ -1750,7 -1753,9 +1753,9 @@@ Currently the `mailto' scheme is suppor
    (let* ((ae (mac-event-ae event))
         (parsed-url (url-generic-parse-url (mac-ae-text ae))))
      (if (string= (url-type parsed-url) "mailto")
-       (url-mailto parsed-url)
+       (progn
+         (url-mailto parsed-url)
+         (select-frame-set-input-focus (selected-frame)))
        (mac-resume-apple-event ae t))))
  
  (setq mac-apple-event-map (make-sparse-keymap))
@@@ -1796,7 -1801,7 +1801,7 @@@ modifiers, it changes global tool-bar v
    'mac-handle-toolbar-switch-mode)
  
  ;;; Font panel
- (when (fboundp 'mac-set-font-panel-visibility)
+ (when (fboundp 'mac-set-font-panel-visible-p)
  
  (define-minor-mode mac-font-panel-mode
    "Toggle use of the font panel.
@@@ -1804,7 -1809,7 +1809,7 @@@ With numeric ARG, display the font pane
    :init-value nil
    :global t
    :group 'mac
-   (mac-set-font-panel-visibility mac-font-panel-mode))
+   (mac-set-font-panel-visible-p mac-font-panel-mode))
  
  (defun mac-handle-font-panel-closed (event)
    "Update internal status in response to font panel closed EVENT."
                           "Show the font panel as a floating dialog")
    'showhide-speedbar)
  
- ) ;; (fboundp 'mac-set-font-panel-visibility)
+ ) ;; (fboundp 'mac-set-font-panel-visible-p)
  
  ;;; Text Services
  (defvar mac-ts-active-input-buf ""
@@@ -2273,8 -2278,7 +2278,7 @@@ See also `mac-dnd-known-types'.
      (dolist (item (mac-ae-list ae))
        (if (not (equal (car item) "null"))
          (mac-dnd-drop-data event (selected-frame) window
-                            (cdr item) (car item) action))))
-   (select-frame-set-input-focus (selected-frame)))
+                            (cdr item) (car item) action)))))
  \f
  ;;; Do the actual Windows setup here; the above code just defines
  ;;; functions and variables that we use now.
diff --combined src/Makefile.in
index 0aa80866a385ce2d481ffa91b656e2e96ec74db6,9ddfdc7bfe22641ad152f9a868a1dbef319fe4e7..e19083e3e15ce083146e8b9e974b7c054276954f
@@@ -403,8 -403,9 +403,9 @@@ LIBXT=$(LIBW
  #endif /* not USE_X_TOOLKIT */
  
  #if HAVE_XFT
- #undef LIB_X11_LIB
- #define LIB_X11_LIB @XFT_LIBS@
+ #undef LIB_X11_LIB /* XFT_LIBS includes -lX11 */
+ #define LIB_X11_LIB
+ XFT_LIBS=@XFT_LIBS@
  #endif /* HAVE_XFT */
  
  #if HAVE_XPM
  /* LD_SWITCH_X_DEFAULT comes after everything else that specifies
     options for where to find X libraries, but before those libraries.  */
  X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
- LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+ LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM $(XFT_LIBS)
  #else /* not HAVE_X11 */
  LIBX= $(LIBXMENU) LD_SWITCH_X_SITE -lX10 LIBX10_MACHINE LIBX10_SYSTEM
  #endif /* not HAVE_X11 */
@@@ -584,7 -585,7 +585,7 @@@ emacsappsrc = ${srcdir}/../mac/Emacs.ap
     whose initialized data areas should be dumped as pure by dump-emacs.  */
  obj=    dispnew.o frame.o scroll.o xdisp.o $(XMENU_OBJ) window.o \
        charset.o coding.o category.o ccl.o \
 -      cm.o term.o xfaces.o $(XOBJ) $(GTK_OBJ)\
 +      cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ)\
        emacs.o keyboard.o macros.o keymap.o sysdep.o \
        buffer.o filelock.o insdel.o marker.o \
        minibuf.o fileio.o dired.o filemode.o \
@@@ -726,7 -727,6 +727,7 @@@ otherobj= $(termcapobj) lastfile.o $(ma
  lisp= \
        ${lispsource}abbrev.elc \
        ${lispsource}buff-menu.elc \
 +      ${lispsource}server.elc \
        ${lispsource}button.elc \
        ${lispsource}emacs-lisp/byte-run.elc \
        ${lispsource}cus-face.elc \
        MOUSE_SUPPORT \
        ${lispsource}emacs-lisp/float-sup.elc \
        ${lispsource}frame.elc \
 +      ${lispsource}termdev.elc \
        ${lispsource}help.elc \
        ${lispsource}indent.elc \
        ${lispsource}isearch.elc \
  shortlisp= \
        ../lisp/abbrev.elc \
        ../lisp/buff-menu.elc \
 +      ../lisp/server.elc \
        ../lisp/button.elc \
        ../lisp/emacs-lisp/byte-run.elc \
        ../lisp/cus-face.elc \
        ../lisp/emacs-lisp/float-sup.elc \
        ../lisp/format.elc \
        ../lisp/frame.elc \
 +      ../lisp/termdev.elc \
        ../lisp/help.elc \
        ../lisp/indent.elc \
        ../lisp/isearch.elc \
@@@ -932,9 -929,7 +933,9 @@@ SOME_MACHINE_LISP = ${dotdot}/lisp/mous
    ${dotdot}/lisp/x-dnd.elc \
    ${dotdot}/lisp/international/ccl.elc \
    ${dotdot}/lisp/international/codepage.elc \
 -  ${dotdot}/lisp/international/fontset.elc
 +  ${dotdot}/lisp/international/fontset.elc \
 +  ${dotdot}/lisp/mouse.elc \
 +  ${dotdot}/lisp/term/x-win.elc
  
  /* Construct full set of libraries to be linked.
     Note that SunOS needs -lm to come before -lc; otherwise, you get
@@@ -980,7 -975,7 +981,7 @@@ emacs${EXEEXT}: temacs${EXEEXT} ${etc}D
     for the first time, this prevents any variation between configurations
     in the contents of the DOC file.
     Likewise for ${SOME_MACHINE_LISP}.  */
 -${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
 +${etc}DOC: ${libsrc}make-docfile ${obj} ${shortlisp} ${SOME_MACHINE_LISP}
        -rm -f ${etc}DOC
        ${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
        ${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
@@@ -1103,7 -1098,7 +1104,7 @@@ callint.o: callint.c window.h commands.
     keyboard.h dispextern.h $(config_h)
  callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
        process.h systty.h syssignal.h charset.h coding.h ccl.h msdos.h \
 -        composite.h w32.h blockinput.h atimer.h systime.h
 +        composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
  casefiddle.o: casefiddle.c syntax.h commands.h buffer.h composite.h \
        charset.h keymap.h $(config_h)
  casetab.o: casetab.c buffer.h $(config_h)
@@@ -1112,8 -1107,8 +1113,8 @@@ ccl.o: ccl.c ccl.h charset.h coding.h $
  charset.o: charset.c charset.h buffer.h coding.h composite.h disptab.h \
        $(config_h)
  coding.o: coding.c coding.h ccl.h buffer.h charset.h intervals.h composite.h \
 -      window.h dispextern.h $(config_h)
 -cm.o: cm.c cm.h termhooks.h $(config_h)
 +      window.h dispextern.h frame.h termhooks.h $(config_h)
 +cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
  cmds.o: cmds.c syntax.h buffer.h charset.h commands.h window.h $(config_h) \
        msdos.h dispextern.h keyboard.h keymap.h
  pre-crt0.o: pre-crt0.c
@@@ -1121,7 -1116,7 +1122,7 @@@ ecrt0.o: ecrt0.c $(config_h
        CRT0_COMPILE ${srcdir}/ecrt0.c
  dired.o: dired.c commands.h buffer.h $(config_h) charset.h coding.h regex.h \
     systime.h blockinput.h
 -dispnew.o: dispnew.c  systty.h systime.h commands.h process.h frame.h \
 +dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
     window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
     disptab.h indent.h intervals.h \
     xterm.h blockinput.h atimer.h charset.h msdos.h composite.h keyboard.h \
@@@ -1141,10 -1136,10 +1142,10 @@@ filelock.o: filelock.c buffer.h charset
  filemode.o: filemode.c  $(config_h)
  frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
     blockinput.h atimer.h systime.h buffer.h charset.h fontset.h \
 -   msdos.h dosfns.h dispextern.h w32term.h macterm.h $(config_h)
 -fringe.o: fringe.c dispextern.h frame.h window.h buffer.h $(config_h)
 +   msdos.h dosfns.h dispextern.h w32term.h macterm.h termchar.h $(config_h)
 +fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
  fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h charset.h frame.h \
 -   keyboard.h $(config_h)
 +   keyboard.h termhooks.h $(config_h)
  getloadavg.o: getloadavg.c $(config_h)
  image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
     systime.h xterm.h w32term.h w32gui.h macterm.h macgui.h $(config_h)
@@@ -1155,7 -1150,7 +1156,7 @@@ insdel.o: insdel.c window.h buffer.h $(
     dispextern.h atimer.h systime.h region-cache.h $(config_h)
  keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h charset.h \
     commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
 -   systty.h systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
 +   systime.h dispextern.h syntax.h $(INTERVAL_SRC) blockinput.h \
     atimer.h xterm.h puresize.h msdos.h keymap.h w32term.h macterm.h $(config_h)
  keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
     atimer.h systime.h puresize.h charset.h intervals.h keymap.h window.h \
@@@ -1170,8 -1165,7 +1171,8 @@@ vm-limit.o: vm-limit.c mem-limits.h $(c
  marker.o: marker.c buffer.h charset.h $(config_h)
  md5.o: md5.c md5.h $(config_h)
  minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
 -   buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h $(config_h)
 +   buffer.h commands.h charset.h msdos.h $(INTERVAL_SRC) keymap.h \
 +   termhooks.h $(config_h)
  mktime.o: mktime.c $(config_h)
  msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
     termopts.h termchar.h charset.h coding.h ccl.h disptab.h window.h \
@@@ -1183,7 -1177,7 +1184,7 @@@ process.o: process.c process.h buffer.
  regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h charset.h
  region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
  scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
 -   $(config_h)
 +   termhooks.h $(config_h)
  search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
     blockinput.h atimer.h systime.h category.h charset.h composite.h \
     $(INTERVAL_SRC) $(config_h)
@@@ -1192,13 -1186,11 +1193,13 @@@ syntax.o: syntax.c syntax.h buffer.h co
     composite.h keymap.h regex.h $(INTERVAL_SRC) $(config_h)
  sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
     process.h dispextern.h termhooks.h termchar.h termopts.h \
 -   frame.h atimer.h window.h msdos.h dosfns.h keyboard.h  $(config_h)
 +   frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
  term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
     disptab.h dispextern.h keyboard.h charset.h coding.h ccl.h msdos.h \
     window.h keymap.h
  termcap.o: termcap.c $(config_h)
 +terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
 +   keyboard.h $(config_h)
  terminfo.o: terminfo.c $(config_h)
  tparam.o: tparam.c $(config_h)
  undo.o: undo.c buffer.h commands.h window.h $(config_h)
@@@ -1211,7 -1203,7 +1212,7 @@@ w16select.o: w16select.c dispextern.h f
  widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
     $(srcdir)/../lwlib/lwlib.h $(config_h)
  window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
 -   termhooks.h disptab.h keyboard.h dispextern.h msdos.h composite.h \
 +   disptab.h keyboard.h dispextern.h msdos.h composite.h \
     keymap.h blockinput.h $(INTERVAL_SRC) xterm.h w32term.h macterm.h $(config_h)
  xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h coding.h \
     termchar.h frame.h window.h disptab.h termhooks.h charset.h $(config_h) \
     msdos.h composite.h fontset.h blockinput.h atimer.h systime.h keymap.h
  xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h \
     window.h charset.h msdos.h dosfns.h composite.h atimer.h systime.h \
 -   keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) $(config_h)
 +   keyboard.h fontset.h w32term.h macterm.h $(INTERVAL_SRC) termchar.h \
 +   termhooks.h $(config_h)
  xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
     $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
 -   charset.h gtkutil.h $(config_h)
 +   charset.h gtkutil.h termchar.h termhooks.h $(config_h)
  xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
     keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h \
     gtkutil.h msdos.h coding.h $(config_h)
@@@ -1232,7 -1223,7 +1233,7 @@@ xterm.o: xterm.c xterm.h termhooks.h te
    keyboard.h gnu.h charset.h ccl.h fontset.h composite.h \
    coding.h process.h gtkutil.h $(config_h)
  xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
 -  buffer.h atimer.h systime.h $(config_h)
 +  buffer.h atimer.h systime.h termhooks.h $(config_h)
  xrdb.o: xrdb.c $(config_h) epaths.h
  xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
    lisp.h termopts.h
@@@ -1249,16 -1240,15 +1250,16 @@@ alloc.o: alloc.c process.h frame.h wind
   blockinput.h atimer.h systime.h charset.h dispextern.h $(config_h) $(INTERVAL_SRC)
  bytecode.o: bytecode.c buffer.h syntax.h charset.h window.h dispextern.h \
    frame.h xterm.h $(config_h)
 -data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h $(config_h)
 +data.o: data.c buffer.h puresize.h charset.h syssignal.h keyboard.h frame.h termhooks.h $(config_h)
  eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
    dispextern.h $(config_h)
  floatfns.o: floatfns.c $(config_h)
  fns.o: fns.c commands.h $(config_h) frame.h buffer.h charset.h keyboard.h \
   keymap.h frame.h window.h dispextern.h $(INTERVAL_SRC) coding.h md5.h \
 - blockinput.h xterm.h
 + blockinput.h xterm.h termhooks.h
  print.o: print.c process.h frame.h window.h buffer.h keyboard.h charset.h \
 -   $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h
 +   $(config_h) dispextern.h termchar.h $(INTERVAL_SRC) msdos.h composite.h \
 +   termchar.h
  lread.o: lread.c commands.h keyboard.h buffer.h epaths.h charset.h \
   $(config_h) $(INTERVAL_SRC) termhooks.h coding.h msdos.h
  
@@@ -1273,12 -1263,12 +1274,12 @@@ composite.o: composite.c buffer.h  char
     OTHER_FILES and OBJECTS_MACHINE
     select which of these should be compiled.  */
  
 -sunfns.o: sunfns.c buffer.h window.h dispextern.h $(config_h)
 +sunfns.o: sunfns.c buffer.h window.h dispextern.h termhooks.h $(config_h)
  
  #ifdef HAVE_CARBON
  abbrev.o buffer.o callint.o cmds.o dispnew.o editfns.o fileio.o frame.o \
    fontset.o indent.o insdel.o keyboard.o macros.o minibuf.o msdos.o process.o \
 -  scroll.o sysdep.o term.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
 +  scroll.o sysdep.o term.o terminal.o widget.o window.o xdisp.o xfaces.o xfns.o xmenu.o \
    xterm.o xselect.o sound.o: macgui.h
  mac.o: mac.c process.h sysselect.h blockinput.h atimer.h systime.h charset.h \
    coding.h ccl.h $(config_h)
@@@ -1312,15 -1302,10 +1313,10 @@@ macosx-bundle: ${emacsapp}Contents/Reso
        ${emacsapp}Contents/Info.plist ${emacsapp}Contents/PkgInfo \
        ${emacsapp}Contents/Resources/Emacs.icns \
        ${emacsapp}Contents/Resources/English.lproj/InfoPlist.strings
- macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs \
-   ${emacsapp}Contents/Resources/Emacs.rsrc
+ macosx-app: macosx-bundle ${emacsapp}Contents/MacOS/Emacs
  ${emacsapp}Contents/MacOS/Emacs: emacs${EXEEXT}
        mkdir -p ${emacsapp}Contents/MacOS/;
        cd ${emacsapp}Contents/MacOS/; cp ../../../../src/emacs${EXEEXT} Emacs${EXEEXT}
- ${emacsapp}Contents/Resources/Emacs.rsrc: ../mac/src/Emacs.r
-       /Developer/Tools/Rez -useDF \
-       -o ${emacsapp}Contents/Resources/Emacs.rsrc \
-       /System/Library/Frameworks/Carbon.framework/Headers/Carbon.r $<
  #endif
  
  ${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
diff --combined src/buffer.c
index ea4752b4a6ec4b0ffadcd78951093a8687b5567e,b09d6e88f0b7a80f42a8037b0825f0990395703e..73e2fb376f74f44e984f4b82bf6c319a0e9d7536
@@@ -215,38 -215,25 +215,38 @@@ frame parameter come first, followed b
       (frame)
       Lisp_Object frame;
  {
 -  Lisp_Object framelist, general;
 +  Lisp_Object general;
    general = Fmapcar (Qcdr, Vbuffer_alist);
  
    if (FRAMEP (frame))
      {
 -      Lisp_Object tail;
 +      Lisp_Object framelist, prevlist, tail;
 +      Lisp_Object args[3];
  
        CHECK_FRAME (frame);
  
        framelist = Fcopy_sequence (XFRAME (frame)->buffer_list);
 +      prevlist = Fnreverse (Fcopy_sequence (XFRAME (frame)->buried_buffer_list));
  
 -      /* Remove from GENERAL any buffer that duplicates one in FRAMELIST.  */
 +      /* Remove from GENERAL any buffer that duplicates one in
 +         FRAMELIST or PREVLIST.  */
        tail = framelist;
 -      while (! NILP (tail))
 +      while (CONSP (tail))
        {
          general = Fdelq (XCAR (tail), general);
          tail = XCDR (tail);
        }
 -      return nconc2 (framelist, general);
 +      tail = prevlist;
 +      while (CONSP (tail))
 +      {
 +        general = Fdelq (XCAR (tail), general);
 +        tail = XCDR (tail);
 +      }
 +
 +      args[0] = framelist;
 +      args[1] = general;
 +      args[2] = prevlist;
 +      return Fnconc (3, args);
      }
  
    return general;
@@@ -432,7 -419,7 +432,7 @@@ The value is never nil.  */
    XSETBUFFER (buf, b);
    Vbuffer_alist = nconc2 (Vbuffer_alist, Fcons (Fcons (name, buf), Qnil));
  
-   /* An error in calling the function here (should someone redfine it)
+   /* An error in calling the function here (should someone redefine it)
       can lead to infinite regress until you run out of stack.  rms
       says that's not worth protecting against.  */
    if (!NILP (Ffboundp (Qucs_set_table_for_input)))
@@@ -804,9 -791,8 +804,8 @@@ DEFUN ("generate-new-buffer-name", Fgen
  If there is no live buffer named NAME, then return NAME.
  Otherwise modify name by appending `<NUMBER>', incrementing NUMBER
  \(starting at 2) until an unused name is found, and then return that name.
- Optional second argument IGNORE specifies a name that is okay to use
- \(if it is in the sequence to be tried)
- even if a buffer with that name exists.  */)
+ Optional second argument IGNORE specifies a name that is okay to use (if
+ it is in the sequence to be tried) even if a buffer with that name exists.  */)
       (name, ignore)
       register Lisp_Object name, ignore;
  {
@@@ -1145,8 -1131,8 +1144,8 @@@ state of the current buffer.  Use with 
  DEFUN ("buffer-modified-tick", Fbuffer_modified_tick, Sbuffer_modified_tick,
         0, 1, 0,
         doc: /* Return BUFFER's tick counter, incremented for each change in text.
- Each buffer has a tick counter which is incremented each time the text in
- that buffer is changed.  It wraps around occasionally.
+ Each buffer has a tick counter which is incremented each time the
+ text in that buffer is changed.  It wraps around occasionally.
  No argument or nil as argument means use current buffer as BUFFER.  */)
       (buffer)
       register Lisp_Object buffer;
@@@ -1588,23 -1574,6 +1587,23 @@@ record_buffer (buf
    XSETCDR (link, Vbuffer_alist);
    Vbuffer_alist = link;
  
 +  /* Effectively do a delq on buried_buffer_list.  */
 +  
 +  prev = Qnil;
 +  for (link = XFRAME (frame)->buried_buffer_list; CONSP (link);
 +       link = XCDR (link))
 +    {
 +      if (EQ (XCAR (link), buf))
 +        {
 +          if (NILP (prev))
 +            XFRAME (frame)->buried_buffer_list = XCDR (link);
 +          else
 +            XSETCDR (prev, XCDR (XCDR (prev)));
 +          break;
 +        }
 +      prev = link;
 +    }
 +
    /* Now move this buffer to the front of frame_buffer_list also.  */
  
    prev = Qnil;
@@@ -2085,10 -2054,10 +2084,10 @@@ selected window if it is displayed ther
        XSETCDR (link, Qnil);
        Vbuffer_alist = nconc2 (Vbuffer_alist, link);
  
 -      /* Removing BUFFER from frame-specific lists
 -       has the effect of putting BUFFER at the end
 -       of the combined list in each frame.  */
 -      frames_discard_buffer (buffer);
 +      XFRAME (selected_frame)->buffer_list
 +        = Fdelq (buffer, XFRAME (selected_frame)->buffer_list);
 +      XFRAME (selected_frame)->buried_buffer_list
 +        = Fcons (buffer, Fdelq (buffer, XFRAME (selected_frame)->buried_buffer_list));
      }
  
    return Qnil;
diff --combined src/callproc.c
index 8e7ff244697220b370cecab1d1e4bb8e72adec6b,90e5b11a9a2efafd0e536495a5c5dc63d1afd9e9..ce9eb73dd5417c3ed4dd281428688b2901cdf5fc
@@@ -84,8 -84,6 +84,8 @@@ extern int errno
  #include "syssignal.h"
  #include "systty.h"
  #include "blockinput.h"
 +#include "frame.h"
 +#include "termhooks.h"
  
  #ifdef MSDOS
  #include "msdos.h"
@@@ -132,7 -130,6 +132,7 @@@ int synch_process_termsig
  /* If synch_process_death is zero,
     this is exit code of synchronous subprocess.  */
  int synch_process_retcode;
 +
  \f
  /* Clean up when exiting Fcall_process.
     On MSDOS, delete the temporary file on any kind of termination.
@@@ -1184,40 -1181,6 +1184,40 @@@ usage: (call-process-region START END P
  
  static int relocate_fd ();
  
 +static char **
 +add_env (char **env, char **new_env, char *string)
 +{
 +  char **ep;
 +  int ok = 1;
 +  if (string == NULL)
 +    return new_env;
 +
 +  /* See if this string duplicates any string already in the env.
 +     If so, don't put it in.
 +     When an env var has multiple definitions,
 +     we keep the definition that comes first in process-environment.  */
 +  for (ep = env; ok && ep != new_env; ep++)
 +    {
 +      char *p = *ep, *q = string;
 +      while (ok)
 +        {
 +          if (*q != *p)
 +            break;
 +          if (*q == 0)
 +            /* The string is a lone variable name; keep it for now, we
 +               will remove it later.  It is a placeholder for a
 +               variable that is not to be included in the environment.  */
 +            break;
 +          if (*q == '=')
 +            ok = 0;
 +          p++, q++;
 +        }
 +    }
 +  if (ok)
 +    *new_env++ = string;
 +  return new_env;
 +}
 +
  /* This is the last thing run in a newly forked inferior
     either synchronous or asynchronous.
     Copy descriptors IN, OUT and ERR as descriptors 0, 1 and 2.
@@@ -1319,23 -1282,14 +1319,23 @@@ child_setup (in, out, err, new_argv, se
        temp[--i] = 0;
    }
  
 -  /* Set `env' to a vector of the strings in Vprocess_environment.  */
 +  /* Set `env' to a vector of the strings in the environment.  */
    {
      register Lisp_Object tem;
      register char **new_env;
 +    char **p, **q;
      register int new_length;
 +    Lisp_Object local = get_frame_param (XFRAME (Fframe_with_environment (selected_frame)),
 +                                         Qenvironment);
  
      new_length = 0;
 +
      for (tem = Vprocess_environment;
 +         CONSP (tem) && STRINGP (XCAR (tem));
 +         tem = XCDR (tem))
 +      new_length++;
 +
 +    for (tem = local;
         CONSP (tem) && STRINGP (XCAR (tem));
         tem = XCDR (tem))
        new_length++;
  
      /* If we have a PWD envvar, pass one down,
         but with corrected value.  */
 -    if (getenv ("PWD"))
 +    if (egetenv ("PWD"))
        *new_env++ = pwd_var;
 -
 -    /* Copy the Vprocess_environment strings into new_env.  */
 + 
 +    /* Overrides.  */
      for (tem = Vprocess_environment;
         CONSP (tem) && STRINGP (XCAR (tem));
         tem = XCDR (tem))
 +      new_env = add_env (env, new_env, SDATA (XCAR (tem)));
 +
 +    /* Local part of environment.  */
 +    for (tem = local;
 +         CONSP (tem) && STRINGP (XCAR (tem));
 +         tem = XCDR (tem))
 +      new_env = add_env (env, new_env, SDATA (XCAR (tem)));
 +
 +    *new_env = 0;
 +
 +    /* Remove variable names without values.  */
 +    p = q = env;
 +    while (*p != 0)
        {
 -      char **ep = env;
 -      char *string = (char *) SDATA (XCAR (tem));
 -      /* See if this string duplicates any string already in the env.
 -         If so, don't put it in.
 -         When an env var has multiple definitions,
 -         we keep the definition that comes first in process-environment.  */
 -      for (; ep != new_env; ep++)
 -        {
 -          char *p = *ep, *q = string;
 -          while (1)
 -            {
 -              if (*q == 0)
 -                /* The string is malformed; might as well drop it.  */
 -                goto duplicate;
 -              if (*q != *p)
 -                break;
 -              if (*q == '=')
 -                goto duplicate;
 -              p++, q++;
 -            }
 -        }
 -      *new_env++ = string;
 -      duplicate: ;
 +        while (*q != 0 && strchr (*q, '=') == NULL)
 +          *q++;
 +        *p = *q++;
 +        if (*p != 0)
 +          p++;
        }
 -    *new_env = 0;
    }
  #ifdef WINDOWSNT
    prepare_standard_handles (in, out, err, handles);
@@@ -1486,69 -1446,29 +1486,69 @@@ relocate_fd (fd, minfd
  }
  
  static int
 -getenv_internal (var, varlen, value, valuelen)
 +getenv_internal (var, varlen, value, valuelen, frame)
       char *var;
       int varlen;
       char **value;
       int *valuelen;
 +     Lisp_Object frame;
  {
    Lisp_Object scan;
  
 -  for (scan = Vprocess_environment; CONSP (scan); scan = XCDR (scan))
 +  if (NILP (frame))
 +    {
 +      /* Try to find VAR in Vprocess_environment first.  */
 +      for (scan = Vprocess_environment; CONSP (scan); scan = XCDR (scan))
 +        {
 +          Lisp_Object entry = XCAR (scan);
 +          if (STRINGP (entry)
 +              && SBYTES (entry) >= varlen
 +#ifdef WINDOWSNT
 +              /* NT environment variables are case insensitive.  */
 +              && ! strnicmp (SDATA (entry), var, varlen)
 +#else  /* not WINDOWSNT */
 +              && ! bcmp (SDATA (entry), var, varlen)
 +#endif /* not WINDOWSNT */
 +              )
 +            {
 +              if (SBYTES (entry) > varlen && SREF (entry, varlen) == '=')
 +                {
 +                  *value = (char *) SDATA (entry) + (varlen + 1);
 +                  *valuelen = SBYTES (entry) - (varlen + 1);
 +                  return 1;
 +                }
 +              else if (SBYTES (entry) == varlen)
 +                {
 +                  /* Lone variable names in Vprocess_environment mean that
 +                     variable should be removed from the environment. */
 +                  return 0;
 +                }
 +            }
 +        }
 +      frame = selected_frame;
 +    }
 +
 +  /* Find the environment in which to search the variable. */
 +  CHECK_FRAME (frame);
 +  frame = Fframe_with_environment (frame);
 +
 +  for (scan = get_frame_param (XFRAME (frame), Qenvironment);
 +       CONSP (scan);
 +       scan = XCDR (scan))
      {
        Lisp_Object entry;
  
        entry = XCAR (scan);
        if (STRINGP (entry)
 -        && SBYTES (entry) > varlen
 -        && SREF (entry, varlen) == '='
 +          && SBYTES (entry) > varlen
 +          && SREF (entry, varlen) == '='
  #ifdef WINDOWSNT
 -        /* NT environment variables are case insensitive.  */
 -        && ! strnicmp (SDATA (entry), var, varlen)
 +          /* NT environment variables are case insensitive.  */
 +          && ! strnicmp (SDATA (entry), var, varlen)
  #else  /* not WINDOWSNT */
 -        && ! bcmp (SDATA (entry), var, varlen)
 +          && ! bcmp (SDATA (entry), var, varlen)
  #endif /* not WINDOWSNT */
 -        )
 +          )
        {
          *value    = (char *) SDATA (entry) + (varlen + 1);
          *valuelen = SBYTES (entry) - (varlen + 1);
    return 0;
  }
  
 -DEFUN ("getenv-internal", Fgetenv_internal, Sgetenv_internal, 1, 1, 0,
 -       doc: /* Return the value of environment variable VAR, as a string.
 -VAR should be a string.  Value is nil if VAR is undefined in the environment.
 -This function consults the variable `process-environment' for its value.  */)
 -     (var)
 -     Lisp_Object var;
 +DEFUN ("getenv-internal", Fgetenv_internal, Sgetenv_internal, 1, 2, 0,
 +       doc: /* Get the value of environment variable VARIABLE.
 +VARIABLE should be a string.  Value is nil if VARIABLE is undefined in
 +the environment.  Otherwise, value is a string.
 +
 +This function searches `process-environment' for VARIABLE.  If it is
 +not found there, then it continues the search in the environment list
 +of the selected frame.
 +
 +If optional parameter FRAME is non-nil, then this function will ignore
 +`process-environment' and will simply look up the variable in that
 +frame's environment.  */)
 +     (variable, frame)
 +     Lisp_Object variable, frame;
  {
    char *value;
    int valuelen;
  
 -  CHECK_STRING (var);
 -  if (getenv_internal (SDATA (var), SBYTES (var),
 -                     &value, &valuelen))
 +  CHECK_STRING (variable);
 +  if (getenv_internal (SDATA (variable), SBYTES (variable),
 +                     &value, &valuelen, frame))
      return make_string (value, valuelen);
    else
      return Qnil;
  }
  
 -/* A version of getenv that consults process_environment, easily
 -   callable from C.  */
 +/* A version of getenv that consults the Lisp environment lists,
 +   easily callable from C.  */
  char *
  egetenv (var)
       char *var;
    char *value;
    int valuelen;
  
 -  if (getenv_internal (var, strlen (var), &value, &valuelen))
 +  if (getenv_internal (var, strlen (var), &value, &valuelen, Qnil))
      return value;
    else
      return 0;
@@@ -1717,8 -1629,8 +1717,8 @@@ init_callproc (
      {
        char *dir = getenv ("TMPDIR");
        Vtemp_file_name_pattern
 -      = Fexpand_file_name (build_string ("emacsXXXXXX"),
 -                           build_string (dir));
 +       = Fexpand_file_name (build_string ("emacsXXXXXX"),
 +                            build_string (dir));
      }
    else
      Vtemp_file_name_pattern = build_string ("/tmp/emacsXXXXXX");
  }
  
  void
 -set_process_environment ()
 +set_initial_environment ()
  {
    register char **envp;
 -
 -  Vprocess_environment = Qnil;
 +  Lisp_Object env = Qnil;
  #ifndef CANNOT_DUMP
    if (initialized)
  #endif
 -    for (envp = environ; *envp; envp++)
 -      Vprocess_environment = Fcons (build_string (*envp),
 -                                  Vprocess_environment);
 +    {
 +      for (envp = environ; *envp; envp++)
 +        env = Fcons (build_string (*envp), env);
 +      store_frame_param (SELECTED_FRAME(), Qenvironment, env);
 +    }
  }
  
  void
@@@ -1781,12 -1692,12 +1781,12 @@@ These are files intended for Emacs to u
  
    DEFVAR_LISP ("doc-directory", &Vdoc_directory,
               doc: /* Directory containing the DOC file that comes with GNU Emacs.
- This is usually the same as data-directory.  */);
+ This is usually the same as `data-directory'.  */);
  
    DEFVAR_LISP ("configure-info-directory", &Vconfigure_info_directory,
               doc: /* For internal use by the build procedure only.
  This is the name of the directory in which the build procedure installed
- Emacs's info files; the default value for Info-default-directory-list
+ Emacs's info files; the default value for `Info-default-directory-list'
  includes this.  */);
    Vconfigure_info_directory = build_string (PATH_INFO);
  
@@@ -1805,27 -1716,15 +1805,27 @@@ This is used by `call-process-region'
    /* This variable is initialized in init_callproc.  */
  
    DEFVAR_LISP ("process-environment", &Vprocess_environment,
 -             doc: /* List of environment variables for subprocesses to inherit.
 +             doc: /* List of overridden environment variables for subprocesses to inherit.
  Each element should be a string of the form ENVVARNAME=VALUE.
 +
 +Entries in this list take precedence to those in the frame-local
 +environments.  Therefore, let-binding `process-environment' is an easy
 +way to temporarily change the value of an environment variable,
 +irrespective of where it comes from.  To use `process-environment' to
 +remove an environment variable, include only its name in the list,
 +without "=VALUE".
 +
 +This variable is set to nil when Emacs starts.
 +
  If multiple entries define the same variable, the first one always
  takes precedence.
 -The environment which Emacs inherits is placed in this variable
 -when Emacs starts.
 +
  Non-ASCII characters are encoded according to the initial value of
 -`locale-coding-system', i.e. the elements must normally be decoded for use.
 +`locale-coding-system', i.e. the elements must normally be decoded for
 +use.
 +
  See `setenv' and `getenv'.  */);
 +  Vprocess_environment = Qnil;
  
  #ifndef VMS
    defsubr (&Scall_process);
diff --combined src/dispnew.c
index c2a37f8248e435f5276418092ecd0a081a55fd68,489c7c647e16a4946beacabac187dcbbff0a1635..4c3a4ca3f02d8195f0605998ff8e87f92ea5481e
@@@ -32,6 -32,7 +32,6 @@@ Boston, MA 02110-1301, USA.  *
  #include "lisp.h"
  #include "termchar.h"
  #include "termopts.h"
 -#include "termhooks.h"
  /* cm.h must come after dispextern.h on Windows.  */
  #include "dispextern.h"
  #include "cm.h"
@@@ -39,7 -40,6 +39,7 @@@
  #include "charset.h"
  #include "keyboard.h"
  #include "frame.h"
 +#include "termhooks.h"
  #include "window.h"
  #include "commands.h"
  #include "disptab.h"
@@@ -237,9 -237,9 +237,9 @@@ int inverse_video
  EMACS_INT baud_rate;
  
  /* Either nil or a symbol naming the window system under which Emacs
 -   is running.  */
 +   creates the first frame.  */
  
 -Lisp_Object Vwindow_system;
 +Lisp_Object Vinitial_window_system;
  
  /* Version number of X windows: 10, 11 or nil.  */
  
@@@ -281,6 -281,14 +281,6 @@@ Lisp_Object selected_frame
  
  struct frame *last_nonminibuf_frame;
  
 -/* Stdio stream being used for copy of all output.  */
 -
 -FILE *termscript;
 -
 -/* Structure for info on cursor positioning.  */
 -
 -struct cm Wcm;
 -
  /* 1 means SIGWINCH happened when not safe.  */
  
  int delayed_size_change;
@@@ -319,6 -327,11 +319,6 @@@ int glyph_pool_count
  
  static struct frame *frame_matrix_frame;
  
 -/* Current interface for window-based redisplay.  Set from init_xterm.
 -   A null value means we are not using window-based redisplay.  */
 -
 -struct redisplay_interface *rif;
 -
  /* Non-zero means that fonts have been loaded since the last glyph
     matrix adjustments.  Redisplay must stop, and glyph matrices must
     be adjusted when this flag becomes non-zero during display.  The
@@@ -1409,7 -1422,7 +1409,7 @@@ line_hash_code (row
        {
          int c = glyph->u.ch;
          int face_id = glyph->face_id;
 -        if (must_write_spaces)
 +        if (FRAME_MUST_WRITE_SPACES (SELECTED_FRAME ())) /* XXX Is SELECTED_FRAME OK here? */
            c -= SPACEGLYPH;
          hash = (((hash << 4) + (hash >> 24)) & 0x0fffffff) + c;
          hash = (((hash << 4) + (hash >> 24)) & 0x0fffffff) + face_id;
@@@ -1441,7 -1454,7 +1441,7 @@@ line_draw_cost (matrix, vpos
    int glyph_table_len = GLYPH_TABLE_LENGTH;
  
    /* Ignore trailing and leading spaces if we can.  */
 -  if (!must_write_spaces)
 +  if (!FRAME_MUST_WRITE_SPACES (SELECTED_FRAME ())) /* XXX Is SELECTED_FRAME OK here? */
      {
        /* Skip from the end over trailing spaces.  */
        while (end > beg && CHAR_GLYPH_SPACE_P (*(end - 1)))
@@@ -1657,10 -1670,8 +1657,10 @@@ realloc_glyph_pool (pool, matrix_dim
  #if GLYPH_DEBUG
  
  
 -/* Flush standard output.  This is sometimes useful to call from
 -   the debugger.  */
 +/* Flush standard output.  This is sometimes useful to call from the debugger.
 +   XXX Maybe this should be changed to flush the current terminal instead of
 +   stdout.
 +*/
  
  void
  flush_stdout ()
@@@ -3349,15 -3360,12 +3349,15 @@@ DEFUN ("redraw-frame", Fredraw_frame, S
      return Qnil;
  
    update_begin (f);
 +#ifdef MSDOS
    if (FRAME_MSDOS_P (f))
 -    set_terminal_modes ();
 -  clear_frame ();
 +    set_terminal_modes (FRAME_TERMINAL (f));
 +#endif
 +  clear_frame (f);
    clear_current_matrices (f);
    update_end (f);
 -  fflush (stdout);
 +  if (FRAME_TERMCAP_P (f))
 +    fflush (FRAME_TTY (f)->output);
    windows_or_buffers_changed++;
    /* Mark all windows as inaccurate, so that every window will have
       its redisplay done.  */
@@@ -3498,7 -3506,7 +3498,7 @@@ direct_output_for_insert (g
  
    /* If we can't insert glyphs, we can use this method only
       at the end of a line.  */
 -  if (!char_ins_del_ok)
 +  if (!FRAME_CHAR_INS_DEL_OK (f))
      if (PT != ZV && FETCH_BYTE (PT_BYTE) != '\n')
        return 0;
  
    updated_row = glyph_row;
    updated_area = TEXT_AREA;
    update_begin (f);
 -  if (rif)
 +  if (FRAME_RIF (f))
      {
 -      rif->update_window_begin_hook (w);
 +      FRAME_RIF (f)->update_window_begin_hook (w);
  
        if (glyphs == end - n
          /* In front of a space added by append_space.  */
          || (glyphs == end - n - 1
              && (end - n)->charpos <= 0))
 -      rif->write_glyphs (glyphs, n);
 +      FRAME_RIF (f)->write_glyphs (glyphs, n);
        else
 -      rif->insert_glyphs (glyphs, n);
 +      FRAME_RIF (f)->insert_glyphs (glyphs, n);
      }
    else
      {
        if (glyphs == end - n)
 -      write_glyphs (glyphs, n);
 +      write_glyphs (f, glyphs, n);
        else
 -      insert_glyphs (glyphs, n);
 +      insert_glyphs (f, glyphs, n);
      }
  
    w->cursor.hpos += n;
       a frame matrix is used, cursor_to expects frame coordinates,
       and the X and Y parameters are not used.  */
    if (window_redisplay_p)
 -    rif->cursor_to (w->cursor.vpos, w->cursor.hpos,
 -                  w->cursor.y, w->cursor.x);
 +    FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
 +                              w->cursor.y, w->cursor.x);
    else
      {
        int x, y;
              ? XFASTINT (w->left_margin_cols)
              : 0));
        y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
 -      cursor_to (y, x);
 +      cursor_to (f, y, x);
      }
  
  #ifdef HAVE_WINDOW_SYSTEM
    update_window_fringes (w, 0);
  #endif
  
 -  if (rif)
 -    rif->update_window_end_hook (w, 1, 0);
 +  if (FRAME_RIF (f))
 +    FRAME_RIF (f)->update_window_end_hook (w, 1, 0);
    update_end (f);
    updated_row = NULL;
 -  fflush (stdout);
 +  if (FRAME_TERMCAP_P (f))
 +    fflush (FRAME_TTY (f)->output);
  
    TRACE ((stderr, "direct output for insert\n"));
    mark_window_display_accurate (it.window, 1);
@@@ -3778,8 -3785,8 +3778,8 @@@ direct_output_forward_char (n
           && w->cursor.hpos < w->desired_matrix->matrix_w);
  
    if (FRAME_WINDOW_P (f))
 -    rif->cursor_to (w->cursor.vpos, w->cursor.hpos,
 -                  w->cursor.y, w->cursor.x);
 +    FRAME_RIF (f)->cursor_to (w->cursor.vpos, w->cursor.hpos,
 +                              w->cursor.y, w->cursor.x);
    else
      {
        int x, y;
              ? XFASTINT (w->left_margin_cols)
              : 0));
        y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos);
 -      cursor_to (y, x);
 +      cursor_to (f, y, x);
      }
  
 -  fflush (stdout);
 +  if (FRAME_TERMCAP_P (f))
 +    fflush (FRAME_TTY (f)->output);
    redisplay_performed_directly_p = 1;
    return 1;
  }
@@@ -3821,8 -3827,12 +3821,12 @@@ update_frame (f, force_p, inhibit_hairy
    int paused_p;
    struct window *root_window = XWINDOW (f->root_window);
  
+   if (redisplay_dont_pause)
+     force_p = 1;
  #if PERIODIC_PREEMPTION_CHECKING
-   if (!force_p && NUMBERP (Vredisplay_preemption_period))
+   else if (NILP (Vredisplay_preemption_period))
+     force_p = 1;
+   else if (!force_p && NUMBERP (Vredisplay_preemption_period))
      {
        EMACS_TIME tm;
        double p = XFLOATINT (Vredisplay_preemption_period);
        update_end (f);
  
        /* This flush is a performance bottleneck under X,
 -       and it doesn't seem to be necessary anyway (in general).
 +       and it doesn't seem to be necessary anyway (in general).
           It is necessary when resizing the window with the mouse, or
 -       at least the fringes are not redrawn in a timely manner.  ++kfs */
 +       at least the fringes are not redrawn in a timely manner.  ++kfs */
        if (f->force_flush_display_p)
 -      {
 -        rif->flush_display (f);
 -        f->force_flush_display_p = 0;
 -      }
 +      {
 +        FRAME_RIF (f)->flush_display (f);
 +        f->force_flush_display_p = 0;
 +      }
      }
    else
      {
        paused_p = update_frame_1 (f, force_p, inhibit_hairy_id_p);
        update_end (f);
  
 -      if (termscript)
 -      fflush (termscript);
 -      fflush (stdout);
 +      if (FRAME_TERMCAP_P (f))
 +        {
 +          if (FRAME_TTY (f)->termscript)
 +            fflush (FRAME_TTY (f)->termscript);
 +          fflush (FRAME_TTY (f)->output);
 +        }
  
        /* Check window matrices for lost pointers.  */
  #if GLYPH_DEBUG
@@@ -3979,8 -3986,12 +3983,12 @@@ update_single_window (w, force_p
        /* Record that this is not a frame-based redisplay.  */
        set_frame_matrix_frame (NULL);
  
+       if (redisplay_dont_pause)
+       force_p = 1;
  #if PERIODIC_PREEMPTION_CHECKING
-       if (!force_p && NUMBERP (Vredisplay_preemption_period))
+       else if (NILP (Vredisplay_preemption_period))
+       force_p = 1;
+       else if (!force_p && NUMBERP (Vredisplay_preemption_period))
        {
          EMACS_TIME tm;
          double p = XFLOATINT (Vredisplay_preemption_period);
@@@ -4016,8 -4027,7 +4024,8 @@@ redraw_overlapped_rows (w, yb
       int yb;
  {
    int i;
 -
 +  struct frame *f = XFRAME (WINDOW_FRAME (w));
 +  
    /* If rows overlapping others have been changed, the rows being
       overlapped have to be redrawn.  This won't draw lines that have
       already been drawn in update_window_line because overlapped_p in
            {
              updated_row = row;
              updated_area = area;
 -            rif->cursor_to (i, 0, row->y, area == TEXT_AREA ? row->x : 0);
 +            FRAME_RIF (f)->cursor_to (i, 0, row->y,
 +                                        area == TEXT_AREA ? row->x : 0);
              if (row->used[area])
 -              rif->write_glyphs (row->glyphs[area], row->used[area]);
 -            rif->clear_end_of_line (-1);
 +              FRAME_RIF (f)->write_glyphs (row->glyphs[area],
 +                                             row->used[area]);
 +            FRAME_RIF (f)->clear_end_of_line (-1);
            }
  
          row->overlapped_p = 0;
@@@ -4067,8 -4075,7 +4075,8 @@@ redraw_overlapping_rows (w, yb
  {
    int i, bottom_y;
    struct glyph_row *row;
 -
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
 +  
    for (i = 0; i < w->current_matrix->nrows; ++i)
      {
        row = w->current_matrix->rows + i;
@@@ -4159,20 -4166,15 +4167,15 @@@ update_window (w, force_p
  #endif
    extern int input_pending;
    extern Lisp_Object do_mouse_tracking;
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
  #if GLYPH_DEBUG
    /* Check that W's frame doesn't have glyph matrices.  */
    xassert (FRAME_WINDOW_P (XFRAME (WINDOW_FRAME (w))));
 -  xassert (updating_frame != NULL);
  #endif
  
    /* Check pending input the first time so that we can quickly return.  */
-   if (redisplay_dont_pause)
-     force_p = 1;
- #if PERIODIC_PREEMPTION_CHECKING
-   else if (NILP (Vredisplay_preemption_period))
-     force_p = 1;
- #else
-   else if (!force_p)
+ #if !PERIODIC_PREEMPTION_CHECKING
+   if (!force_p)
      detect_input_pending_ignore_squeezables ();
  #endif
  
@@@ -4352,7 -4354,6 +4355,7 @@@ update_marginal_area (w, area, vpos
       int area, vpos;
  {
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
  
    /* Let functions in xterm.c know what area subsequent X positions
       will be relative to.  */
@@@ -4378,7 -4379,6 +4381,7 @@@ update_text_area (w, vpos
  {
    struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
    int changed_p = 0;
  
    /* Let functions in xterm.c know what area subsequent X positions
         mouse-face areas after scrolling and other operations.
         However, it causes excessive flickering when mouse is moved
         across the mode line.  Luckily, turning it off for the mode
-        line doesn't seem to hurt anything. -- cyd.  */
-       || (current_row->mouse_face_p && !current_row->mode_line_p)
+        line doesn't seem to hurt anything. -- cyd.
+          But it is still needed for the header line. -- kfs.  */
+       || (current_row->mouse_face_p
+         && !(current_row->mode_line_p && vpos > 0))
        || current_row->x != desired_row->x)
      {
        rif->cursor_to (vpos, 0, desired_row->y, desired_row->x);
@@@ -4612,7 -4614,6 +4617,7 @@@ update_window_line (w, vpos, mouse_face
  {
    struct glyph_row *current_row = MATRIX_ROW (w->current_matrix, vpos);
    struct glyph_row *desired_row = MATRIX_ROW (w->desired_matrix, vpos);
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
    int changed_p = 0;
  
    /* Set the row being updated.  This is important to let xterm.c
@@@ -4681,7 -4682,6 +4686,7 @@@ set_window_cursor_after_update (w
       struct window *w;
  {
    struct frame *f = XFRAME (w->frame);
 +  struct redisplay_interface *rif = FRAME_RIF (f);
    int cx, cy, vpos, hpos;
  
    /* Not intended for frame matrix updates.  */
@@@ -4905,7 -4905,6 +4910,7 @@@ scrolling_window (w, header_line_p
    int i, j, first_old, first_new, last_old, last_new;
    int nruns, nbytes, n, run_idx;
    struct row_entry *entry;
 +  struct redisplay_interface *rif = FRAME_RIF (XFRAME (WINDOW_FRAME (w)));
  
    /* Skip over rows equal at the start.  */
    for (i = header_line_p ? 1 : 0; i < current_matrix->nrows - 1; ++i)
@@@ -5221,13 -5220,8 +5226,8 @@@ update_frame_1 (f, force_p, inhibit_id_
    if (preempt_count <= 0)
      preempt_count = 1;
  
-   if (redisplay_dont_pause)
-     force_p = 1;
- #if PERIODIC_PREEMPTION_CHECKING
-   else if (NILP (Vredisplay_preemption_period))
-     force_p = 1;
- #else
-   else if (!force_p && detect_input_pending_ignore_squeezables ())
+ #if !PERIODIC_PREEMPTION_CHECKING
+   if (!force_p && detect_input_pending_ignore_squeezables ())
      {
        pause = 1;
        goto do_pause;
  #endif
  
    /* If we cannot insert/delete lines, it's no use trying it.  */
 -  if (!line_ins_del_ok)
 +  if (!FRAME_LINE_INS_DEL_OK (f))
      inhibit_id_p = 1;
  
    /* See if any of the desired lines are enabled; don't compute for
                 Also flush out if likely to have more than 1k buffered
                 otherwise.   I'm told that some telnet connections get
                 really screwed by more than 1k output at once.  */
 -            int outq = PENDING_OUTPUT_COUNT (stdout);
 +            int outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f)->output);
              if (outq > 900
                  || (outq > 20 && ((i - 1) % preempt_count == 0)))
                {
 -                fflush (stdout);
 +                fflush (FRAME_TTY (f)->output);
                  if (preempt_count == 1)
                    {
  #ifdef EMACS_OUTQSIZE
                      if (EMACS_OUTQSIZE (0, &outq) < 0)
                        /* Probably not a tty.  Ignore the error and reset
                           the outq count.  */
 -                      outq = PENDING_OUTPUT_COUNT (stdout);
 +                      outq = PENDING_OUTPUT_COUNT (FRAME_TTY (f->output));
  #endif
                      outq *= 10;
                      if (baud_rate <= outq && baud_rate > 0)
                }
            }
  
 -        cursor_to (row, col);
 +        cursor_to (f, row, col);
        }
        else
        {
                x += XFASTINT (w->left_margin_cols);
  
              /* x = max (min (x, FRAME_TOTAL_COLS (f) - 1), 0); */
 -            cursor_to (y, x);
 +            cursor_to (f, y, x);
            }
        }
      }
@@@ -5468,23 -5462,21 +5468,23 @@@ scrolling (frame
      }
  
    /* If changed lines are few, don't allow preemption, don't scroll.  */
 -  if ((!scroll_region_ok && changed_lines < baud_rate / 2400)
 +  if ((!FRAME_SCROLL_REGION_OK (frame)
 +       && changed_lines < baud_rate / 2400)
        || unchanged_at_bottom == FRAME_LINES (frame))
      return 1;
  
    window_size = (FRAME_LINES (frame) - unchanged_at_top
                 - unchanged_at_bottom);
  
 -  if (scroll_region_ok)
 +  if (FRAME_SCROLL_REGION_OK (frame))
      free_at_end_vpos -= unchanged_at_bottom;
 -  else if (memory_below_frame)
 +  else if (FRAME_MEMORY_BELOW_FRAME (frame))
      free_at_end_vpos = -1;
  
    /* If large window, fast terminal and few lines in common between
       current frame and desired frame, don't bother with i/d calc.  */
 -  if (!scroll_region_ok && window_size >= 18 && baud_rate > 2400
 +  if (!FRAME_SCROLL_REGION_OK (frame)
 +      && window_size >= 18 && baud_rate > 2400
        && (window_size >=
          10 * scrolling_max_lines_saved (unchanged_at_top,
                                          FRAME_LINES (frame) - unchanged_at_bottom,
@@@ -5564,7 -5556,7 +5564,7 @@@ update_frame_line (f, vpos
    struct glyph_row *current_row = MATRIX_ROW (current_matrix, vpos);
    struct glyph_row *desired_row = MATRIX_ROW (desired_matrix, vpos);
    int must_write_whole_line_p;
 -  int write_spaces_p = must_write_spaces;
 +  int write_spaces_p = FRAME_MUST_WRITE_SPACES (f);
    int colored_spaces_p = (FACE_FROM_ID (f, DEFAULT_FACE_ID)->background
                          != FACE_TTY_DEFAULT_BG_COLOR);
  
        /* Write the contents of the desired line.  */
        if (nlen)
        {
 -          cursor_to (vpos, 0);
 -        write_glyphs (nbody, nlen);
 +          cursor_to (f, vpos, 0);
 +        write_glyphs (f, nbody, nlen);
        }
  
        /* Don't call clear_end_of_line if we already wrote the whole
         case but in the line below.  */
        if (nlen < FRAME_TOTAL_COLS (f))
        {
 -        cursor_to (vpos, nlen);
 -          clear_end_of_line (FRAME_TOTAL_COLS (f));
 +        cursor_to (f, vpos, nlen);
 +          clear_end_of_line (f, FRAME_TOTAL_COLS (f));
        }
        else
        /* Make sure we are in the right row, otherwise cursor movement
           with cmgoto might use `ch' in the wrong row.  */
 -      cursor_to (vpos, 0);
 +      cursor_to (f, vpos, 0);
  
        make_current (desired_matrix, current_matrix, vpos);
        return;
        nlen--;
  
    /* If there's no i/d char, quickly do the best we can without it.  */
 -  if (!char_ins_del_ok)
 +  if (!FRAME_CHAR_INS_DEL_OK (f))
      {
        int i, j;
  
                ++j;
  
              /* Output this run of non-matching chars.  */
 -            cursor_to (vpos, i);
 -            write_glyphs (nbody + i, j - i);
 +            cursor_to (f, vpos, i);
 +            write_glyphs (f, nbody + i, j - i);
              i = j - 1;
  
              /* Now find the next non-match.  */
        /* Clear the rest of the line, or the non-clear part of it.  */
        if (olen > nlen)
        {
 -        cursor_to (vpos, nlen);
 -        clear_end_of_line (olen);
 +        cursor_to (f, vpos, nlen);
 +        clear_end_of_line (f, olen);
        }
  
        /* Make current row = desired row.  */
  
        if (nlen > nsp)
        {
 -        cursor_to (vpos, nsp);
 -        write_glyphs (nbody + nsp, nlen - nsp);
 +        cursor_to (f, vpos, nsp);
 +        write_glyphs (f, nbody + nsp, nlen - nsp);
        }
  
        /* Exchange contents between current_frame and new_frame.  */
  
    tem = (nlen - nsp) - (olen - osp);
    if (endmatch && tem
 -      && (!char_ins_del_ok || endmatch <= char_ins_del_cost (f)[tem]))
 +      && (!FRAME_CHAR_INS_DEL_OK (f)
 +          || endmatch <= char_ins_del_cost (f)[tem]))
      endmatch = 0;
  
    /* nsp - osp is the distance to insert or delete.
       Is it worth it?  */
  
    if (nsp != osp
 -      && (!char_ins_del_ok
 +      && (!FRAME_CHAR_INS_DEL_OK (f)
          || begmatch + endmatch <= char_ins_del_cost (f)[nsp - osp]))
      {
        begmatch = 0;
  
    if (osp > nsp)
      {
 -      cursor_to (vpos, nsp);
 -      delete_glyphs (osp - nsp);
 +      cursor_to (f, vpos, nsp);
 +      delete_glyphs (f, osp - nsp);
      }
    else if (nsp > osp)
      {
         must delete first to avoid losing data in the insert */
        if (endmatch && nlen < olen + nsp - osp)
        {
 -        cursor_to (vpos, nlen - endmatch + osp - nsp);
 -        delete_glyphs (olen + nsp - osp - nlen);
 +        cursor_to (f, vpos, nlen - endmatch + osp - nsp);
 +        delete_glyphs (f, olen + nsp - osp - nlen);
          olen = nlen - (nsp - osp);
        }
 -      cursor_to (vpos, osp);
 -      insert_glyphs (0, nsp - osp);
 +      cursor_to (f, vpos, osp);
 +      insert_glyphs (f, 0, nsp - osp);
      }
    olen += nsp - osp;
  
             unnecessary cursor movement.  */
          if (nlen - tem > 0)
            {
 -            cursor_to (vpos, nsp + begmatch);
 -            write_glyphs (nbody + nsp + begmatch, nlen - tem);
 +            cursor_to (f, vpos, nsp + begmatch);
 +            write_glyphs (f, nbody + nsp + begmatch, nlen - tem);
            }
        }
        else if (nlen > olen)
          int out = olen - tem; /* Columns to be overwritten originally.  */
          int del;
  
 -        cursor_to (vpos, nsp + begmatch);
 +        cursor_to (f, vpos, nsp + begmatch);
  
          /* Calculate columns we can actually overwrite.  */
          while (CHAR_GLYPH_PADDING_P (nbody[nsp + begmatch + out]))
            out--;
 -        write_glyphs (nbody + nsp + begmatch, out);
 +        write_glyphs (f, nbody + nsp + begmatch, out);
  
          /* If we left columns to be overwritten, we must delete them.  */
          del = olen - tem - out;
          if (del > 0)
 -          delete_glyphs (del);
 +          delete_glyphs (f, del);
  
          /* At last, we insert columns not yet written out.  */
 -        insert_glyphs (nbody + nsp + begmatch + out, nlen - olen + del);
 +        insert_glyphs (f, nbody + nsp + begmatch + out, nlen - olen + del);
          olen = nlen;
        }
        else if (olen > nlen)
        {
 -        cursor_to (vpos, nsp + begmatch);
 -        write_glyphs (nbody + nsp + begmatch, nlen - tem);
 -        delete_glyphs (olen - nlen);
 +        cursor_to (f, vpos, nsp + begmatch);
 +        write_glyphs (f, nbody + nsp + begmatch, nlen - tem);
 +        delete_glyphs (f, olen - nlen);
          olen = nlen;
        }
      }
    /* If any unerased characters remain after the new line, erase them.  */
    if (olen > nlen)
      {
 -      cursor_to (vpos, nlen);
 -      clear_end_of_line (olen);
 +      cursor_to (f, vpos, nlen);
 +      clear_end_of_line (f, olen);
      }
  
    /* Exchange contents between current_frame and new_frame.  */
@@@ -6148,34 -6139,31 +6148,34 @@@ window_change_signal (signalnum) /* If 
  #endif
    int old_errno = errno;
  
 +  struct tty_display_info *tty;
 +
    signal (SIGWINCH, window_change_signal);
    SIGNAL_THREAD_CHECK (signalnum);
  
 -  get_frame_size (&width, &height);
 -
 -  /* The frame size change obviously applies to a termcap-controlled
 -     frame.  Find such a frame in the list, and assume it's the only
 -     one (since the redisplay code always writes to stdout, not a
 -     FILE * specified in the frame structure).  Record the new size,
 -     but don't reallocate the data structures now.  Let that be done
 -     later outside of the signal handler.  */
 +  /* The frame size change obviously applies to a single
 +     termcap-controlled terminal, but we can't decide which.
 +     Therefore, we resize the frames corresponding to each tty.
 +  */
 +  for (tty = tty_list; tty; tty = tty->next) {
  
 -  {
 -    Lisp_Object tail, frame;
 +    if (! tty->term_initted)
 +      continue;
  
 -    FOR_EACH_FRAME (tail, frame)
 -      {
 -      if (FRAME_TERMCAP_P (XFRAME (frame)))
 -        {
 -          change_frame_size (XFRAME (frame), height, width, 0, 1, 0);
 -          break;
 -        }
 -      }
 +    get_tty_size (fileno (tty->input), &width, &height);
 +    
 +    if (width > 5 && height > 2) {
 +      Lisp_Object tail, frame;
 +      
 +      FOR_EACH_FRAME (tail, frame)
 +        if (FRAME_TERMCAP_P (XFRAME (frame)) && FRAME_TTY (XFRAME (frame)) == tty)
 +          /* Record the new sizes, but don't reallocate the data
 +             structures now.  Let that be done later outside of the
 +             signal handler.  */
 +          change_frame_size (XFRAME (frame), height, width, 0, 1, 0);
 +    }
    }
 -
 +  
    errno = old_errno;
  }
  #endif /* SIGWINCH */
@@@ -6229,11 -6217,10 +6229,11 @@@ change_frame_size (f, newheight, newwid
  {
    Lisp_Object tail, frame;
  
 -  if (! FRAME_WINDOW_P (f))
 +  if (FRAME_MSDOS_P (f))
      {
 -      /* When using termcap, or on MS-DOS, all frames use
 -       the same screen, so a change in size affects all frames.  */
 +      /* On MS-DOS, all frames use the same screen, so a change in
 +         size affects all frames.  Termcap now supports multiple
 +         ttys. */
        FOR_EACH_FRAME (tail, frame)
        if (! FRAME_WINDOW_P (XFRAME (frame)))
          change_frame_size_1 (XFRAME (frame), newheight, newwidth,
@@@ -6313,7 -6300,7 +6313,7 @@@ change_frame_size_1 (f, newheight, neww
                           newheight - FRAME_TOP_MARGIN (f), 0);
  
        if (FRAME_TERMCAP_P (f) && !pretend)
 -      FrameRows = newheight;
 +      FrameRows (FRAME_TTY (f)) = newheight;
      }
  
    if (new_frame_total_cols != FRAME_TOTAL_COLS (f))
        set_window_width (FRAME_MINIBUF_WINDOW (f), new_frame_total_cols, 0);
  
        if (FRAME_TERMCAP_P (f) && !pretend)
 -      FrameCols = newwidth;
 +      FrameCols (FRAME_TTY (f)) = newwidth;
  
        if (WINDOWP (f->tool_bar_window))
        XSETFASTINT (XWINDOW (f->tool_bar_window)->total_cols, newwidth);
@@@ -6373,22 -6360,14 +6373,22 @@@ FILE = nil means just close any termscr
       (file)
       Lisp_Object file;
  {
 -  if (termscript != 0) fclose (termscript);
 -  termscript = 0;
 +  struct tty_display_info *tty;
 +
 +  if (! FRAME_TERMCAP_P (SELECTED_FRAME ()))
 +    error ("Current frame is not on a tty device");
 +
 +  tty = CURTTY ();
 +
 +  if (tty->termscript != 0)
 +    fclose (tty->termscript);
 +  tty->termscript = 0;
  
    if (! NILP (file))
      {
        file = Fexpand_file_name (file, Qnil);
 -      termscript = fopen (SDATA (file), "w");
 -      if (termscript == 0)
 +      tty->termscript = fopen (SDATA (file), "w");
 +      if (tty->termscript == 0)
        report_file_error ("Opening termscript", Fcons (file, Qnil));
      }
    return Qnil;
  
  
  DEFUN ("send-string-to-terminal", Fsend_string_to_terminal,
 -       Ssend_string_to_terminal, 1, 1, 0,
 +       Ssend_string_to_terminal, 1, 2, 0,
         doc: /* Send STRING to the terminal without alteration.
 -Control characters in STRING will have terminal-dependent effects.  */)
 -     (string)
 +Control characters in STRING will have terminal-dependent effects.
 +
 +Optional parameter TERMINAL specifies the tty terminal device to use.
 +It may be a terminal id, a frame, or nil for the terminal used by the
 +currently selected frame.  */)
 +  (string, terminal)
       Lisp_Object string;
 +     Lisp_Object terminal;
  {
 +  struct terminal *t = get_tty_terminal (terminal, 1);
 +  struct tty_display_info *tty;
 +
    /* ??? Perhaps we should do something special for multibyte strings here.  */
    CHECK_STRING (string);
 -  fwrite (SDATA (string), 1, SBYTES (string), stdout);
 -  fflush (stdout);
 -  if (termscript)
 +
 +  if (!t)
 +    error ("Unknown terminal device");
 +
 +  tty = t->display_info.tty;
 +  
 +  if (tty->termscript)
      {
 -      fwrite (SDATA (string), 1, SBYTES (string),
 -            termscript);
 -      fflush (termscript);
 +      fwrite (SDATA (string), 1, SBYTES (string), tty->termscript);
 +      fflush (tty->termscript);
      }
 +  fwrite (SDATA (string), 1, SBYTES (string), tty->output);
 +  fflush (tty->output);
    return Qnil;
  }
  
@@@ -6441,7 -6407,8 +6441,7 @@@ terminate any keyboard macro currently 
        if (noninteractive)
        putchar (07);
        else
 -      ring_bell ();
 -      fflush (stdout);
 +      ring_bell (XFRAME (selected_frame));
      }
    else
      bitch_at_user ();
@@@ -6457,7 -6424,8 +6457,7 @@@ bitch_at_user (
    else if (!INTERACTIVE)  /* Stop executing a keyboard macro.  */
      error ("Keyboard macro terminated by a command ringing the bell");
    else
 -    ring_bell ();
 -  fflush (stdout);
 +    ring_bell (XFRAME (selected_frame));
  }
  
  
@@@ -6740,6 -6708,8 +6740,6 @@@ pass nil for VARIABLE.  */
                            Initialization
  ***********************************************************************/
  
 -char *terminal_type;
 -
  /* Initialization done when Emacs fork is started, before doing stty.
     Determine terminal type and set terminal_driver.  Then invoke its
     decoding routine to set up variables in the terminal package.  */
  void
  init_display ()
  {
 +  char *terminal_type;
 +
  #ifdef HAVE_X_WINDOWS
    extern int display_arg;
  #endif
    SET_CHAR_GLYPH_FROM_GLYPH (space_glyph, ' ');
    space_glyph.charpos = -1;
  
 -  meta_key = 0;
    inverse_video = 0;
    cursor_in_echo_area = 0;
    terminal_type = (char *) 0;
  
    /* Now is the time to initialize this; it's used by init_sys_modes
       during startup.  */
 -  Vwindow_system = Qnil;
 +  Vinitial_window_system = Qnil;
 +
 +  /* SIGWINCH needs to be handled no matter what display we start
 +     with.  Otherwise newly opened tty frames will not resize
 +     automatically. */
 +#ifdef SIGWINCH
 +#ifndef CANNOT_DUMP
 +  if (initialized)
 +#endif /* CANNOT_DUMP */
 +    signal (SIGWINCH, window_change_signal);
 +#endif /* SIGWINCH */
  
    /* If the user wants to use a window system, we shouldn't bother
       initializing the terminal.  This is especially important when the
  #endif
       )
      {
 -      Vwindow_system = intern ("x");
 +      Vinitial_window_system = intern ("x");
  #ifdef HAVE_X11
        Vwindow_system_version = make_number (11);
  #else
  #ifdef HAVE_NTGUI
    if (!inhibit_window_system)
      {
 -      Vwindow_system = intern ("w32");
 +      Vinitial_window_system = intern ("w32");
        Vwindow_system_version = make_number (1);
        adjust_frame_glyphs_initially ();
        return;
  #ifdef MAC_OS
    if (!inhibit_window_system)
      {
 -      Vwindow_system = intern ("mac");
 +      Vinitial_window_system = intern ("mac");
        Vwindow_system_version = make_number (1);
        adjust_frame_glyphs_initially ();
        return;
@@@ -6892,38 -6851,8 +6892,38 @@@ For types not defined in VMS, use  defi
    }
  #endif /* VMS */
  
 -  term_init (terminal_type);
 -
 +  {
 +    struct terminal *t;
 +    struct frame *f = XFRAME (selected_frame);
 +
 +    /* Open a display on the controlling tty. */
 +    t = init_tty (0, terminal_type, 1); /* Errors are fatal. */
 +
 +    /* Convert the initial frame to use the new display. */
 +    if (f->output_method != output_initial)
 +      abort ();
 +    f->output_method = t->type;
 +    f->terminal = t;
 +
 +    t->reference_count++;
 +    t->display_info.tty->top_frame = selected_frame;
 +    change_frame_size (XFRAME (selected_frame),
 +                       FrameRows (t->display_info.tty),
 +                       FrameCols (t->display_info.tty), 0, 0, 1);
 +
 +    /* Delete the initial terminal. */
 +    if (--initial_terminal->reference_count == 0
 +        && initial_terminal->delete_terminal_hook)
 +      (*initial_terminal->delete_terminal_hook) (initial_terminal);
 +
 +    /* Update frame parameters to reflect the new type. */
 +    Fmodify_frame_parameters (selected_frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
 +    Fmodify_frame_parameters
 +      (selected_frame, Fcons (Fcons (Qtty_type,
 +                                     Ftty_type (selected_frame)), Qnil));
 +    Fmodify_frame_parameters (selected_frame, Fcons (Fcons (Qtty, Qnil), Qnil));
 +  }
 +  
    {
      struct frame *sf = SELECTED_FRAME ();
      int width = FRAME_TOTAL_COLS (sf);
    adjust_frame_glyphs_initially ();
    calculate_costs (XFRAME (selected_frame));
  
 -#ifdef SIGWINCH
 -#ifndef CANNOT_DUMP
 -  if (initialized)
 -#endif /* CANNOT_DUMP */
 -    signal (SIGWINCH, window_change_signal);
 -#endif /* SIGWINCH */
 -
    /* Set up faces of the initial terminal frame of a dumped Emacs.  */
    if (initialized
        && !noninteractive
         and internal_terminal_init.  */
        && (strcmp (terminal_type, "internal") != 0 || inhibit_window_system)
  #endif
 -      && NILP (Vwindow_system))
 +      && NILP (Vinitial_window_system))
      {
        /* For the initial frame, we don't have any way of knowing what
         are the foreground and background colors of the terminal.  */
@@@ -7062,8 -6998,8 +7062,8 @@@ A non-nil value is useful if the termin
  Emacs's frame display when you reenter Emacs.
  It is up to you to set this variable if your terminal can do that.  */);
  
 -  DEFVAR_LISP ("window-system", &Vwindow_system,
 -             doc: /* Name of window system that Emacs is displaying through.
 +  DEFVAR_LISP ("initial-window-system", &Vinitial_window_system,
 +             doc: /* Name of the window system that Emacs uses for the first frame.
  The value is a symbol--for instance, `x' for X windows.
  The value is nil if Emacs is using a text-only terminal.  */);
  
@@@ -7106,7 -7042,7 +7106,7 @@@ If nil, never pre-empt redisplay.  */)
    if (noninteractive)
  #endif
      {
 -      Vwindow_system = Qnil;
 +      Vinitial_window_system = Qnil;
        Vwindow_system_version = Qnil;
      }
  }
diff --combined src/frame.c
index 7d5bdcb1cb6f1bff8b21885d6a6984867decdc42,5990b9e07177652205398668571af7826e837e5c..48cca967cc1b4b97b600e378c218e91b702b72aa
@@@ -42,7 -42,6 +42,7 @@@ Boston, MA 02110-1301, USA.  *
  #include "fontset.h"
  #endif
  #include "blockinput.h"
 +#include "termchar.h"
  #include "termhooks.h"
  #include "dispextern.h"
  #include "window.h"
@@@ -72,12 -71,9 +72,11 @@@ Lisp_Object Qx, Qw32, Qmac, Qpc
  Lisp_Object Qvisible;
  Lisp_Object Qdisplay_type;
  Lisp_Object Qbackground_mode;
- Lisp_Object Qinhibit_default_face_x_resources;
  
  Lisp_Object Qx_frame_parameter;
  Lisp_Object Qx_resource_name;
 +Lisp_Object Qterminal;
 +Lisp_Object Qterminal_live_p;
  
  /* Frame parameters (set or reported).  */
  
@@@ -107,17 -103,15 +106,17 @@@ Lisp_Object Qtitle, Qname
  Lisp_Object Qunsplittable;
  Lisp_Object Qmenu_bar_lines, Qtool_bar_lines;
  Lisp_Object Qleft_fringe, Qright_fringe;
 -Lisp_Object Qbuffer_predicate, Qbuffer_list;
 +Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
  Lisp_Object Qtty_color_mode;
 +Lisp_Object Qtty, Qtty_type;
 +Lisp_Object Qwindow_system;
 +Lisp_Object Qenvironment;
  
  Lisp_Object Qfullscreen, Qfullwidth, Qfullheight, Qfullboth;
  
  Lisp_Object Qinhibit_face_set_after_frame_default;
  Lisp_Object Qface_set_after_frame_default;
  
 -
  Lisp_Object Vterminal_frame;
  Lisp_Object Vdefault_frame_alist;
  Lisp_Object Vdefault_frame_scroll_bars;
@@@ -127,8 -121,8 +126,8 @@@ Lisp_Object Vdelete_frame_functions
  \f
  static void
  set_menu_bar_lines_1 (window, n)
 -  Lisp_Object window;
 -  int n;
 +     Lisp_Object window;
 +     int n;
  {
    struct window *w = XWINDOW (window);
  
@@@ -186,6 -180,8 +185,6 @@@ set_menu_bar_lines (f, value, oldval
  Lisp_Object Vemacs_iconified;
  Lisp_Object Vframe_list;
  
 -struct x_output tty_display;
 -
  extern Lisp_Object Vminibuffer_list;
  extern Lisp_Object get_minibuffer ();
  extern Lisp_Object Fhandle_switch_frame ();
@@@ -207,7 -203,6 +206,7 @@@ See also `frame-live-p'.  */
      return Qnil;
    switch (XFRAME (object)->output_method)
      {
 +    case output_initial: /* The initial frame is like a termcap frame. */
      case output_termcap:
        return Qt;
      case output_x_window:
  DEFUN ("frame-live-p", Fframe_live_p, Sframe_live_p, 1, 1, 0,
         doc: /* Return non-nil if OBJECT is a frame which has not been deleted.
  Value is nil if OBJECT is not a live frame.  If object is a live
 -frame, the return value indicates what sort of output device it is
 +frame, the return value indicates what sort of terminal device it is
  displayed on.  See the documentation of `framep' for possible
  return values.  */)
       (object)
          : Qnil);
  }
  
 +DEFUN ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
 +       doc: /* The name of the window system that FRAME is displaying through.
 +The value is a symbol---for instance, 'x' for X windows.
 +The value is nil if Emacs is using a text-only terminal.
 +
 +FRAME defaults to the currently selected frame.  */)
 +  (frame)
 +     Lisp_Object frame;
 +{
 +  Lisp_Object type;
 +  if (NILP (frame))
 +    frame = selected_frame;
 +
 +  type = Fframep (frame);
 +
 +  if (NILP (type))
 +    wrong_type_argument (Qframep, frame);
 +
 +  if (EQ (type, Qt))
 +    return Qnil;
 +  else
 +    return type;
 +}      
 +
  struct frame *
  make_frame (mini_p)
       int mini_p;
    f->menu_bar_items_used = 0;
    f->buffer_predicate = Qnil;
    f->buffer_list = Qnil;
 -#ifdef MULTI_KBOARD
 -  f->kboard = initial_kboard;
 -#endif
 +  f->buried_buffer_list = Qnil;
    f->namebuf = 0;
    f->title = Qnil;
    f->menu_bar_window = Qnil;
@@@ -425,8 -398,8 +424,8 @@@ make_frame_without_minibuffer (mini_win
  
  #ifdef MULTI_KBOARD
    if (!NILP (mini_window)
 -      && XFRAME (XWINDOW (mini_window)->frame)->kboard != kb)
 -    error ("Frame and minibuffer must be on the same display");
 +      && FRAME_KBOARD (XFRAME (XWINDOW (mini_window)->frame)) != kb)
 +    error ("Frame and minibuffer must be on the same terminal");
  #endif
  
    /* Make a frame containing just a root window.  */
@@@ -502,19 -475,18 +501,19 @@@ make_minibuffer_frame (
  }
  #endif /* HAVE_WINDOW_SYSTEM */
  \f
 -/* Construct a frame that refers to the terminal (stdin and stdout).  */
 +/* Construct a frame that refers to a terminal.  */
  
 -static int terminal_frame_count;
 +static int tty_frame_count;
  
  struct frame *
 -make_terminal_frame ()
 +make_initial_frame (void)
  {
 -  register struct frame *f;
 +  struct frame *f;
 +  struct terminal *terminal;
    Lisp_Object frame;
 -  char name[20];
  
  #ifdef MULTI_KBOARD
 +  /* Create the initial keyboard. */
    if (!initial_kboard)
      {
        initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
    if (! (NILP (Vframe_list) || CONSP (Vframe_list)))
      Vframe_list = Qnil;
  
 +  terminal = init_initial_terminal ();
 +
 +  f = make_frame (1);
 +  XSETFRAME (frame, f);
 +
 +  Vframe_list = Fcons (frame, Vframe_list);
 +
 +  tty_frame_count = 1;
 +  f->name = build_string ("F1");
 +
 +  f->visible = 1;
 +  f->async_visible = 1;
 +
 +  f->output_method = terminal->type;
 +  f->terminal = terminal;
 +  f->terminal->reference_count++;
 +  f->output_data.nothing = 0;
 +  
 +  FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
 +  FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
 +    
 +  FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
 +  FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
 +
 +  return f;
 +}
 +
 +
 +struct frame *
 +make_terminal_frame (struct terminal *terminal)
 +{
 +  register struct frame *f;
 +  Lisp_Object frame;
 +  char name[20];
 +
 +  if (terminal->deleted)
 +    error ("Terminal is being deleted, can't create new frames on it");
 +
    f = make_frame (1);
  
    XSETFRAME (frame, f);
    Vframe_list = Fcons (frame, Vframe_list);
  
 -  terminal_frame_count++;
 -  sprintf (name, "F%d", terminal_frame_count);
 +  tty_frame_count++;
 +  sprintf (name, "F%d", tty_frame_count);
    f->name = build_string (name);
  
    f->visible = 1;             /* FRAME_SET_VISIBLE wd set frame_garbaged. */
         for the black color.  Other frames all inherit their pixels
         from what's already in the_only_x_display.  */
        if ((!FRAMEP (selected_frame) || !FRAME_LIVE_P (XFRAME (selected_frame)))
 -        && f->output_data.x->background_pixel == 0
 -        && f->output_data.x->foreground_pixel == 0)
 +        && FRAME_BACKGROUND_PIXEL (f) == 0
 +        && FRAME_FOREGROUND_PIXEL (f) == 0)
        {
 -        f->output_data.x->background_pixel = FACE_TTY_DEFAULT_BG_COLOR;
 -        f->output_data.x->foreground_pixel = FACE_TTY_DEFAULT_FG_COLOR;
 +        FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
 +        FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
        }
      }
    else
  #else
  #ifdef WINDOWSNT
    f->output_method = output_termcap;
 -  f->output_data.x = &tty_display;
 +  f->output_data.x = &tty_display; /* XXX ??? */
  #else
  #ifdef MAC_OS8
    make_mac_terminal_frame (f);
  #else
 -  f->output_data.x = &tty_display;
 +  {
 +    f->output_method = output_termcap;
 +    f->terminal = terminal;
 +    f->terminal->reference_count++;
 +    create_tty_output (f);
 +    
 +    FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
 +    FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
 +    
 +    FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
 +    FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
 +
 +    /* Set the top frame to the newly created frame. */
 +    if (FRAME_TTY (f)->top_frame
 +        && FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
 +      XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
 +    
 +    FRAME_TTY (f)->top_frame = frame;
 +  }
 +  
  #ifdef CANNOT_DUMP
    FRAME_FOREGROUND_PIXEL(f) = FACE_TTY_DEFAULT_FG_COLOR;
    FRAME_BACKGROUND_PIXEL(f) = FACE_TTY_DEFAULT_BG_COLOR;
    return f;
  }
  
 +/* Get a suitable value for frame parameter PARAMETER for a newly
 +   created frame, based on (1) the user-supplied frame parameter
 +   alist SUPPLIED_PARMS, (2) CURRENT_VALUE, and finally, if all else
 +   fails, (3) Vdefault_frame_alist.  */
 +
 +static Lisp_Object
 +get_future_frame_param (Lisp_Object parameter,
 +                        Lisp_Object supplied_parms,
 +                        char *current_value)
 +{
 +  Lisp_Object result;
 +
 +  result = Fassq (parameter, supplied_parms);
 +  if (NILP (result))
 +    result = Fassq (parameter, XFRAME (selected_frame)->param_alist);
 +  if (NILP (result) && current_value != NULL)
 +    result = build_string (current_value);
 +  if (NILP (result))
 +    result = Fassq (parameter, Vdefault_frame_alist);
 +  if (!NILP (result) && !STRINGP (result))
 +    result = XCDR (result);
 +  if (NILP (result) || !STRINGP (result))
 +    result = Qnil;
 +
 +  return result;
 +}
 +
  DEFUN ("make-terminal-frame", Fmake_terminal_frame, Smake_terminal_frame,
         1, 1, 0,
 -       doc: /* Create an additional terminal frame.
 -You can create multiple frames on a text-only terminal in this way.
 -Only the selected terminal frame is actually displayed.
 +       doc: /* Create an additional terminal frame, possibly on another terminal.
  This function takes one argument, an alist specifying frame parameters.
 -In practice, generally you don't need to specify any parameters.
 -Note that changing the size of one terminal frame automatically affects all.  */)
 +
 +You can create multiple frames on a single text-only terminal, but
 +only one of them (the selected terminal frame) is actually displayed.
 +
 +In practice, generally you don't need to specify any parameters,
 +except when you want to create a new frame on another terminal.
 +In that case, the `tty' parameter specifies the device file to open,
 +and the `tty-type' parameter specifies the terminal type.  Example:
 +
 +   (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm")))
 +
 +Note that changing the size of one terminal frame automatically
 +affects all frames on the same terminal device.  */)
       (parms)
       Lisp_Object parms;
  {
    struct frame *f;
 +  struct terminal *t = NULL;
    Lisp_Object frame, tem;
    struct frame *sf = SELECTED_FRAME ();
  
    if (sf->output_method != output_mac)
      error ("Not running on a Macintosh screen; cannot make a new Macintosh frame");
  #else
 +#if 0                           /* This should work now! */
    if (sf->output_method != output_termcap)
      error ("Not using an ASCII terminal now; cannot make a new ASCII frame");
  #endif
 +#endif
  #endif /* not MSDOS */
 +  
 +  {
 +    Lisp_Object terminal;
 +
 +    terminal = Fassq (Qterminal, parms);
 +    if (!NILP (terminal))
 +      {
 +        terminal = XCDR (terminal);
 +        t = get_terminal (terminal, 1);
 +      }
 +  }
 +  
 +  if (!t)
 +    { 
 +      char *name = 0, *type = 0;
 +      Lisp_Object tty, tty_type;
 +
 +      tty = get_future_frame_param
 +        (Qtty, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
 +                       ? FRAME_TTY (XFRAME (selected_frame))->name
 +                       : NULL));
 +      if (!NILP (tty))
 +        {
 +          name = (char *) alloca (SBYTES (tty) + 1);
 +          strncpy (name, SDATA (tty), SBYTES (tty));
 +          name[SBYTES (tty)] = 0;
 +        }
 +      
 +      tty_type = get_future_frame_param
 +        (Qtty_type, parms, (FRAME_TERMCAP_P (XFRAME (selected_frame))
 +                            ? FRAME_TTY (XFRAME (selected_frame))->type
 +                            : NULL));
 +      if (!NILP (tty_type))
 +        {
 +          type = (char *) alloca (SBYTES (tty_type) + 1);
 +          strncpy (type, SDATA (tty_type), SBYTES (tty_type));
 +          type[SBYTES (tty_type)] = 0;
 +        }
 +
 +      t = init_tty (name, type, 0); /* Errors are not fatal. */
 +    }
  
 -  f = make_terminal_frame ();
 +  f = make_terminal_frame (t);
  
 -  change_frame_size (f, FRAME_LINES (sf),
 -                   FRAME_COLS (sf), 0, 0, 0);
 +  {
 +    int width, height;
 +    get_tty_size (fileno (FRAME_TTY (f)->input), &width, &height);
 +    change_frame_size (f, height, width, 0, 0, 0);
 +  }
 +  
    adjust_glyphs (f);
    calculate_costs (f);
    XSETFRAME (frame, f);
    Fmodify_frame_parameters (frame, Vdefault_frame_alist);
    Fmodify_frame_parameters (frame, parms);
 -
 +  Fmodify_frame_parameters (frame, Fcons (Fcons (Qwindow_system, Qnil), Qnil));
 +  Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty_type,
 +                                                 build_string (t->display_info.tty->type)),
 +                                          Qnil));
 +  if (t->display_info.tty->name != NULL)
 +    Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty,
 +                                                   build_string (t->display_info.tty->name)),
 +                                            Qnil));
 +  else
 +    Fmodify_frame_parameters (frame, Fcons (Fcons (Qtty, Qnil), Qnil));
 +  
    /* Make the frame face alist be frame-specific, so that each
       frame could change its face definitions independently.  */
    f->face_alist = Fcopy_alist (sf->face_alist);
     frame's focus to FRAME instead.
  
     FOR_DELETION non-zero means that the selected frame is being
 -   deleted, which includes the possibility that the frame's display
 +   deleted, which includes the possibility that the frame's terminal
     is dead.  */
  
  Lisp_Object
@@@ -874,15 -695,6 +873,15 @@@ do_switch_frame (frame, track, for_dele
    if (!for_deletion && FRAME_HAS_MINIBUF_P (sf))
      resize_mini_window (XWINDOW (FRAME_MINIBUF_WINDOW (sf)), 1);
  
 +  if (FRAME_TERMCAP_P (XFRAME (selected_frame))
 +      && FRAME_TERMCAP_P (XFRAME (frame))
 +      && FRAME_TTY (XFRAME (selected_frame)) == FRAME_TTY (XFRAME (frame)))
 +    {
 +      XFRAME (selected_frame)->async_visible = 2; /* obscured */
 +      XFRAME (frame)->async_visible = 1;
 +      FRAME_TTY (XFRAME (frame))->top_frame = frame;
 +    }
 +
    selected_frame = frame;
    if (! FRAME_MINIBUF_ONLY_P (XFRAME (selected_frame)))
      last_nonminibuf_frame = XFRAME (selected_frame);
@@@ -1066,7 -878,6 +1065,7 @@@ If FRAME is the selected frame, this ma
  
    return XFRAME (frame)->selected_window = window;
  }
 +
  \f
  DEFUN ("frame-list", Fframe_list, Sframe_list,
         0, 0, 0,
@@@ -1114,10 -925,7 +1113,10 @@@ next_frame (frame, minibuf
        f = XCAR (tail);
  
        if (passed
 -          && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
 +          && ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
 +                 && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
 +                || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
 +                    && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame)))))
          {
            /* Decide whether this frame is eligible to be returned.  */
  
@@@ -1194,10 -1002,7 +1193,10 @@@ prev_frame (frame, minibuf
        if (EQ (frame, f) && !NILP (prev))
        return prev;
  
 -      if (FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
 +      if ((!FRAME_TERMCAP_P (XFRAME (f)) && !FRAME_TERMCAP_P (XFRAME (frame))
 +           && FRAME_KBOARD (XFRAME (f)) == FRAME_KBOARD (XFRAME (frame)))
 +          || (FRAME_TERMCAP_P (XFRAME (f)) && FRAME_TERMCAP_P (XFRAME (frame))
 +              && FRAME_TTY (XFRAME (f)) == FRAME_TTY (XFRAME (frame))))
        {
          /* Decide whether this frame is eligible to be returned,
             according to minibuf.  */
@@@ -1331,14 -1136,6 +1330,14 @@@ other_visible_frames (f
    return 1;
  }
  
 +/* Error handler for `delete-frame-functions'. */
 +static Lisp_Object
 +delete_frame_handler (Lisp_Object arg)
 +{
 +  add_to_log ("Error during `delete-frame': %s", arg, Qnil);
 +  return Qnil;
 +}
 +
  DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "",
         doc: /* Delete FRAME, permanently eliminating it from use.
  If omitted, FRAME defaults to the selected frame.
@@@ -1354,8 -1151,6 +1353,8 @@@ The functions are run with one arg, th
  {
    struct frame *f;
    struct frame *sf = SELECTED_FRAME ();
 +  struct kboard *kb;
 +
    int minibuffer_selected;
  
    if (EQ (frame, Qnil))
        && NILP (Fframe_parameter (frame, intern ("tooltip"))))
      {
        Lisp_Object args[2];
 +      struct gcpro gcpro1, gcpro2;
 +
 +      /* Don't let a rogue function in `delete-frame-functions'
 +       prevent the frame deletion. */
 +      GCPRO2 (args[0], args[1]);
        args[0] = intern ("delete-frame-functions");
        args[1] = frame;
 -      Frun_hook_with_args (2, args);
 +      internal_condition_case_2 (Frun_hook_with_args, 2, args,
 +                               Qt, delete_frame_handler);
 +      UNGCPRO;
      }
  
 +  /* The hook may sometimes (indirectly) cause the frame to be deleted.  */
 +  if (! FRAME_LIVE_P (f))
 +    return Qnil;
 +
    minibuffer_selected = EQ (minibuf_window, selected_window);
  
    /* Don't let the frame remain selected.  */
        {
          FOR_EACH_FRAME (tail, frame1)
            {
 -            if (! EQ (frame, frame1))
 +            if (! EQ (frame, frame1) && FRAME_LIVE_P (XFRAME (frame1)))
                break;
            }
        }
    if (EQ (f->minibuffer_window, echo_area_window))
      echo_area_window = sf->minibuffer_window;
  
 +  /* Don't allow other frames to refer to a deleted frame in their
 +     'environment parameter.  */
 +  {
 +    Lisp_Object tail, frame1;
 +    Lisp_Object env = get_frame_param (XFRAME (frame), Qenvironment);
 +    FOR_EACH_FRAME (tail, frame1)
 +      {
 +        if (EQ (frame, frame1) || !FRAME_LIVE_P (XFRAME (frame1)))
 +          continue;
 +        if (EQ (frame, get_frame_param (XFRAME (frame1), Qenvironment)))
 +          {
 +            store_frame_param (XFRAME (frame1), Qenvironment, env);
 +            if (!FRAMEP (env))
 +              env = frame1;
 +          }
 +      }
 +  }
 +  
    /* Clear any X selections for this frame.  */
  #ifdef HAVE_X_WINDOWS
    if (FRAME_X_P (f))
      xfree (FRAME_MESSAGE_BUF (f));
  
    /* Since some events are handled at the interrupt level, we may get
 -     an event for f at any time; if we zero out the frame's display
 +     an event for f at any time; if we zero out the frame's terminal
       now, then we may trip up the event-handling code.  Instead, we'll
 -     promise that the display of the frame must be valid until we have
 -     called the window-system-dependent frame destruction routine.  */
 +     promise that the terminal of the frame must be valid until we
 +     have called the window-system-dependent frame destruction
 +     routine.  */
  
 -  /* I think this should be done with a hook.  */
 -#ifdef HAVE_WINDOW_SYSTEM
 -  if (FRAME_WINDOW_P (f))
 -    x_destroy_window (f);
 -#endif
 +  if (FRAME_TERMINAL (f)->delete_frame_hook)
 +    (*FRAME_TERMINAL (f)->delete_frame_hook) (f);
  
 -  f->output_data.nothing = 0;
 +  {
 +    struct terminal *terminal = FRAME_TERMINAL (f);
 +    f->output_data.nothing = 0; 
 +    f->terminal = 0;             /* Now the frame is dead. */
 +
 +    /* If needed, delete the terminal that this frame was on.
 +       (This must be done after the frame is killed.) */
 +    terminal->reference_count--;
 +    if (terminal->reference_count == 0)
 +      {
 +        kb = NULL;
 +        if (terminal->delete_terminal_hook)
 +          (*terminal->delete_terminal_hook) (terminal);
 +        else
 +          delete_terminal (terminal);
 +      }
 +    else
 +      kb = terminal->kboard;
 +  }
  
    /* If we've deleted the last_nonminibuf_frame, then try to find
       another one.  */
  
    /* If there's no other frame on the same kboard, get out of
       single-kboard state if we're in it for this kboard.  */
 -  {
 -    Lisp_Object frames;
 -    /* Some frame we found on the same kboard, or nil if there are none.  */
 -    Lisp_Object frame_on_same_kboard;
 +  if (kb != NULL)
 +    {
 +      Lisp_Object frames;
 +      /* Some frame we found on the same kboard, or nil if there are none.  */
 +      Lisp_Object frame_on_same_kboard;
  
 -    frame_on_same_kboard = Qnil;
 +      frame_on_same_kboard = Qnil;
  
 -    for (frames = Vframe_list;
 -       CONSP (frames);
 -       frames = XCDR (frames))
 -      {
 -      Lisp_Object this;
 -      struct frame *f1;
 +      for (frames = Vframe_list;
 +         CONSP (frames);
 +         frames = XCDR (frames))
 +      {
 +        Lisp_Object this;
 +        struct frame *f1;
  
 -      this = XCAR (frames);
 -      if (!FRAMEP (this))
 -        abort ();
 -      f1 = XFRAME (this);
 +        this = XCAR (frames);
 +        if (!FRAMEP (this))
 +          abort ();
 +        f1 = XFRAME (this);
  
 -      if (FRAME_KBOARD (f) == FRAME_KBOARD (f1))
 -        frame_on_same_kboard = this;
 -      }
 +        if (kb == FRAME_KBOARD (f1))
 +          frame_on_same_kboard = this;
 +      }
  
 -    if (NILP (frame_on_same_kboard))
 -      not_single_kboard_state (FRAME_KBOARD (f));
 -  }
 +      if (NILP (frame_on_same_kboard))
 +      not_single_kboard_state (kb);
 +    }
  
  
    /* If we've deleted this keyboard's default_minibuffer_frame, try to
       find another one.  Prefer minibuffer-only frames, but also notice
       frames with other windows.  */
 -  if (EQ (frame, FRAME_KBOARD (f)->Vdefault_minibuffer_frame))
 +  if (kb != NULL && EQ (frame, kb->Vdefault_minibuffer_frame))
      {
        Lisp_Object frames;
  
  
          /* Consider only frames on the same kboard
             and only those with minibuffers.  */
 -        if (FRAME_KBOARD (f) == FRAME_KBOARD (f1)
 +        if (kb == FRAME_KBOARD (f1)
              && FRAME_HAS_MINIBUF_P (f1))
            {
              frame_with_minibuf = this;
                break;
            }
  
 -        if (FRAME_KBOARD (f) == FRAME_KBOARD (f1))
 +        if (kb == FRAME_KBOARD (f1))
            frame_on_same_kboard = this;
        }
  
          if (NILP (frame_with_minibuf))
            abort ();
  
 -        FRAME_KBOARD (f)->Vdefault_minibuffer_frame = frame_with_minibuf;
 +        kb->Vdefault_minibuffer_frame = frame_with_minibuf;
        }
        else
        /* No frames left on this kboard--say no minibuffer either.  */
 -      FRAME_KBOARD (f)->Vdefault_minibuffer_frame = Qnil;
 +      kb->Vdefault_minibuffer_frame = Qnil;
      }
  
    /* Cause frame titles to update--necessary if we now have just one frame.  */
@@@ -1703,11 -1452,11 +1702,11 @@@ and returns whatever that function retu
  
  #ifdef HAVE_MOUSE
    /* It's okay for the hook to refrain from storing anything.  */
 -  if (mouse_position_hook)
 -    (*mouse_position_hook) (&f, -1,
 -                          &lispy_dummy, &party_dummy,
 -                          &x, &y,
 -                          &long_dummy);
 +  if (FRAME_TERMINAL (f)->mouse_position_hook)
 +    (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
 +                                                &lispy_dummy, &party_dummy,
 +                                                &x, &y,
 +                                                &long_dummy);
    if (! NILP (x))
      {
        col = XINT (x);
@@@ -1747,11 -1496,11 +1746,11 @@@ and nil for X and Y.  */
  
  #ifdef HAVE_MOUSE
    /* It's okay for the hook to refrain from storing anything.  */
 -  if (mouse_position_hook)
 -    (*mouse_position_hook) (&f, -1,
 -                          &lispy_dummy, &party_dummy,
 -                          &x, &y,
 -                          &long_dummy);
 +  if (FRAME_TERMINAL (f)->mouse_position_hook)
 +    (*FRAME_TERMINAL (f)->mouse_position_hook) (&f, -1,
 +                                                &lispy_dummy, &party_dummy,
 +                                                &x, &y,
 +                                                &long_dummy);
  #endif
    XSETFRAME (lispy_dummy, f);
    return Fcons (lispy_dummy, Fcons (x, y));
@@@ -2024,19 -1773,16 +2023,19 @@@ doesn't support multiple overlapping fr
       (frame)
       Lisp_Object frame;
  {
 +  struct frame *f;
    if (NILP (frame))
      frame = selected_frame;
  
    CHECK_LIVE_FRAME (frame);
  
 +  f = XFRAME (frame);
 +  
    /* Do like the documentation says. */
    Fmake_frame_visible (frame);
  
 -  if (frame_raise_lower_hook)
 -    (*frame_raise_lower_hook) (XFRAME (frame), 1);
 +  if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
 +    (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 1);
  
    return Qnil;
  }
@@@ -2050,17 -1796,13 +2049,17 @@@ doesn't support multiple overlapping fr
       (frame)
       Lisp_Object frame;
  {
 +  struct frame *f;
 +  
    if (NILP (frame))
      frame = selected_frame;
  
    CHECK_LIVE_FRAME (frame);
  
 -  if (frame_raise_lower_hook)
 -    (*frame_raise_lower_hook) (XFRAME (frame), 0);
 +  f = XFRAME (frame);
 +  
 +  if (FRAME_TERMINAL (f)->frame_raise_lower_hook)
 +    (*FRAME_TERMINAL (f)->frame_raise_lower_hook) (f, 0);
  
    return Qnil;
  }
@@@ -2094,8 -1836,6 +2093,8 @@@ The redirection lasts until `redirect-f
       (frame, focus_frame)
       Lisp_Object frame, focus_frame;
  {
 +  struct frame *f;
 +  
    /* Note that we don't check for a live frame here.  It's reasonable
       to redirect the focus of a frame you're about to delete, if you
       know what other frame should receive those keystrokes.  */
    if (! NILP (focus_frame))
      CHECK_LIVE_FRAME (focus_frame);
  
 -  XFRAME (frame)->focus_frame = focus_frame;
 +  f = XFRAME (frame);
 +  
 +  f->focus_frame = focus_frame;
  
 -  if (frame_rehighlight_hook)
 -    (*frame_rehighlight_hook) (XFRAME (frame));
 +  if (FRAME_TERMINAL (f)->frame_rehighlight_hook)
 +    (*FRAME_TERMINAL (f)->frame_rehighlight_hook) (f);
  
    return Qnil;
  }
@@@ -2171,7 -1909,7 +2170,7 @@@ set_frame_buffer_list (frame, list
    XFRAME (frame)->buffer_list = list;
  }
  
 -/* Discard BUFFER from the buffer-list of each frame.  */
 +/* Discard BUFFER from the buffer-list and buried-buffer-list of each frame.  */
  
  void
  frames_discard_buffer (buffer)
      {
        XFRAME (frame)->buffer_list
        = Fdelq (buffer, XFRAME (frame)->buffer_list);
 +      XFRAME (frame)->buried_buffer_list
 +        = Fdelq (buffer, XFRAME (frame)->buried_buffer_list);
      }
  }
  
@@@ -2243,8 -1979,8 +2242,8 @@@ set_term_frame_name (f, name
                            SBYTES (f->name)))
        return;
  
 -      terminal_frame_count++;
 -      sprintf (namebuf, "F%d", terminal_frame_count);
 +      tty_frame_count++;
 +      sprintf (namebuf, "F%d", tty_frame_count);
        name = build_string (namebuf);
      }
    else
@@@ -2272,18 -2008,13 +2271,18 @@@ store_frame_param (f, prop, val
  {
    register Lisp_Object old_alist_elt;
  
 -  /* The buffer-alist parameter is stored in a special place and is
 -     not in the alist.  */
 +  /* The buffer-list parameters are stored in a special place and not
 +     in the alist.  */
    if (EQ (prop, Qbuffer_list))
      {
        f->buffer_list = val;
        return;
      }
 +  if (EQ (prop, Qburied_buffer_list))
 +    {
 +      f->buried_buffer_list = val;
 +      return;
 +    }
  
    /* If PROP is a symbol which is supposed to have frame-local values,
       and it is set up based on this frame, switch to the global
        if ((BUFFER_LOCAL_VALUEP (valcontents)
           || SOME_BUFFER_LOCAL_VALUEP (valcontents))
          && XBUFFER_LOCAL_VALUE (valcontents)->check_frame
 +        && XBUFFER_LOCAL_VALUE (valcontents)->found_for_frame
          && XFRAME (XBUFFER_LOCAL_VALUE (valcontents)->frame) == f)
        swap_in_global_binding (prop);
      }
        /* Install the chosen minibuffer window, with proper buffer.  */
        f->minibuffer_window = val;
      }
++
++  return Qnil;
  }
  
  DEFUN ("frame-parameters", Fframe_parameters, Sframe_parameters, 0, 1, 0,
@@@ -2424,7 -2154,6 +2425,7 @@@ If FRAME is omitted, return informatio
                   : FRAME_MINIBUF_WINDOW (f)));
    store_in_alist (&alist, Qunsplittable, (FRAME_NO_SPLIT_P (f) ? Qt : Qnil));
    store_in_alist (&alist, Qbuffer_list, frame_buffer_list (frame));
 +  store_in_alist (&alist, Qburied_buffer_list, XFRAME (frame)->buried_buffer_list);
  
    /* I think this should be done with a hook.  */
  #ifdef HAVE_WINDOW_SYSTEM
@@@ -2539,15 -2268,6 +2540,6 @@@ enabled such bindings for that variabl
  {
    FRAME_PTR f;
    register Lisp_Object tail, prop, val;
-   int count = SPECPDL_INDEX ();
-   /* Bind this to t to inhibit initialization of the default face from
-      X resources in face-set-after-frame-default.  If we don't inhibit
-      this, modifying the `font' frame parameter, for example, while
-      there is a `default.attributeFont' X resource, won't work,
-      because `default's font is reset to the value of the X resource
-      and that resets the `font' frame parameter.  */
-   specbind (Qinhibit_default_face_x_resources, Qt);
  
    if (EQ (frame, Qnil))
      frame = selected_frame;
            call1 (Qframe_set_background_mode, frame);
        }
      }
-   return unbind_to (count, Qnil);
 +}
  
 -  return Qnil;
 +DEFUN ("frame-with-environment", Fframe_with_environment, Sframe_with_environment, 0, 1, 0,
 +       doc: /* Return the frame that has the environment variable list for FRAME.
 +
 +The frame-local environment variable list is normally shared between
 +frames that were created in the same Emacsclient session.  The
 +environment list is stored in a single frame's 'environment parameter;
 +the other frames' 'environment parameter is set to this frame.  This
 +function follows the chain of 'environment references to reach the
 +frame that stores the actual local environment list, and returns that
 +frame.  */)
 +     (frame)
 +     Lisp_Object frame;
 +{
 +  Lisp_Object hare, tortoise;
 +
 +  if (NILP (frame))
 +    frame = selected_frame;
 +  CHECK_FRAME (frame);
 +
 +  hare = tortoise = get_frame_param (XFRAME (frame), Qenvironment);
 +  while (!NILP (hare) && FRAMEP (hare))
 +    {
 +      frame = hare;
 +      hare = get_frame_param (XFRAME (hare), Qenvironment);
 +      if (NILP (hare) || !FRAMEP (hare))
 +        break;
 +      frame = hare;
 +      hare = get_frame_param (XFRAME (hare), Qenvironment);
 +      tortoise = get_frame_param (XFRAME (tortoise), Qenvironment);
 +      if (EQ (hare, tortoise))
 +        error ("Cyclic frame-local environment indirection");
 +    }
 +
 +  return frame;
  }
 +
  \f
  DEFUN ("frame-char-height", Fframe_char_height, Sframe_char_height,
         0, 1, 0,
@@@ -3057,8 -2740,9 +3047,8 @@@ x_set_frame_parameters (f, alist
              if (NATNUMP (param_index)
                  && (XFASTINT (param_index)
                      < sizeof (frame_parms)/sizeof (frame_parms[0]))
 -                && rif->frame_parm_handlers[XINT (param_index)])
 -              (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
 -
 +                  && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
 +                (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
              unbind_to (count, Qnil);
            }
        }
          if (NATNUMP (param_index)
              && (XFASTINT (param_index)
                  < sizeof (frame_parms)/sizeof (frame_parms[0]))
 -            && rif->frame_parm_handlers[XINT (param_index)])
 -          (*(rif->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
 +            && FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])
 +          (*(FRAME_RIF (f)->frame_parm_handlers[XINT (param_index)])) (f, val, old_value);
        }
      }
  
@@@ -3341,8 -3025,8 +3331,8 @@@ x_set_fullscreen (f, new_value, old_val
    else if (EQ (new_value, Qfullheight))
      f->want_fullscreen = FULLSCREEN_HEIGHT;
  
 -  if (fullscreen_hook != NULL) 
 -    fullscreen_hook (f);
 +  if (FRAME_TERMINAL (f)->fullscreen_hook != NULL) 
 +    FRAME_TERMINAL (f)->fullscreen_hook (f);
  }
  
  
@@@ -3373,6 -3057,8 +3363,8 @@@ x_set_screen_gamma (f, new_value, old_v
       struct frame *f;
       Lisp_Object new_value, old_value;
  {
+   Lisp_Object bgcolor;
    if (NILP (new_value))
      f->gamma = 0;
    else if (NUMBERP (new_value) && XFLOATINT (new_value) > 0)
    else
      signal_error ("Invalid screen-gamma", new_value);
  
-   clear_face_cache (0);
+   /* Apply the new gamma value to the frame background.  */
+   bgcolor = Fassq (Qbackground_color, f->param_alist);
+   if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
+     {
+       Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter);
+       if (NATNUMP (index)
+         && (XFASTINT (index)
+             < sizeof (frame_parms)/sizeof (frame_parms[0]))
+         && rif->frame_parm_handlers[XFASTINT (index)])
+       (*(rif->frame_parm_handlers[XFASTINT (index)]))
+         (f, bgcolor, Qnil);
+     }
+   Fclear_face_cache (Qnil);
  }
  
  
@@@ -4314,23 -4013,13 +4319,23 @@@ syms_of_frame (
    staticpro (&Qbuffer_predicate);
    Qbuffer_list = intern ("buffer-list");
    staticpro (&Qbuffer_list);
 +  Qburied_buffer_list = intern ("buried-buffer-list");
 +  staticpro (&Qburied_buffer_list);
    Qdisplay_type = intern ("display-type");
    staticpro (&Qdisplay_type);
    Qbackground_mode = intern ("background-mode");
    staticpro (&Qbackground_mode);
    Qtty_color_mode = intern ("tty-color-mode");
    staticpro (&Qtty_color_mode);
 -
 +  Qtty = intern ("tty");
 +  staticpro (&Qtty);
 +  Qtty_type = intern ("tty-type");
 +  staticpro (&Qtty_type);
 +  Qwindow_system = intern ("window-system");
 +  staticpro (&Qwindow_system);
 +  Qenvironment = intern ("environment");
 +  staticpro (&Qenvironment);
 +  
    Qface_set_after_frame_default = intern ("face-set-after-frame-default");
    staticpro (&Qface_set_after_frame_default);
  
    Qx_frame_parameter = intern ("x-frame-parameter");
    staticpro (&Qx_frame_parameter);
  
 +  Qterminal = intern ("terminal");
 +  staticpro (&Qterminal);
 +  Qterminal_live_p = intern ("terminal-live-p");
 +  staticpro (&Qterminal_live_p);
 +  
    {
      int i;
  
@@@ -4403,7 -4087,6 +4408,7 @@@ These may be set in your init file, lik
  These override values given in window system configuration data,
   including X Windows' defaults database.
  For values specific to the first Emacs frame, see `initial-frame-alist'.
 +For window-system specific values, see `window-system-default-frame-alist'.
  For values specific to the separate minibuffer frame, see
   `minibuffer-frame-alist'.
  The `menu-bar-lines' element of the list controls whether new frames
@@@ -4424,12 -4107,8 +4429,8 @@@ Setting this variable does not affect e
    Vdefault_frame_scroll_bars = Qnil;
  #endif
  
-   Qinhibit_default_face_x_resources
-     = intern ("inhibit-default-face-x-resources");
-   staticpro (&Qinhibit_default_face_x_resources);
    DEFVAR_LISP ("terminal-frame", &Vterminal_frame,
 -             doc: /* The initial frame-object, which represents Emacs's stdout.  */);
 +               doc: /* The initial frame-object, which represents Emacs's stdout.  */);
  
    DEFVAR_LISP ("emacs-iconified", &Vemacs_iconified,
               doc: /* Non-nil if all of Emacs is iconified and frame updates are not needed.  */);
@@@ -4454,14 -4133,7 +4455,14 @@@ when the mouse is over clickable text
    DEFVAR_LISP ("delete-frame-functions", &Vdelete_frame_functions,
               doc: /* Functions to be run before deleting a frame.
  The functions are run with one arg, the frame to be deleted.
 -See `delete-frame'.  */);
 +See `delete-frame'.
 +
 +Note that functions in this list may be called twice on the same
 +frame.  In the second invocation, the frame is already deleted, and
 +the function should do nothing.  (You can use `frame-live-p' to check
 +for this.)  This wrinkle happens when an earlier function in
 +`delete-frame-functions' (indirectly) calls delete-frame
 +recursively.  */);
    Vdelete_frame_functions = Qnil;
  
    DEFVAR_KBOARD ("default-minibuffer-frame", Vdefault_minibuffer_frame,
@@@ -4484,7 -4156,6 +4485,7 @@@ This variable is local to the current t
    defsubr (&Sactive_minibuffer_window);
    defsubr (&Sframep);
    defsubr (&Sframe_live_p);
 +  defsubr (&Swindow_system);
    defsubr (&Smake_terminal_frame);
    defsubr (&Shandle_switch_frame);
    defsubr (&Sselect_frame);
    defsubr (&Sframe_parameters);
    defsubr (&Sframe_parameter);
    defsubr (&Smodify_frame_parameters);
 +  defsubr (&Sframe_with_environment);
    defsubr (&Sframe_char_height);
    defsubr (&Sframe_char_width);
    defsubr (&Sframe_pixel_height);
diff --combined src/gtkutil.c
index 7953ce3074036c8a90ac6129f10824209e5609d6,fa8e91546ce2b22867ca13c6b5bd825556898365..0f0e2e763ef6a58ea80d3e3c560da3f46c01681e
@@@ -865,7 -865,7 +865,7 @@@ xg_create_frame_widgets (f
  
    /* Since GTK clears its window by filling with the background color,
       we must keep X and GTK background in sync.  */
 -  xg_pix_to_gcolor (wfixed, f->output_data.x->background_pixel, &bg);
 +  xg_pix_to_gcolor (wfixed, FRAME_BACKGROUND_PIXEL (f), &bg);
    gtk_widget_modify_bg (wfixed, GTK_STATE_NORMAL, &bg);
  
    /* Also, do not let any background pixmap to be set, this looks very
@@@ -2034,7 -2034,7 +2034,7 @@@ xg_create_one_menuitem (item, f, select
    return w;
  }
  
 -/* Callback called when keyboard traversal (started by menu-bar-open) ends.
 +/* Callback called when keyboard traversal (started by x-menu-bar-open) ends.
     WMENU is the menu for which traversal has been done.  DATA points to the
     frame for WMENU.  We must release grabs, some bad interaction between GTK
     and Emacs makes the menus keep the grabs.  */
@@@ -3687,7 -3687,7 +3687,7 @@@ update_frame_tool_bar (f
    int i;
    GtkRequisition old_req, new_req;
    struct x_output *x = f->output_data.x;
-   int hmargin, vmargin;
+   int hmargin = 0, vmargin = 0;
    GtkToolItem *ti;
  
    if (! FRAME_GTK_WIDGET (f))
diff --combined src/indent.c
index bb77de1be9bddc730a30071bb3dd616af5f19b0e,a48b8b590e8de631f4a6e59ba71925928d27f984..93ff40ba640608a997a29740c112a6333ac67219
@@@ -20,8 -20,6 +20,8 @@@ the Free Software Foundation, Inc., 51 
  Boston, MA 02110-1301, USA.  */
  
  #include <config.h>
 +#include <stdio.h>
 +
  #include "lisp.h"
  #include "buffer.h"
  #include "charset.h"
@@@ -911,6 -909,7 +911,7 @@@ indented_beyond_p (pos, pos_byte, colum
  \f
  DEFUN ("move-to-column", Fmove_to_column, Smove_to_column, 1, 2, "p",
         doc: /* Move point to column COLUMN in the current line.
+ Interactively, COLUMN is the value of prefix numeric argument.
  The column of a character is calculated by adding together the widths
  as displayed of the previous characters in the line.
  This function ignores line-continuation;
@@@ -920,10 -919,10 +921,10 @@@ and horizontal scrolling has no effect
  If specified column is within a character, point goes after that character.
  If it's past end of line, point goes to end of line.
  
- A non-nil second (optional) argument FORCE means,
if COLUMN is in the middle of a tab character, change it to spaces.
- In addition, if FORCE is t, and the line is too short
to reach column COLUMN, add spaces/tabs to get there.
+ Optional second argument FORCE non-nil means if COLUMN is in the
+ middle of a tab character, change it to spaces.
+ In addition, if FORCE is t, and the line is too short to reach
+ COLUMN, add spaces/tabs to get there.
  
  The return value is the current column.  */)
       (column, force)
diff --combined src/lread.c
index 0014c31c45dc70dade930f0214cfbf162bd679e3,8fc1335698f729b9230041b2475fce07ed7228dd..f1671c4543ce6fb0327837619a739fb5cc3fa8ce
@@@ -27,7 -27,6 +27,7 @@@ Boston, MA 02110-1301, USA.  *
  #include <sys/stat.h>
  #include <sys/file.h>
  #include <errno.h>
 +#include <setjmp.h>
  #include "lisp.h"
  #include "intervals.h"
  #include "buffer.h"
@@@ -35,7 -34,6 +35,7 @@@
  #include <epaths.h>
  #include "commands.h"
  #include "keyboard.h"
 +#include "frame.h"
  #include "termhooks.h"
  #include "coding.h"
  
@@@ -439,6 -437,8 +439,6 @@@ static void substitute_in_interval P_ (
  \f
  /* Get a character from the tty.  */
  
 -extern Lisp_Object read_char ();
 -
  /* Read input events until we get one that's acceptable for our purposes.
  
     If NO_SWITCH_FRAME is non-zero, switch-frame events are stashed
@@@ -490,12 -490,10 +490,12 @@@ read_filtered_event (no_switch_frame, a
        EMACS_ADD_TIME (end_time, end_time, wait_time);
      }
  
 -  /* Read until we get an acceptable event.  */
 +/* Read until we get an acceptable event.  */
   retry:
 -  val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0,
 -                 NUMBERP (seconds) ? &end_time : NULL);
 +  do 
 +    val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0,
 +                   NUMBERP (seconds) ? &end_time : NULL);
 +  while (INTEGERP (val) && XINT (val) == -2); /* wrong_kboard_jmpbuf */
  
    if (BUFFERP (val))
      goto retry;
@@@ -4089,10 -4087,10 +4089,10 @@@ contain symbolic links) of the loaded f
  
  The remaining elements of each list are symbols defined as variables
  and cons cells of the form `(provide . FEATURE)', `(require . FEATURE)',
- `(defun . FUNCTION)', `(autoload . SYMBOL)', and `(t . SYMBOL)'.
- An element `(t . SYMBOL)' precedes an entry `(defun . FUNCTION)',
- and means that SYMBOL was an autoload before this file redefined it
- as a function.
+ `(defun . FUNCTION)', `(autoload . SYMBOL)', `(defface . SYMBOL)'
+ and `(t . SYMBOL)'.  An element `(t . SYMBOL)' precedes an entry
+ `(defun . FUNCTION)', and means that SYMBOL was an autoload before
this file redefined it as a function.
  
  During preloading, the file name recorded is relative to the main Lisp
  directory.  These file names are converted to absolute at startup.  */);
               doc: /* File name, including directory, of user's initialization file.
  If the file loaded had extension `.elc', and the corresponding source file
  exists, this variable contains the name of source file, suitable for use
- by functions like `custom-save-all' which edit the init file.  */);
+ by functions like `custom-save-all' which edit the init file.
+ While Emacs loads and evaluates the init file, value is the real name
+ of the file, regardless of whether or not it has the `.elc' extension.  */);
    Vuser_init_file = Qnil;
  
    DEFVAR_LISP ("current-load-list", &Vcurrent_load_list,
diff --combined src/macfns.c
index c43a43dae6215bf47a0e9fe8e31027f5f944c2db,013b145f6de566cc67ca77f321fabf0bcc6b3c4c..9be0d0e9ea58df93de898cd496fd6497f03ed04f
@@@ -1370,11 -1370,11 +1370,11 @@@ x_set_mouse_color (f, arg, oldval
    Cursor cursor, nontext_cursor, mode_cursor, hand_cursor;
    Cursor hourglass_cursor, horizontal_drag_cursor;
    unsigned long pixel = x_decode_color (f, arg, BLACK_PIX_DEFAULT (f));
 -  unsigned long mask_color = x->background_pixel;
 +  unsigned long mask_color = FRAME_BACKGROUND_PIXEL (f);
  
    /* Don't let pointers be invisible.  */
    if (mask_color == pixel)
 -    pixel = x->foreground_pixel;
 +    pixel = FRAME_FOREGROUND_PIXEL (f);
  
    f->output_data.mac->mouse_pixel = pixel;
  
@@@ -2419,8 -2419,8 +2419,8 @@@ x_make_gc (f
      = (XCreatePixmapFromBitmapData
         (FRAME_X_DISPLAY (f), FRAME_X_DISPLAY_INFO (f)->root_window,
        gray_bits, gray_width, gray_height,
 -      f->output_data.x->foreground_pixel,
 -      f->output_data.x->background_pixel,
 +      FRAME_FOREGROUND_PIXEL (f),
 +      FRAME_BACKGROUND_PIXEL (f),
        DefaultDepth (FRAME_X_DISPLAY (f), FRAME_X_SCREEN_NUMBER (f))));
  #endif
  
@@@ -2863,9 -2863,31 +2863,31 @@@ FRAME nil means use the selected frame
       (frame)
       Lisp_Object frame;
  {
+   OSErr err;
+   ProcessSerialNumber front_psn;
+   static const ProcessSerialNumber current_psn = {0, kCurrentProcess};
+   Boolean front_p;
    struct frame *f = check_x_frame (frame);
  
    BLOCK_INPUT;
+   /* Move the current process to the foreground if it is not.  Don't
+      call SetFrontProcess if the current process is already running in
+      the foreground so as not to change the z-order of windows.  */
+   err = GetFrontProcess (&front_psn);
+   if (err == noErr)
+     err = SameProcess (&front_psn, &current_psn, &front_p);
+   if (err == noErr)
+     if (!front_p)
+       {
+ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+       if (FrontNonFloatingWindow () == FRAME_MAC_WINDOW (f))
+         SetFrontProcessWithOptions (&current_psn,
+                                     kSetFrontProcessFrontWindowOnly);
+       else
+ #endif
+         SetFrontProcess (&current_psn);
+       }
  #ifdef MAC_OSX
    ActivateWindow (ActiveNonFloatingWindow (), false);
    ActivateWindow (FRAME_MAC_WINDOW (f), true);
@@@ -4513,7 -4535,7 +4535,7 @@@ If ONLY-DIR-P is non-nil, the user can 
                      filename[len++] = '/';
                    CFStringGetCString(reply.saveFileName, filename+len,
                                       sizeof (filename) - len,
- #if MAC_OSX
+ #ifdef MAC_OSX
                                       kCFStringEncodingUTF8
  #else
                                       CFStringGetSystemEncoding ()
@@@ -4575,22 -4597,22 +4597,22 @@@ DEFUN ("mac-clear-font-name-table", Fma
  }
  
  #if USE_MAC_FONT_PANEL
- DEFUN ("mac-set-font-panel-visibility", Fmac_set_font_panel_visibility,
-        Smac_set_font_panel_visibility, 1, 1, 0,
-   doc: /* Make the font panel visible if and only if VISIBLE is non-nil.
+ DEFUN ("mac-set-font-panel-visible-p", Fmac_set_font_panel_visible_p,
+        Smac_set_font_panel_visible_p, 1, 1, 0,
+   doc: /* Make the font panel visible if and only if FLAG is non-nil.
  This is for internal use only.  Use `mac-font-panel-mode' instead.  */)
-      (visible)
-      Lisp_Object visible;
+      (flag)
+      Lisp_Object flag;
  {
    OSStatus err = noErr;
  
    check_mac ();
  
    BLOCK_INPUT;
-   if (NILP (visible) != !mac_font_panel_visible_p ())
+   if (NILP (flag) != !mac_font_panel_visible_p ())
      {
        err = mac_show_hide_font_panel ();
-       if (err == noErr && !NILP (visible))
+       if (err == noErr && !NILP (flag))
        {
          Lisp_Object focus_frame = x_get_focus_frame (SELECTED_FRAME ());
          struct frame *f = (NILP (focus_frame) ? SELECTED_FRAME ()
@@@ -4860,7 -4882,7 +4882,7 @@@ Chinese, Japanese, and Korean.  */)
  #endif
    defsubr (&Smac_clear_font_name_table);
  #if USE_MAC_FONT_PANEL
-   defsubr (&Smac_set_font_panel_visibility);
+   defsubr (&Smac_set_font_panel_visible_p);
  #endif
  #if USE_ATSUI
    defsubr (&Smac_atsu_font_face_attributes);
diff --combined src/macterm.c
index 8ba62f2308f8856dacf03560b1092e7d5fa6862e,25c41ce9557b910d589994ec3ba2ef4c4bfc5744..f4e52a011745fa5f2ef23aa9d5f7e5b69a55a5e4
@@@ -1916,18 -1916,16 +1916,16 @@@ x_flush (f
  
  #define XFlush(DISPLAY)       (void) 0
  
\f
- /* Return the struct mac_display_info corresponding to DPY.  There's
-    only one.  */
- struct mac_display_info *
- mac_display_info_for_display (dpy)
-      Display *dpy;
+ #if USE_CG_DRAWING
+ static void
+ mac_flush_display_optional (f)
+      struct frame *f;
  {
-   return &one_mac_display_info;
+   BLOCK_INPUT;
+   mac_prepare_for_quickdraw (f);
+   UNBLOCK_INPUT;
  }
+ #endif
  \f
  /***********************************************************************
                    Starting and ending an update
@@@ -4649,7 -4647,7 +4647,7 @@@ static void construct_scroll_bar_click 
  static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
                                             Rect *));
  static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
-                                          ControlPartCode,
+                                          ControlPartCode, Point,
                                           struct input_event *));
  static void x_scroll_bar_handle_release P_ ((struct scroll_bar *,
                                             struct input_event *));
@@@ -4762,9 -4760,10 +4760,10 @@@ get_control_part_bounds (ch, part_code
  }
  
  static void
- x_scroll_bar_handle_press (bar, part_code, bufp)
+ x_scroll_bar_handle_press (bar, part_code, mouse_pos, bufp)
       struct scroll_bar *bar;
       ControlPartCode part_code;
+      Point mouse_pos;
       struct input_event *bufp;
  {
    int part = control_part_code_to_scroll_bar_part (part_code);
        construct_scroll_bar_click (bar, part, bufp);
        HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code);
        set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY);
+       bar->dragging = Qnil;
+     }
+   else
+     {
+       Rect r;
+       get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
+                              kControlIndicatorPart, &r);
+       XSETINT (bar->dragging, - (mouse_pos.v - r.top) - 1);
      }
  
    last_scroll_bar_part = part;
-   bar->dragging = Qnil;
    tracked_scroll_bar = bar;
  }
  
@@@ -4790,7 -4797,7 +4797,7 @@@ x_scroll_bar_handle_release (bar, bufp
       struct input_event *bufp;
  {
    if (last_scroll_bar_part != scroll_bar_handle
-       || !GC_NILP (bar->dragging))
+       || (INTEGERP (bar->dragging) && XINT (bar->dragging) >= 0))
      construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp);
  
    HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0);
@@@ -4818,13 -4825,11 +4825,11 @@@ x_scroll_bar_handle_drag (win, bar, mou
        get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
                               kControlIndicatorPart, &r);
  
-       if (GC_NILP (bar->dragging))
-       XSETINT (bar->dragging, mouse_pos.v - r.top);
+       if (INTEGERP (bar->dragging) && XINT (bar->dragging) < 0)
+       XSETINT (bar->dragging, - (XINT (bar->dragging) + 1));
  
        top = mouse_pos.v - XINT (bar->dragging) - XINT (bar->track_top);
-       top_range = (XINT (bar->track_height) - (r.bottom - r.top)) *
-       (1.0 + (float) GetControlViewSize (ch) / GetControl32BitMaximum (ch))
-       + .5;
+       top_range = XINT (bar->track_height) - XINT (bar->min_handle);
  
        if (top < 0)
        top = 0;
@@@ -4891,13 -4896,16 +4896,16 @@@ x_set_toolkit_scroll_bar_thumb (bar, po
    if (XINT (bar->track_height) == 0)
      return;
  
-   if (whole == 0)
+   if (whole <= portion)
      value = 0, viewsize = 1, maximum = 0;
    else
      {
-       value = position;
-       viewsize = portion;
-       maximum = max (0, whole - portion);
+       float scale;
+       maximum = XINT (bar->track_height) - XINT (bar->min_handle);
+       scale = (float) maximum / (whole - portion);
+       value = position * scale + 0.5f;
+       viewsize = (int) (portion * scale + 0.5f) + XINT (bar->min_handle);
      }
  
    BLOCK_INPUT;
@@@ -4978,6 -4986,7 +4986,7 @@@ x_scroll_bar_create (w, top, left, widt
  #ifdef USE_TOOLKIT_SCROLL_BARS
    bar->track_top = Qnil;
    bar->track_height = Qnil;
+   bar->min_handle = Qnil;
  #endif
  
    /* Add bar to its frame's list of scroll bars.  */
@@@ -5198,6 -5207,7 +5207,7 @@@ XTset_vertical_scroll_bar (w, portion, 
  #ifdef USE_TOOLKIT_SCROLL_BARS
          bar->track_top = Qnil;
          bar->track_height = Qnil;
+         bar->min_handle = Qnil;
  #endif
          }
  
        {
          XSETINT (bar->track_top, 0);
          XSETINT (bar->track_height, 0);
+         XSETINT (bar->min_handle, 0);
        }
        else
        {
          BLOCK_INPUT;
  
          SetControl32BitMinimum (ch, 0);
-         SetControl32BitMaximum (ch, 1);
+         SetControl32BitMaximum (ch, 1 << 30);
          SetControlViewSize (ch, 1);
  
          /* Move the scroll bar thumb to the top.  */
          get_control_part_bounds (ch, kControlIndicatorPart, &r0);
  
          /* Move the scroll bar thumb to the bottom.  */
-         SetControl32BitValue (ch, 1);
+         SetControl32BitValue (ch, 1 << 30);
          get_control_part_bounds (ch, kControlIndicatorPart, &r1);
  
          UnionRect (&r0, &r1, &r0);
          XSETINT (bar->track_top, r0.top);
          XSETINT (bar->track_height, r0.bottom - r0.top);
+         XSETINT (bar->min_handle, r1.bottom - r1.top);
  
          /* Don't show the scroll bar if its height is not enough to
             display the scroll bar thumb.  */
@@@ -8791,9 -8803,6 +8803,6 @@@ mac_set_font_info_for_selection (f, fac
  #define M_APPLE 234
  #define I_ABOUT 1
  
- #define WINDOW_RESOURCE 128
- #define TERM_WINDOW_RESOURCE 129
  #define DEFAULT_NUM_COLS 80
  
  #define MIN_DOC_SIZE 64
@@@ -10120,7 -10129,7 +10129,7 @@@ mac_handle_text_input_event (next_handl
      case kEventTextInputUnicodeForKeyEvent:
        {
        EventRef kbd_event;
-       UInt32 actual_size, modifiers, mapped_modifiers;
+       UInt32 actual_size, modifiers;
  
        err = GetEventParameter (event, kEventParamTextInputSendKeyboardEvent,
                                 typeEventRef, NULL, sizeof (EventRef), NULL,
@@@ -10757,12 -10766,12 +10766,12 @@@ XTread_socket (sd, expected, hold_quit
  #ifdef USE_TOOLKIT_SCROLL_BARS
                        /* Make the "Ctrl-Mouse-2 splits window" work
                           for toolkit scroll bars.  */
-                       if (er.modifiers & controlKey)
+                       if (inev.modifiers & ctrl_modifier)
                          x_scroll_bar_handle_click (bar, control_part_code,
                                                     &er, &inev);
                        else if (er.what == mouseDown)
                          x_scroll_bar_handle_press (bar, control_part_code,
-                                                    &inev);
+                                                    mouse_loc, &inev);
                        else
                          x_scroll_bar_handle_release (bar, &inev);
  #else  /* not USE_TOOLKIT_SCROLL_BARS */
                      f->mouse_moved = 0;
  
  #ifdef USE_TOOLKIT_SCROLL_BARS
-                   if (inev.kind == MOUSE_CLICK_EVENT)
+                   if (inev.kind == MOUSE_CLICK_EVENT
+                       || (inev.kind == SCROLL_BAR_CLICK_EVENT
+                           && (inev.modifiers & ctrl_modifier)))
  #endif
                      switch (er.what)
                        {
                /* translate the keycode back to determine the
                   original key */
  #ifdef MAC_OSX
+               UCKeyboardLayout *uchr_ptr = NULL;
+ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+               OSStatus err;
+               KeyboardLayoutRef layout;
+               err = KLGetCurrentKeyboardLayout (&layout);
+               if (err == noErr)
+                 KLGetKeyboardLayoutProperty (layout, kKLuchrData,
+                                              (const void **) &uchr_ptr);
+ #else
                static SInt16 last_key_layout_id = 0;
                static Handle uchr_handle = (Handle)-1;
                SInt16 current_key_layout_id =
                    uchr_handle = GetResource ('uchr', current_key_layout_id);
                    last_key_layout_id = current_key_layout_id;
                  }
                if (uchr_handle)
+                 uchr_ptr = (UCKeyboardLayout *)*uchr_handle;
+ #endif
+               if (uchr_ptr)
                  {
                    OSStatus status;
                    UInt16 key_action = er.what - keyDown;
                    UniChar code;
                    UniCharCount actual_length;
  
-                   status = UCKeyTranslate ((UCKeyboardLayout *)*uchr_handle,
+                   status = UCKeyTranslate (uchr_ptr,
                                             keycode, key_action,
                                             modifier_key_state,
                                             keyboard_type,
@@@ -11640,19 -11664,6 +11664,6 @@@ x_delete_display (dpyinfo
  }
  
  \f
- #ifdef MAC_OSX
- void
- MakeMeTheFrontProcess ()
- {
-   ProcessSerialNumber psn;
-   OSErr err;
-   err = GetCurrentProcess (&psn);
-   if (err == noErr)
-     (void) SetFrontProcess (&psn);
- }
- #endif        /* MAC_OSX */
  static void
  init_menu_bar ()
  {
@@@ -11717,7 -11728,11 +11728,11 @@@ static struct redisplay_interface x_red
    x_update_window_end,
    x_cursor_to,
    x_flush,
+ #if USE_CG_DRAWING
+   mac_flush_display_optional,
+ #else
    0, /* flush_display_optional */
+ #endif
    x_clear_window_mouse_face,
    x_get_glyph_overhangs,
    x_fix_overlapping_area,
@@@ -11765,20 -11780,19 +11780,20 @@@ mac_initialize (
    redeem_scroll_bar_hook = XTredeem_scroll_bar;
    judge_scroll_bars_hook = XTjudge_scroll_bars;
  
 -  scroll_region_ok = 1;         /* we'll scroll partial frames */
 -  char_ins_del_ok = 1;
 -  line_ins_del_ok = 1;          /* we'll just blt 'em */
 -  fast_clear_end_of_line = 1;   /* X does this well */
 -  memory_below_frame = 0;       /* we don't remember what scrolls
 -                                 off the bottom */
 +  TTY_SCROLL_REGION_OK (CURTTY ()) = 1; /* we'll scroll partial frames */
 +  TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
 +  TTY_LINE_INS_DEL_OK (CURTTY ()) = 1; /* we'll just blt 'em */
 +  TTY_FAST_CLEAR_END_OF_LINE (CURTTY ()) = 1; /* X does this well */
 +  TTY_MEMORY_BELOW_FRAME (CURTTY ()) = 0; /* we don't remember what
 +                                                         scrolls off the
 +                                                         bottom */
    baud_rate = 19200;
  
    last_tool_bar_item = -1;
    any_help_event_p = 0;
  
    /* Try to use interrupt input; if we can't, then start polling.  */
 -  Fset_input_mode (Qt, Qnil, Qt, Qnil);
 +  Fset_input_interrupt_mode (Qt);
  
    BLOCK_INPUT;
  
    init_apple_event_handler ();
  
    if (!inhibit_window_system)
-     MakeMeTheFrontProcess ();
+     {
+       static const ProcessSerialNumber psn = {0, kCurrentProcess};
+       SetFrontProcess (&psn);
+     }
  #endif
  #endif
  
diff --combined src/macterm.h
index 0f474e1b3d8a5afbc393286bc0066560e80a9c80,3d0b41f6efee9fd04f6fe92a52c891c0d75daf59..6ee57d60d01a30efe50cdeda26894dde7db6cb81
@@@ -204,7 -204,6 +204,6 @@@ extern struct mac_display_info one_mac_
     FONT-LIST-CACHE records previous values returned by x-list-fonts.  */
  extern Lisp_Object x_display_name_list;
  
- extern struct x_display_info *x_display_info_for_display P_ ((Display *));
  extern struct x_display_info *x_display_info_for_name P_ ((Lisp_Object));
  
  extern struct mac_display_info *mac_term_init P_ ((Lisp_Object, char *, char *));
@@@ -346,6 -345,9 +345,6 @@@ typedef struct mac_output mac_output
  #define FRAME_MAC_WINDOW(f) ((f)->output_data.mac->window_desc)
  #define FRAME_X_WINDOW(f) ((f)->output_data.mac->window_desc)
  
 -#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
 -#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
 -
  #define FRAME_FONT(f) ((f)->output_data.mac->font)
  #define FRAME_FONTSET(f) ((f)->output_data.mac->fontset)
  
@@@ -401,8 -403,8 +400,8 @@@ struct scroll_bar 
    /* The next and previous in the chain of scroll bars in this frame.  */
    Lisp_Object next, prev;
  
-   /* The Mac control handle of this scroll bar.  Since this is a full
-      32-bit quantity, we store it split into two 32-bit values.  */
+   /* The Mac control handle of this scroll bar.  Since this is a
+      pointer value, we store it split into two Lisp integers.  */
    Lisp_Object control_handle_low, control_handle_high;
  
    /* The position and size of the scroll bar in pixels, relative to the
  
    /* If the scroll bar handle is currently being dragged by the user,
       this is the number of pixels from the top of the handle to the
-      place where the user grabbed it.  If the handle isn't currently
+      place where the user grabbed it.  If the handle is pressed but
+      not dragged yet, this is a negative integer whose absolute value
+      is the number of pixels plus 1.  If the handle isn't currently
       being dragged, this is Qnil.  */
    Lisp_Object dragging;
  
    /* The position and size of the scroll bar handle track area in
       pixels, relative to the frame.  */
    Lisp_Object track_top, track_height;
+   /* Minimum length of the scroll bar handle, in pixels.  */
+   Lisp_Object min_handle;
  #endif
  };
  
  #define XSCROLL_BAR(vec) ((struct scroll_bar *) XVECTOR (vec))
  
  
- /* Building a 32-bit C integer from two 16-bit lisp integers.  */
+ /* Building a C long integer from two lisp integers.  */
  #define SCROLL_BAR_PACK(low, high) (XINT (high) << 16 | XINT (low))
  
- /* Setting two lisp integers to the low and high words of a 32-bit C int.  */
- #define SCROLL_BAR_UNPACK(low, high, int32) \
-   (XSETINT ((low),   (int32)        & 0xffff), \
-    XSETINT ((high), ((int32) >> 16) & 0xffff))
+ /* Setting two lisp integers to two parts of a C unsigned long.  */
+ #define SCROLL_BAR_UNPACK(low, high, ulong) \
+   (XSETINT ((low),  (ulong) & 0xffff), \
+    XSETINT ((high), (ulong) >> 16))
  
  
  /* Extract the Mac control handle of the scroll bar from a struct
                                      (ptr)->control_handle_high))
  
  /* Store a Mac control handle in a struct scroll_bar.  */
- #define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, id) \
+ #define SET_SCROLL_BAR_CONTROL_HANDLE(ptr, handle) \
    (SCROLL_BAR_UNPACK ((ptr)->control_handle_low, \
-                       (ptr)->control_handle_high, (int) id))
+                       (ptr)->control_handle_high, (unsigned long) (handle)))
  
  /* Return the inside width of a vertical scroll bar, given the outside
     width.  */
diff --combined src/minibuf.c
index bdd810cb201d2a9807213567c25a737ffeba6126,667799bf17004f65a07fd46301abdb6a9092cca6..51a64ffed8b7fd871b3951e50400f030348a5f55
@@@ -35,7 -35,6 +35,7 @@@ Boston, MA 02110-1301, USA.  *
  #include "syntax.h"
  #include "intervals.h"
  #include "keymap.h"
 +#include "termhooks.h"
  
  extern int quit_char;
  
@@@ -136,6 -135,11 +136,11 @@@ static Lisp_Object last_exact_completio
  /* Keymap for reading expressions.  */
  Lisp_Object Vread_expression_map;
  
+ Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
+ Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
+ Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
+ Lisp_Object Vminibuffer_completing_file_name;
  Lisp_Object Quser_variable_p;
  
  Lisp_Object Qminibuffer_default;
@@@ -468,7 -472,6 +473,6 @@@ read_minibuf (map, initial, prompt, bac
    struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
    Lisp_Object enable_multibyte;
    int pos = INTEGERP (backup_n) ? XINT (backup_n) : 0;
    /* String to add to the history.  */
    Lisp_Object histstring;
  
  
    specbind (Qminibuffer_default, defalt);
  
 -  single_kboard_state ();
+   /* If Vminibuffer_completing_file_name is `lambda' on entry, it was t
+      in previous recursive minibuffer, but was not set explicitly
+      to t for this invocation, so set it to nil in this minibuffer.
+      Save the old value now, before we change it.  */
+   specbind (intern ("minibuffer-completing-file-name"), Vminibuffer_completing_file_name);
+   if (EQ (Vminibuffer_completing_file_name, Qlambda))
+     Vminibuffer_completing_file_name = Qnil;
  #ifdef HAVE_X_WINDOWS
    if (display_hourglass_p)
      cancel_hourglass ();
    if (minibuffer_auto_raise)
      Fraise_frame (mini_frame);
  
 +  temporarily_switch_to_single_kboard (XFRAME (mini_frame));
 +
    /* We have to do this after saving the window configuration
       since that is what restores the current buffer.  */
  
       specpdl slots.  */
    minibuf_save_list
      = Fcons (Voverriding_local_map,
-            Fcons (minibuf_window, minibuf_save_list));
+            Fcons (minibuf_window,
+                   minibuf_save_list));
    minibuf_save_list
      = Fcons (minibuf_prompt,
             Fcons (make_number (minibuf_prompt_width),
    Vminibuffer_history_position = histpos;
    Vminibuffer_history_variable = histvar;
    Vhelp_form = Vminibuffer_help_form;
+   /* If this minibuffer is reading a file name, that doesn't mean
+      recursive ones are.  But we cannot set it to nil, because
+      completion code still need to know the minibuffer is completing a
+      file name.  So use `lambda' as intermediate value meaning
+      "t" in this minibuffer, but "nil" in next minibuffer.  */
+   if (!NILP (Vminibuffer_completing_file_name))
+     Vminibuffer_completing_file_name = Qlambda;
  
    if (inherit_input_method)
      {
        XWINDOW (minibuf_window)->cursor.x = 0;
        XWINDOW (minibuf_window)->must_be_updated_p = 1;
        update_frame (XFRAME (selected_frame), 1, 1);
 -      if (rif && rif->flush_display)
 -      rif->flush_display (XFRAME (XWINDOW (minibuf_window)->frame));
 +      {
 +        struct frame *f = XFRAME (XWINDOW (minibuf_window)->frame);
 +        struct redisplay_interface *rif = FRAME_RIF (f);
 +        if (rif && rif->flush_display)
 +          rif->flush_display (f);
 +      }
      }
  
    /* Make minibuffer contents into a string.  */
@@@ -1690,11 -1704,6 +1710,6 @@@ are ignored unless STRING itself start
    return Fnreverse (allmatches);
  }
  \f
- Lisp_Object Vminibuffer_completion_table, Qminibuffer_completion_table;
- Lisp_Object Vminibuffer_completion_predicate, Qminibuffer_completion_predicate;
- Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm;
- Lisp_Object Vminibuffer_completing_file_name;
  DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0,
         doc: /* Read a string in the minibuffer, with completion.
  PROMPT is a string to prompt with; normally it ends in a colon and a space.
@@@ -1792,9 -1801,11 +1807,11 @@@ Completion ignores case if the ambient 
  
    val = read_minibuf (NILP (require_match)
                      ? (NILP (Vminibuffer_completing_file_name)
+                        || EQ (Vminibuffer_completing_file_name, Qlambda)
                         ? Vminibuffer_local_completion_map
                         : Vminibuffer_local_filename_completion_map)
                      : (NILP (Vminibuffer_completing_file_name)
+                        || EQ (Vminibuffer_completing_file_name, Qlambda)
                         ? Vminibuffer_local_must_match_map
                         : Vminibuffer_local_must_match_filename_map),
                      init, prompt, make_number (pos), 0,
@@@ -2062,9 -2073,10 +2079,10 @@@ do_completion (
  /* Like assoc but assumes KEY is a string, and ignores case if appropriate.  */
  
  DEFUN ("assoc-string", Fassoc_string, Sassoc_string, 2, 3, 0,
-        doc: /* Like `assoc' but specifically for strings.
- Unibyte strings are converted to multibyte for comparison.
- And case is ignored if CASE-FOLD is non-nil.
+        doc: /* Like `assoc' but specifically for strings (and symbols).
+ Symbols are converted to strings, and unibyte strings are converted to
+ multibyte for comparison.
+ Case is ignored if optional arg CASE-FOLD is non-nil.
  As opposed to `assoc', it will also match an entry consisting of a single
  string rather than a cons cell whose car is a string.  */)
         (key, list, case_fold)
  {
    register Lisp_Object tail;
  
+   if (SYMBOLP (key))
+     key = Fsymbol_name (key);
    for (tail = list; !NILP (tail); tail = Fcdr (tail))
      {
        register Lisp_Object elt, tem, thiscar;
        elt = Fcar (tail);
        thiscar = CONSP (elt) ? XCAR (elt) : elt;
-       if (!STRINGP (thiscar))
+       if (SYMBOLP (thiscar))
+       thiscar = Fsymbol_name (thiscar);
+       else if (!STRINGP (thiscar))
        continue;
        tem = Fcompare_strings (thiscar, make_number (0), Qnil,
                              key, make_number (0), Qnil,
@@@ -2909,7 -2926,7 +2932,7 @@@ CODE can be nil, t or `lambda'
  
    DEFVAR_LISP ("minibuffer-completing-file-name",
               &Vminibuffer_completing_file_name,
-              doc: /* Non-nil means completing file names.  */);
+              doc: /* Non-nil and non-`lambda' means completing file names.  */);
    Vminibuffer_completing_file_name = Qnil;
  
    DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form,
diff --combined src/print.c
index 883daa55e2b286e57cfe4bd5ba26d27a1e12446a,e3f60e06fcc78dea565a95e33e05390fccbaa06a..ed233729c6f4a69bf84e3c3cac66b29ba50fdef3
@@@ -1292,7 -1292,8 +1292,8 @@@ print (obj, printcharfun, escapeflag
       the variable Vprint_continuous_numbering is nil.  Otherwise,
       the values of these variables will be kept between several
       print functions.  */
-   if (NILP (Vprint_continuous_numbering))
+   if (NILP (Vprint_continuous_numbering)
+       || NILP (Vprint_number_table))
      {
        print_number_index = 0;
        Vprint_number_table = Qnil;
@@@ -1382,10 -1383,10 +1383,10 @@@ print_preprocess (obj
          for (i = 0; i < print_number_index; i++)
            if (EQ (PRINT_NUMBER_OBJECT (Vprint_number_table, i), obj))
              {
 -              /* OBJ appears more than once.  Let's remember that.  */
 +              /* OBJ appears more than once.  Let's remember that.  */
                PRINT_NUMBER_STATUS (Vprint_number_table, i) = Qt;
                  print_depth--;
 -                return;
 +              return;
              }
  
          /* OBJ is not yet recorded.  Let's add to the table.  */
diff --combined src/process.c
index 38a5c8341cf2ab9e0e89f2e37087b64419de8a5f,7f651e367007edfad36b363fd6c25ddae755dc71..d11a300363d7567bed4d1de9d969a228d02cd727
@@@ -138,11 -138,11 +138,11 @@@ Boston, MA 02110-1301, USA.  *
  #include "charset.h"
  #include "coding.h"
  #include "process.h"
 +#include "frame.h"
  #include "termhooks.h"
  #include "termopts.h"
  #include "commands.h"
  #include "keyboard.h"
 -#include "frame.h"
  #include "blockinput.h"
  #include "dispextern.h"
  #include "composite.h"
@@@ -328,11 -328,11 +328,11 @@@ extern int timers_run
  
  static SELECT_TYPE input_wait_mask;
  
 -/* Mask that excludes keyboard input descriptor (s).  */
 +/* Mask that excludes keyboard input descriptor(s).  */
  
  static SELECT_TYPE non_keyboard_wait_mask;
  
 -/* Mask that excludes process input descriptor (s).  */
 +/* Mask that excludes process input descriptor(s).  */
  
  static SELECT_TYPE non_process_wait_mask;
  
@@@ -3139,10 -3139,6 +3139,10 @@@ usage: (make-network-process &rest ARGS
  
   open_socket:
  
 +#ifdef __ultrix__
 +  /* Previously this was compiled unconditionally, but that seems
 +     unnecessary on modern systems, and `unrequest_sigio' was a noop
 +     under X anyway. --lorentey */
    /* Kernel bugs (on Ultrix at least) cause lossage (not just EINTR)
       when connect is interrupted.  So let's not let it get interrupted.
       Note we do not turn off polling, because polling is only used
        record_unwind_protect (unwind_request_sigio, Qnil);
        unrequest_sigio ();
      }
 +#endif
  
    /* Do this in case we never enter the for-loop below.  */
    count1 = SPECPDL_INDEX ();
@@@ -5665,6 -5660,83 +5665,83 @@@ send_process (proc, buf, len, object
    UNGCPRO;
  }
  
+ static Lisp_Object
+ send_process_object_unwind (buf)
+      Lisp_Object buf;
+ {
+   Lisp_Object tembuf;
+   if (XBUFFER (buf) == current_buffer)
+     return Qnil;
+   tembuf = Fcurrent_buffer ();
+   Fset_buffer (buf);
+   Fkill_buffer (tembuf);
+   return Qnil;
+ }
+ /* Send current contents of region between START and END to PROC.
+    If START is a string, send it instead.
+    This function can evaluate Lisp code and can garbage collect.  */
+ static void
+ send_process_object (proc, start, end)
+      Lisp_Object proc, start, end;
+ {
+   int count = SPECPDL_INDEX ();
+   Lisp_Object object = STRINGP (start) ? start : Fcurrent_buffer ();
+   struct buffer *given_buffer = current_buffer;
+   unsigned char *buf;
+   int len;
+   record_unwind_protect (send_process_object_unwind, Fcurrent_buffer ());
+   if (STRINGP (object) ? STRING_MULTIBYTE (object)
+       : ! NILP (XBUFFER (object)->enable_multibyte_characters))
+     {
+       struct Lisp_Process *p = XPROCESS (proc);
+       struct coding_system *coding = proc_encode_coding_system[XINT (p->outfd)];
+       if (! EQ (coding->symbol, p->encode_coding_system))
+       /* The coding system for encoding was changed to raw-text
+          because we sent a unibyte text previously.  Now we are
+          sending a multibyte text, thus we must encode it by the
+          original coding system specified for the current process.  */
+       setup_coding_system (p->encode_coding_system, coding);
+       if (! NILP (coding->pre_write_conversion))
+       {
+         struct gcpro gcpro1, gcpro2;
+         GCPRO2 (proc, object);
+         call2 (coding->pre_write_conversion, start, end);
+         UNGCPRO;
+         if (given_buffer != current_buffer)
+           {
+             start = make_number (BEGV), end = make_number (ZV);
+             object = Fcurrent_buffer ();
+           }
+       }
+     }
+   if (BUFFERP (object))
+     {
+       EMACS_INT start_byte;
+       if (XINT (start) < GPT && XINT (end) > GPT)
+       move_gap (XINT (end));
+       start_byte = CHAR_TO_BYTE (XINT (start));
+       buf = BYTE_POS_ADDR (start_byte);
+       len = CHAR_TO_BYTE (XINT (end)) - start_byte;
+     }
+   else
+     {
+       buf = SDATA (object);
+       len = SBYTES (object);
+     }
+   send_process (proc, buf, len, object);
+   unbind_to (count, Qnil);
+ }
  DEFUN ("process-send-region", Fprocess_send_region, Sprocess_send_region,
         3, 3, 0,
         doc: /* Send current contents of region as input to PROCESS.
@@@ -5678,19 -5750,10 +5755,10 @@@ Output from processes can arrive in bet
       Lisp_Object process, start, end;
  {
    Lisp_Object proc;
-   int start1, end1;
  
    proc = get_process (process);
    validate_region (&start, &end);
-   if (XINT (start) < GPT && XINT (end) > GPT)
-     move_gap (XINT (start));
-   start1 = CHAR_TO_BYTE (XINT (start));
-   end1 = CHAR_TO_BYTE (XINT (end));
-   send_process (proc, BYTE_POS_ADDR (start1), end1 - start1,
-               Fcurrent_buffer ());
+   send_process_object (proc, start, end);
    return Qnil;
  }
  
@@@ -5708,8 -5771,7 +5776,7 @@@ Output from processes can arrive in bet
    Lisp_Object proc;
    CHECK_STRING (string);
    proc = get_process (process);
-   send_process (proc, SDATA (string),
-               SBYTES (string), string);
+   send_process_object (proc, string, Qnil);
    return Qnil;
  }
  \f
@@@ -6855,12 -6917,20 +6922,12 @@@ DEFUN ("process-filter-multibyte-p", Fp
  
  
  \f
 -/* The first time this is called, assume keyboard input comes from DESC
 -   instead of from where we used to expect it.
 -   Subsequent calls mean assume input keyboard can come from DESC
 -   in addition to other places.  */
 -
 -static int add_keyboard_wait_descriptor_called_flag;
 +/* Add DESC to the set of keyboard input descriptors.  */
  
  void
  add_keyboard_wait_descriptor (desc)
       int desc;
  {
 -  if (! add_keyboard_wait_descriptor_called_flag)
 -    FD_CLR (0, &input_wait_mask);
 -  add_keyboard_wait_descriptor_called_flag = 1;
    FD_SET (desc, &input_wait_mask);
    FD_SET (desc, &non_process_wait_mask);
    if (desc > max_keyboard_desc)
@@@ -6932,12 -7002,7 +6999,12 @@@ init_process (
    process_output_skip = 0;
  #endif
  
 +  /* Don't do this, it caused infinite select loops.  The display
 +     method should call add_keyboard_wait_descriptor on stdin if it
 +     needs that.  */
 +#if 0
    FD_SET (0, &input_wait_mask);
 +#endif
  
    Vprocess_alist = Qnil;
  #ifdef SIGCHLD
diff --combined src/w32term.c
index 8044e23d5ae44762f327466b579beb02075a7616,77e85ca2274545696bb09a9ca272a9abc427f28f..e7118caa0d7dbc79abd3b80509e69ee4b6281d79
@@@ -1,6 -1,7 +1,7 @@@
  /* Implementation of GUI terminal on the Microsoft W32 API.
-    Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-                  2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+    Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998,
+                  1999, 2000, 2001, 2002, 2003, 2004, 2005,
+                  2006, 2007 Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -3473,25 -3474,51 +3474,51 @@@ w32_set_scroll_bar_thumb (bar, portion
       int portion, position, whole;
  {
    Window w = SCROLL_BAR_W32_WINDOW (bar);
-   double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height));
+   /* We use the whole scroll-bar height in the calculations below, to
+      avoid strange effects like scrolling backwards when just clicking
+      on the handle (without moving it).  */
+   double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height))
+                  + VERTICAL_SCROLL_BAR_MIN_HANDLE;
    int sb_page, sb_pos;
    BOOL draggingp = !NILP (bar->dragging) ? TRUE : FALSE;
    SCROLLINFO si;
  
+   /* We used to change the nPage setting while dragging the handle,
+      but that had very strange effects (such as scrolling backwards
+      while dragging downwards).
+      Now, we don't change the nPage setting while dragging unless we
+      get near to the end of the buffer, in which case we often have to
+      resize the handle to "go all the way".  */
+   if (draggingp)
+     {
+       int near_bottom_p;
+       BLOCK_INPUT;
+       si.cbSize = sizeof (si);
+       si.fMask = SIF_POS | SIF_PAGE;
+       GetScrollInfo(w, SB_CTL, &si);
+       near_bottom_p = si.nPos + si.nPage >= range;
+       UNBLOCK_INPUT;
+       if (!near_bottom_p)
+       return;
+     }
    if (whole)
      {
        /* Position scroll bar at rock bottom if the bottom of the
           buffer is visible. This avoids shinking the thumb away
           to nothing if it is held at the bottom of the buffer.  */
-       if (position + portion >= whole)
-         {
-           sb_page = range * (whole - position) / whole
-             + VERTICAL_SCROLL_BAR_MIN_HANDLE;
-           sb_pos = range;
-         }
-       sb_page = portion * range / whole + VERTICAL_SCROLL_BAR_MIN_HANDLE;
-       sb_pos = position * range / whole;
+       if (position + portion >= whole && !draggingp)
+       {
+         sb_page = range * (whole - position) / whole;
+         sb_pos = range;
+       }
+       else
+       {
+         sb_pos = position * range / whole;
+         sb_page = (min (portion, (whole - position)) * range) / whole;
+       }
      }
    else
      {
        sb_pos = 0;
      }
  
+   sb_page = max (sb_page, VERTICAL_SCROLL_BAR_MIN_HANDLE);
    BLOCK_INPUT;
  
    si.cbSize = sizeof (si);
-   /* Only update page size if currently dragging, to reduce
-      flicker effects.  */
-   if (draggingp)
-     si.fMask = SIF_PAGE;
-   else
-     si.fMask = SIF_PAGE | SIF_POS;
+   si.fMask = SIF_PAGE | SIF_POS;
    si.nPage = sb_page;
    si.nPos = sb_pos;
  
-   SetScrollInfo (w, SB_CTL, &si, !draggingp);
+   SetScrollInfo (w, SB_CTL, &si, TRUE);
  
    UNBLOCK_INPUT;
  }
@@@ -5846,8 -5870,8 +5870,8 @@@ x_free_frame_resources (f
  
    free_frame_menubar (f);
  
 -  unload_color (f, f->output_data.x->foreground_pixel);
 -  unload_color (f, f->output_data.x->background_pixel);
 +  unload_color (f, FRAME_FOREGROUND_PIXEL (f));
 +  unload_color (f, FRAME_BACKGROUND_PIXEL (f));
    unload_color (f, f->output_data.w32->cursor_pixel);
    unload_color (f, f->output_data.w32->cursor_foreground_pixel);
    unload_color (f, f->output_data.w32->border_pixel);
@@@ -6345,13 -6369,12 +6369,13 @@@ w32_initialize (
    redeem_scroll_bar_hook = w32_redeem_scroll_bar;
    judge_scroll_bars_hook = w32_judge_scroll_bars;
  
 -  scroll_region_ok = 1;         /* we'll scroll partial frames */
 -  char_ins_del_ok = 1;
 -  line_ins_del_ok = 1;          /* we'll just blt 'em */
 -  fast_clear_end_of_line = 1;   /* X does this well */
 -  memory_below_frame = 0;       /* we don't remember what scrolls
 -                                 off the bottom */
 +  TTY_SCROLL_REGION_OK (CURTTY ()) = 1; /* we'll scroll partial frames */
 +  TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
 +  TTY_LINE_INS_DEL_OK (CURTTY ()) = 1; /* we'll just blt 'em */
 +  TTY_FAST_CLEAR_END_OF_LINE (CURTTY ()) = 1; /* X does this well */
 +  TTY_MEMORY_BELOW_FRAME (CURTTY ()) = 0; /* we don't remember what
 +                                                            scrolls off the
 +                                                            bottom */
    baud_rate = 19200;
  
    w32_system_caret_hwnd = NULL;
diff --combined src/w32term.h
index ac312c84a1994bd51ff27524f68e238f99720bb0,cac3e2f8997636616b97c90094532f1c38e822cf..ceb4f4e4b078ea3a3d0e814f8eca69b9ae38b5c8
@@@ -378,9 -378,6 +378,6 @@@ struct w32_outpu
    /* Nonzero means menubar is currently active.  */
    char menubar_active;
  
-   /* Nonzero means a menu command is being processed.  */
-   char menu_command_in_progress;
    /* Nonzero means menubar is about to become active, but should be
       brought up to date first.  */
    volatile char pending_menu_activation;
@@@ -408,6 -405,8 +405,6 @@@ extern struct w32_output w32term_displa
  #define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
  #define FRAME_X_WINDOW(f) ((f)->output_data.w32->window_desc)
  
 -#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
 -#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
  #define FRAME_FONT(f) ((f)->output_data.w32->font)
  #define FRAME_FONTSET(f) ((f)->output_data.w32->fontset)
  #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.w32->baseline_offset)
diff --combined src/window.c
index 57a818eeee61cb53f7f83824030d1ba3550a86e5,d54b55d87b93615ee34282913823d9b3489f9f9f..1554ef7ec3bbd93aa8bd924caaef761cbec1f869
@@@ -21,8 -21,6 +21,8 @@@ the Free Software Foundation, Inc., 51 
  Boston, MA 02110-1301, USA.  */
  
  #include <config.h>
 +#include <stdio.h>
 +
  #include "lisp.h"
  #include "buffer.h"
  #include "keyboard.h"
@@@ -539,7 -537,8 +539,8 @@@ WINDOW defaults to the selected window
  }
  
  DEFUN ("window-height", Fwindow_height, Swindow_height, 0, 1, 0,
-        doc: /* Return the number of lines in WINDOW (including its mode line).  */)
+        doc: /* Return the number of lines in WINDOW (including its mode line).
+ WINDOW defaults to the selected window.  */)
       (window)
       Lisp_Object window;
  {
@@@ -558,7 -557,8 +559,8 @@@ use  (let ((edges (window-edges))) (- (
  }
  
  DEFUN ("window-hscroll", Fwindow_hscroll, Swindow_hscroll, 0, 1, 0,
-        doc: /* Return the number of columns by which WINDOW is scrolled from left margin.  */)
+        doc: /* Return the number of columns by which WINDOW is scrolled from left margin.
+ WINDOW defaults to the selected window.  */)
       (window)
       Lisp_Object window;
  {
@@@ -591,6 -591,7 +593,7 @@@ window so that the location of point mo
  DEFUN ("window-redisplay-end-trigger", Fwindow_redisplay_end_trigger,
         Swindow_redisplay_end_trigger, 0, 1, 0,
         doc: /* Return WINDOW's redisplay end trigger value.
+ WINDOW defaults to the selected window.
  See `set-window-redisplay-end-trigger' for more information.  */)
       (window)
       Lisp_Object window;
@@@ -1113,6 -1114,8 +1116,8 @@@ column 0.  */
  
  DEFUN ("window-point", Fwindow_point, Swindow_point, 0, 1, 0,
         doc: /* Return current value of point in WINDOW.
+ WINDOW defaults to the selected window.
  For a nonselected window, this is the value point would have
  if that window were selected.
  
@@@ -1134,6 -1137,7 +1139,7 @@@ But that is hard to define.  */
  
  DEFUN ("window-start", Fwindow_start, Swindow_start, 0, 1, 0,
         doc: /* Return position at which display currently starts in WINDOW.
+ WINDOW defaults to the selected window.
  This is updated by redisplay or by calling `set-window-start'.  */)
       (window)
       Lisp_Object window;
@@@ -1154,6 -1158,7 +1160,7 @@@ have been if redisplay had finished, d
  
  DEFUN ("window-end", Fwindow_end, Swindow_end, 0, 2, 0,
         doc: /* Return position at which display currently ends in WINDOW.
+ WINDOW defaults to the selected window.
  This is updated by redisplay, when it runs to completion.
  Simply changing the buffer text or setting `window-start'
  does not update this value.
@@@ -1304,7 -1309,8 +1311,8 @@@ non-nil means yes. */
  
  DEFUN ("window-display-table", Fwindow_display_table, Swindow_display_table,
         0, 1, 0,
-        doc: /* Return the display-table that WINDOW is using.  */)
+        doc: /* Return the display-table that WINDOW is using.
+ WINDOW defaults to the selected window.  */)
       (window)
       Lisp_Object window;
  {
@@@ -5898,6 -5904,7 +5906,7 @@@ and redisplay normally--don't erase an
  DEFUN ("window-text-height", Fwindow_text_height, Swindow_text_height,
         0, 1, 0,
         doc: /* Return the height in lines of the text display area of WINDOW.
+ WINDOW defaults to the selected window.
  This doesn't include the mode-line (or header-line if any) or any
  partial-height lines in the text display area.  */)
       (window)
@@@ -7237,7 -7244,7 +7246,7 @@@ and scrolling positions.  */
  void
  init_window_once ()
  {
 -  struct frame *f = make_terminal_frame ();
 +  struct frame *f = make_initial_frame ();
    XSETFRAME (selected_frame, f);
    Vterminal_frame = selected_frame;
    minibuf_window = f->minibuffer_window;
diff --combined src/xfaces.c
index 52252001137b24a12097181a92e74f157a24e07b,b98d10764ce461fbc4cedb26098cccc2820a13c9..ca55b82a9b2099e09987b047129e712838be2a75
@@@ -195,13 -195,11 +195,13 @@@ Boston, MA 02110-1301, USA.  *
  #include <stdio.h>
  #include <sys/types.h>
  #include <sys/stat.h>
 +#include <stdio.h>              /* This needs to be before termchar.h */
  
  #include "lisp.h"
  #include "charset.h"
  #include "keyboard.h"
  #include "frame.h"
 +#include "termhooks.h"
  
  #ifdef HAVE_WINDOW_SYSTEM
  #include "fontset.h"
  #include "blockinput.h"
  #include "window.h"
  #include "intervals.h"
 +#include "termchar.h"
  
  #ifdef HAVE_X_WINDOWS
  
@@@ -3224,20 -3221,6 +3224,20 @@@ push_named_merge_point (struct named_me
  
  \f
  
 +static Lisp_Object
 +internal_resolve_face_name (nargs, args)
 +     int nargs;
 +     Lisp_Object *args;
 +{
 +  Fget (args[0], args[1]);
 +}
 +
 +static Lisp_Object
 +resolve_face_name_error (ignore)
 +     Lisp_Object ignore;
 +{
 +  return Qnil;
 +}
  
  /* Resolve face name FACE_NAME.  If FACE_NAME is a string, intern it
     to make it a symbol.  If FACE_NAME is an alias for another face,
@@@ -5365,13 -5348,11 +5365,11 @@@ If FRAME is unspecified or nil, the cur
    CHECK_LIVE_FRAME (frame);
    f = XFRAME (frame);
  
-   if ((CONSP (color1) && !parse_rgb_list (color1, &cdef1))
-       || !STRINGP (color1)
-       || !defined_color (f, SDATA (color1), &cdef1, 0))
+   if (!(CONSP (color1) && parse_rgb_list (color1, &cdef1))
+       && !(STRINGP (color1) && defined_color (f, SDATA (color1), &cdef1, 0)))
      signal_error ("Invalid color", color1);
-   if ((CONSP (color2) && !parse_rgb_list (color2, &cdef2))
-       || !STRINGP (color2)
-       || !defined_color (f, SDATA (color2), &cdef2, 0))
+   if (!(CONSP (color2) && parse_rgb_list (color2, &cdef2))
+       && !(STRINGP (color2) && defined_color (f, SDATA (color2), &cdef2, 0)))
      signal_error ("Invalid color", color2);
  
    return make_number (color_distance (&cdef1, &cdef2));
@@@ -6164,7 -6145,7 +6162,7 @@@ tty_supports_face_attributes_p (f, attr
    /* See if the capabilities we selected above are supported, with the
       given colors.  */
    if (test_caps != 0 &&
 -      ! tty_capable_p (f, test_caps, fg_tty_color.pixel, bg_tty_color.pixel))
 +      ! tty_capable_p (FRAME_TTY (f), test_caps, fg_tty_color.pixel, bg_tty_color.pixel))
      return 0;
  
  
@@@ -6968,8 -6949,7 +6966,8 @@@ realize_basic_faces (f
        {
          FRAME_FACE_CACHE (f)->menu_face_changed_p = 0;
  #ifdef USE_X_TOOLKIT
 -        x_update_menu_appearance (f);
 +          if (FRAME_WINDOW_P (f))
 +            x_update_menu_appearance (f);
  #endif
        }
  
@@@ -7056,7 -7036,7 +7054,7 @@@ realize_default_face (f
        LFACE_FOREGROUND (lface) = XCDR (color);
        else if (FRAME_WINDOW_P (f))
        return 0;
 -      else if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
 +      else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
        LFACE_FOREGROUND (lface) = build_string (unspecified_fg);
        else
        abort ();
        LFACE_BACKGROUND (lface) = XCDR (color);
        else if (FRAME_WINDOW_P (f))
        return 0;
 -      else if (FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
 +      else if (FRAME_INITIAL_P (f) || FRAME_TERMCAP_P (f) || FRAME_MSDOS_P (f))
        LFACE_BACKGROUND (lface) = build_string (unspecified_bg);
        else
        abort ();
  
  #ifdef HAVE_WINDOW_SYSTEM
  #ifdef HAVE_X_WINDOWS
 -  if (face->font != FRAME_FONT (f))
 +  if (FRAME_X_P (f) && face->font != FRAME_FONT (f))
      {
        /* This can happen when making a frame on a display that does
 -       not support the default font.  */
 +       not support the default font.  */
        if (!face->font)
 -      return 0;
 -
 +      return 0;
 + 
        /* Otherwise, the font specified for the frame was not
 -       acceptable as a font for the default face (perhaps because
 -       auto-scaled fonts are rejected), so we must adjust the frame
 -       font.  */
 +       acceptable as a font for the default face (perhaps because
 +       auto-scaled fonts are rejected), so we must adjust the frame
 +       font.  */
        x_set_font (f, build_string (face->font_name), Qnil);
      }
  #endif        /* HAVE_X_WINDOWS */
@@@ -7178,11 -7158,6 +7176,11 @@@ realize_face (cache, attrs, c, base_fac
      face = realize_x_face (cache, attrs, c, base_face);
    else if (FRAME_TERMCAP_P (cache->f) || FRAME_MSDOS_P (cache->f))
      face = realize_tty_face (cache, attrs, c);
 +  else if (FRAME_INITIAL_P (cache->f))
 +    {
 +      /* Create a dummy face. */
 +      face = make_realized_face (attrs);
 +    }
    else
      abort ();
  
diff --combined src/xterm.c
index 5a8d50db07210637ac9121405c1a38f319535fd7,c4763dfb3ec1a8fb3a1c661750cfefd9721e4e54..5810eb14b20b304642f161f736ae03817f52fc40
@@@ -54,6 -54,7 +54,6 @@@ Boston, MA 02110-1301, USA.  *
  #include <sys/ioctl.h>
  #endif /* ! defined (BSD_SYSTEM) */
  
 -#include "systty.h"
  #include "systime.h"
  
  #ifndef INCLUDED_FCNTL
@@@ -321,10 -322,6 +321,10 @@@ static Lisp_Object Qalt, Qhyper, Qmeta
  static Lisp_Object Qvendor_specific_keysyms;
  static Lisp_Object Qlatin_1;
  
 +/* Used in x_flush.  */
 +
 +extern Lisp_Object Vinhibit_redisplay;
 +
  extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
  extern int x_bitmap_mask P_ ((FRAME_PTR, int));
  
@@@ -334,15 -331,13 +334,15 @@@ static const XColor *x_color_cells P_ (
  static void x_update_window_end P_ ((struct window *, int, int));
  
  static int x_io_error_quitter P_ ((Display *));
 +static struct terminal *x_create_terminal P_ ((struct x_display_info *));
 +void x_delete_terminal P_ ((struct terminal *));
  static void x_font_min_bounds P_ ((XFontStruct *, int *, int *));
  static int x_compute_min_glyph_bounds P_ ((struct frame *));
  static void x_update_end P_ ((struct frame *));
  static void XTframe_up_to_date P_ ((struct frame *));
 -static void XTset_terminal_modes P_ ((void));
 -static void XTreset_terminal_modes P_ ((void));
 -static void x_clear_frame P_ ((void));
 +static void XTset_terminal_modes P_ ((struct terminal *));
 +static void XTreset_terminal_modes P_ ((struct terminal *));
 +static void x_clear_frame P_ ((struct frame *));
  static void frame_highlight P_ ((struct frame *));
  static void frame_unhighlight P_ ((struct frame *));
  static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *));
@@@ -380,18 -375,12 +380,18 @@@ static voi
  x_flush (f)
       struct frame *f;
  {
 +  /* Don't call XFlush when it is not safe to redisplay; the X
 +     connection may be broken.  */
 +  if (!NILP (Vinhibit_redisplay))
 +    return;
 +
    BLOCK_INPUT;
    if (f == NULL)
      {
        Lisp_Object rest, frame;
        FOR_EACH_FRAME (rest, frame)
 -      x_flush (XFRAME (frame));
 +        if (FRAME_X_P (XFRAME (frame)))
 +          x_flush (XFRAME (frame));
      }
    else if (FRAME_X_P (f))
      XFlush (FRAME_X_DISPLAY (f));
@@@ -803,7 -792,7 +803,7 @@@ x_draw_fringe_bitmap (w, row, p
     rarely happens).  */
  
  static void
 -XTset_terminal_modes ()
 +XTset_terminal_modes (struct terminal *terminal)
  {
  }
  
     the X-windows go away, and suspending requires no action.  */
  
  static void
 -XTreset_terminal_modes ()
 +XTreset_terminal_modes (struct terminal *terminal)
  {
  }
  
@@@ -1424,8 -1413,7 +1424,8 @@@ x_frame_of_widget (widget
    for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail))
      if (GC_FRAMEP (XCAR (tail))
        && (f = XFRAME (XCAR (tail)),
 -          (f->output_data.nothing != 1
 +          (FRAME_X_P (f)
 +             && f->output_data.nothing != 1
             && FRAME_X_DISPLAY_INFO (f) == dpyinfo))
        && f->output_data.x->widget == widget)
        return f;
@@@ -2802,8 -2790,7 +2802,8 @@@ x_shift_glyphs_for_insert (f, x, y, wid
     for X frames.  */
  
  static void
 -x_delete_glyphs (n)
 +x_delete_glyphs (f, n)
 +     struct frame *f;
       register int n;
  {
    abort ();
@@@ -2826,11 -2813,19 +2826,11 @@@ x_clear_area (dpy, window, x, y, width
  }
  
  
 -/* Clear entire frame.  If updating_frame is non-null, clear that
 -   frame.  Otherwise clear the selected frame.  */
 +/* Clear an entire frame.  */
  
  static void
 -x_clear_frame ()
 +x_clear_frame (struct frame *f)
  {
 -  struct frame *f;
 -
 -  if (updating_frame)
 -    f = updating_frame;
 -  else
 -    f = SELECTED_FRAME ();
 -
    /* Clearing the frame will erase any cursor, so mark them all as no
       longer visible.  */
    mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f)));
@@@ -2909,8 -2904,8 +2909,8 @@@ XTflash (f
        XGCValues values;
  
        values.function = GXxor;
 -      values.foreground = (f->output_data.x->foreground_pixel
 -                         ^ f->output_data.x->background_pixel);
 +      values.foreground = (FRAME_FOREGROUND_PIXEL (f)
 +                         ^ FRAME_BACKGROUND_PIXEL (f));
  
        gc = XCreateGC (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
                      GCFunction | GCForeground, &values);
@@@ -3076,8 -3071,7 +3076,8 @@@ XTset_terminal_window (n
     lines or deleting -N lines at vertical position VPOS.  */
  
  static void
 -x_ins_del_lines (vpos, n)
 +x_ins_del_lines (f, vpos, n)
 +     struct frame *f;
       int vpos, n;
  {
    abort ();
@@@ -3714,8 -3708,7 +3714,8 @@@ XTmouse_position (fp, insist, bar_windo
  
        /* Clear the mouse-moved flag for every frame on this display.  */
        FOR_EACH_FRAME (tail, frame)
 -      if (FRAME_X_DISPLAY (XFRAME (frame)) == FRAME_X_DISPLAY (*fp))
 +      if (FRAME_X_P (XFRAME (frame))
 +            && FRAME_X_DISPLAY (XFRAME (frame)) == FRAME_X_DISPLAY (*fp))
          XFRAME (frame)->mouse_moved = 0;
  
        last_mouse_scroll_bar = Qnil;
@@@ -3904,9 -3897,6 +3904,9 @@@ x_window_to_scroll_bar (display, window
        if (! GC_FRAMEP (frame))
        abort ();
  
 +      if (! FRAME_X_P (XFRAME (frame)))
 +        continue;
 +      
        /* Scan this frame's scroll bar list for a scroll bar with the
           right window ID.  */
        condemned = FRAME_CONDEMNED_SCROLL_BARS (XFRAME (frame));
@@@ -3941,14 -3931,11 +3941,14 @@@ x_window_to_menu_bar (window
         XGCTYPE (tail) == Lisp_Cons;
         tail = XCDR (tail))
      {
 -      Lisp_Object frame = XCAR (tail);
 -      Widget menu_bar = XFRAME (frame)->output_data.x->menubar_widget;
 +      if (FRAME_X_P (XFRAME (XCAR (tail))))
 +        {
 +          Lisp_Object frame = XCAR (tail);
 +          Widget menu_bar = XFRAME (frame)->output_data.x->menubar_widget;
  
 -      if (menu_bar && xlwmenu_window_p (menu_bar, window))
 -      return menu_bar;
 +          if (menu_bar && xlwmenu_window_p (menu_bar, window))
 +            return menu_bar;
 +        }
      }
  
    return NULL;
@@@ -4756,7 -4743,7 +4756,7 @@@ x_scroll_bar_create (w, top, left, widt
  
      a.background_pixel = f->output_data.x->scroll_bar_background_pixel;
      if (a.background_pixel == -1)
 -      a.background_pixel = f->output_data.x->background_pixel;
 +      a.background_pixel = FRAME_BACKGROUND_PIXEL (f);
  
      a.event_mask = (ButtonPressMask | ButtonReleaseMask
                    | ButtonMotionMask | PointerMotionHintMask
@@@ -4930,7 -4917,7 +4930,7 @@@ x_scroll_bar_set_handle (bar, start, en
      /* Restore the foreground color of the GC if we changed it above.  */
      if (f->output_data.x->scroll_bar_foreground_pixel != -1)
        XSetForeground (FRAME_X_DISPLAY (f), gc,
 -                    f->output_data.x->foreground_pixel);
 +                    FRAME_FOREGROUND_PIXEL (f));
  
      /* Draw the empty space below the handle.  Note that we can't
         clear zero-height areas; that means "clear to end of window." */
@@@ -5292,6 -5279,11 +5292,11 @@@ x_scroll_bar_expose (bar, event
  
    x_scroll_bar_set_handle (bar, XINT (bar->start), XINT (bar->end), 1);
  
+    /* Switch to scroll bar foreground color. */
+   if (f->output_data.x->scroll_bar_foreground_pixel != -1)
+     XSetForeground (FRAME_X_DISPLAY (f), gc,
+                   f->output_data.x->scroll_bar_foreground_pixel);
    /* Draw a one-pixel border just inside the edges of the scroll bar.  */
    XDrawRectangle (FRAME_X_DISPLAY (f), w, gc,
  
                  XINT (bar->width) - 1 - width_trim - width_trim,
                  XINT (bar->height) - 1);
  
-   UNBLOCK_INPUT;
+    /* Restore the foreground color of the GC if we changed it above.  */
+    if (f->output_data.x->scroll_bar_foreground_pixel != -1)
+      XSetForeground (FRAME_X_DISPLAY (f), gc,
+                   f->output_data.x->foreground_pixel);
+    UNBLOCK_INPUT;
  
  }
  #endif /* not USE_TOOLKIT_SCROLL_BARS */
@@@ -5698,7 -5695,7 +5708,7 @@@ handle_one_xevent (dpyinfo, eventp, fin
    int count = 0;
    int do_help = 0;
    int nbytes = 0;
 -  struct frame *f;
 +  struct frame *f = NULL;
    struct coding_system coding;
    XEvent event = *eventp;
  
            bzero (&compose_status, sizeof (compose_status));
            orig_keysym = keysym;
  
 -        /* Common for all keysym input events.  */
 -        XSETFRAME (inev.ie.frame_or_window, f);
 -        inev.ie.modifiers
 -          = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), modifiers);
 -        inev.ie.timestamp = event.xkey.time;
 -
 -        /* First deal with keysyms which have defined
 -           translations to characters.  */
 -        if (keysym >= 32 && keysym < 128)
 -          /* Avoid explicitly decoding each ASCII character.  */
 -          {
 -            inev.ie.kind = ASCII_KEYSTROKE_EVENT;
 -            inev.ie.code = keysym;
 +        /* Common for all keysym input events.  */
 +        XSETFRAME (inev.ie.frame_or_window, f);
 +        inev.ie.modifiers
 +          = x_x_to_emacs_modifiers (FRAME_X_DISPLAY_INFO (f), modifiers);
 +        inev.ie.timestamp = event.xkey.time;
 +
 +        /* First deal with keysyms which have defined
 +           translations to characters.  */
 +        if (keysym >= 32 && keysym < 128)
 +          /* Avoid explicitly decoding each ASCII character.  */
 +          {
 +            inev.ie.kind = ASCII_KEYSTROKE_EVENT;
 +            inev.ie.code = keysym;
              goto done_keysym;
            }
  
          /* Now non-ASCII.  */
          if (HASH_TABLE_P (Vx_keysym_table)
              && (NATNUMP (c = Fgethash (make_number (keysym),
 -                                       Vx_keysym_table,
 -                                       Qnil))))
 -          {
 -            inev.ie.kind = (SINGLE_BYTE_CHAR_P (XFASTINT (c))
 -                            ? ASCII_KEYSTROKE_EVENT
 -                            : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
 -            inev.ie.code = XFASTINT (c);
 -            goto done_keysym;
 -          }
 -
 -        /* Random non-modifier sorts of keysyms.  */
 -        if (((keysym >= XK_BackSpace && keysym <= XK_Escape)
 +                                       Vx_keysym_table,
 +                                       Qnil))))
 +          {
 +            inev.ie.kind = (SINGLE_BYTE_CHAR_P (XFASTINT (c))
 +                              ? ASCII_KEYSTROKE_EVENT
 +                              : MULTIBYTE_CHAR_KEYSTROKE_EVENT);
 +            inev.ie.code = XFASTINT (c);
 +            goto done_keysym;
 +          }
 + 
 +        /* Random non-modifier sorts of keysyms.  */
 +        if (((keysym >= XK_BackSpace && keysym <= XK_Escape)
                          || keysym == XK_Delete
  #ifdef XK_ISO_Left_Tab
                          || (keysym >= XK_ISO_Left_Tab
@@@ -6989,8 -6986,8 +6999,8 @@@ x_dispatch_event (event, display
     EXPECTED is nonzero if the caller knows input is available.  */
  
  static int
 -XTread_socket (sd, expected, hold_quit)
 -     register int sd;
 +XTread_socket (terminal, expected, hold_quit)
 +     struct terminal *terminal;
       int expected;
       struct input_event *hold_quit;
  {
  
    ++handling_signal;
  
 +#ifdef HAVE_X_SM
 +  /* Only check session manager input for the primary display. */
 +  if (terminal->id == 1 && x_session_have_connection ())
 +    {
 +      struct input_event inev;
 +      BLOCK_INPUT;
 +      /* We don't need to EVENT_INIT (inev) here, as
 +         x_session_check_input copies an entire input_event.  */
 +      if (x_session_check_input (&inev))
 +        {
 +          kbd_buffer_store_event_hold (&inev, hold_quit);
 +          count++;
 +        }
 +      UNBLOCK_INPUT;
 +    }
 +#endif
 +
 +  /* For debugging, this gives a way to fake an I/O error.  */
 +  if (terminal->display_info.x == XTread_socket_fake_io_error)
 +    {
 +      XTread_socket_fake_io_error = 0;
 +      x_io_error_quitter (dpyinfo->display);
 +    }
 +  
 +#if 0 /* This loop is a noop now.  */
    /* Find the display we are supposed to read input for.
       It's the one communicating on descriptor SD.  */
    for (dpyinfo = x_display_list; dpyinfo; dpyinfo = dpyinfo->next)
  #endif /* HAVE_SELECT */
  #endif /* SIGIO */
  #endif
 -
 -      /* For debugging, this gives a way to fake an I/O error.  */
 -      if (dpyinfo == XTread_socket_fake_io_error)
 -      {
 -        XTread_socket_fake_io_error = 0;
 -        x_io_error_quitter (dpyinfo->display);
 -      }
 -
 -#ifdef HAVE_X_SM
 -      {
 -      struct input_event inev;
 -      BLOCK_INPUT;
 -      /* We don't need to EVENT_INIT (inev) here, as
 -         x_session_check_input copies an entire input_event.  */
 -      if (x_session_check_input (&inev))
 -        {
 -          kbd_buffer_store_event_hold (&inev, hold_quit);
 -          count++;
 -        }
 -      UNBLOCK_INPUT;
 -      }
 +    }
  #endif
  
  #ifndef USE_GTK
 -      while (XPending (dpyinfo->display))
 -      {
 -          int finish;
 +  while (XPending (terminal->display_info.x->display))
 +    {
 +      int finish;
  
 -        XNextEvent (dpyinfo->display, &event);
 +      XNextEvent (terminal->display_info.x->display, &event);
  
  #ifdef HAVE_X_I18N
 -          /* Filter events for the current X input method.  */
 -          if (x_filter_event (dpyinfo, &event))
 -            break;
 +      /* Filter events for the current X input method.  */
 +      if (x_filter_event (terminal->display_info.x, &event))
 +        break;
  #endif
 -        event_found = 1;
 +      event_found = 1;
  
 -          count += handle_one_xevent (dpyinfo, &event, &finish, hold_quit);
 +      count += handle_one_xevent (terminal->display_info.x,
 +                                  &event, &finish, hold_quit);
  
 -          if (finish == X_EVENT_GOTO_OUT)
 -            goto out;
 -        }
 -#endif /* not USE_GTK */
 +      if (finish == X_EVENT_GOTO_OUT)
 +        goto out;
      }
  
 -#ifdef USE_GTK
 +#else /* USE_GTK */
  
    /* For GTK we must use the GTK event loop.  But XEvents gets passed
       to our filter function above, and then to the big event switch.
@@@ -7403,7 -7396,8 +7413,7 @@@ x_draw_window_cursor (w, glyph_row, x, 
      }
  
  #ifndef XFlush
 -  if (updating_frame != f)
 -    XFlush (FRAME_X_DISPLAY (f));
 +  XFlush (FRAME_X_DISPLAY (f));
  #endif
  }
  
@@@ -7641,8 -7635,6 +7651,8 @@@ x_clear_errors (dpy
    x_error_message->string[0] = 0;
  }
  
 +#if 0 /* See comment in unwind_to_catch why calling this is a bad
 +       * idea.  --lorentey   */
  /* Close off all unclosed x_catch_errors calls.  */
  
  void
@@@ -7651,7 -7643,6 +7661,7 @@@ x_fully_uncatch_errors (
    while (x_error_message)
      x_uncatch_errors ();
  }
 +#endif
  
  /* Nonzero if x_catch_errors has been done and not yet canceled.  */
  
@@@ -7717,7 -7708,6 +7727,7 @@@ x_connection_closed (dpy, error_message
  {
    struct x_display_info *dpyinfo = x_display_info_for_display (dpy);
    Lisp_Object frame, tail;
 +  int index = SPECPDL_INDEX ();
  
    error_msg = (char *) alloca (strlen (error_message) + 1);
    strcpy (error_msg, error_message);
       the original message here.  */
    x_catch_errors (dpy);
  
 +  /* Inhibit redisplay while frames are being deleted. */
 +  specbind (Qinhibit_redisplay, Qt);
 +
 +  if (dpyinfo)
 +    {
 +      /* Protect display from being closed when we delete the last
 +         frame on it. */
 +      dpyinfo->reference_count++;
 +      dpyinfo->terminal->reference_count++;
 +    }
 +  
 +  /* First delete frames whose mini-buffers are on frames
 +     that are on the dead display.  */
 +  FOR_EACH_FRAME (tail, frame)
 +    {
 +      Lisp_Object minibuf_frame;
 +      minibuf_frame
 +      = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
 +      if (FRAME_X_P (XFRAME (frame))
 +        && FRAME_X_P (XFRAME (minibuf_frame))
 +        && ! EQ (frame, minibuf_frame)
 +        && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
 +      Fdelete_frame (frame, Qt);
 +    }
 +
 +  /* Now delete all remaining frames on the dead display.
 +     We are now sure none of these is used as the mini-buffer
 +     for another frame that we need to delete.  */
 +  FOR_EACH_FRAME (tail, frame)
 +    if (FRAME_X_P (XFRAME (frame))
 +      && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
 +      {
 +      /* Set this to t so that Fdelete_frame won't get confused
 +         trying to find a replacement.  */
 +      FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
 +      Fdelete_frame (frame, Qt);
 +      }
 +
    /* We have to close the display to inform Xt that it doesn't
       exist anymore.  If we don't, Xt will continue to wait for
       events from the display.  As a consequence, a sequence of
      xg_display_close (dpyinfo->display);
  #endif
  
 -  /* Indicate that this display is dead.  */
    if (dpyinfo)
 -    dpyinfo->display = 0;
 -
 -  /* First delete frames whose mini-buffers are on frames
 -     that are on the dead display.  */
 -  FOR_EACH_FRAME (tail, frame)
      {
 -      Lisp_Object minibuf_frame;
 -      minibuf_frame
 -      = WINDOW_FRAME (XWINDOW (FRAME_MINIBUF_WINDOW (XFRAME (frame))));
 -      if (FRAME_X_P (XFRAME (frame))
 -        && FRAME_X_P (XFRAME (minibuf_frame))
 -        && ! EQ (frame, minibuf_frame)
 -        && FRAME_X_DISPLAY_INFO (XFRAME (minibuf_frame)) == dpyinfo)
 -      Fdelete_frame (frame, Qt);
 -    }
 +      /* Indicate that this display is dead.  */
 +      dpyinfo->display = 0;
  
 -  /* Now delete all remaining frames on the dead display.
 -     We are now sure none of these is used as the mini-buffer
 -     for another frame that we need to delete.  */
 -  FOR_EACH_FRAME (tail, frame)
 -    if (FRAME_X_P (XFRAME (frame))
 -      && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
 -      {
 -      /* Set this to t so that Fdelete_frame won't get confused
 -         trying to find a replacement.  */
 -      FRAME_KBOARD (XFRAME (frame))->Vdefault_minibuffer_frame = Qt;
 -      Fdelete_frame (frame, Qt);
 -      }
 +      dpyinfo->reference_count--;
 +      dpyinfo->terminal->reference_count--;
 +      if (dpyinfo->reference_count != 0)
 +        /* We have just closed all frames on this display. */
 +        abort ();
  
 -  if (dpyinfo)
 -    x_delete_display (dpyinfo);
 +      x_delete_display (dpyinfo);
 +    }
  
    x_uncatch_errors ();
  
 -  if (x_display_list == 0)
 +  if (terminal_list == 0)
      {
        fprintf (stderr, "%s\n", error_msg);
        shut_down_emacs (0, 0, Qnil);
    sigunblock (sigmask (SIGALRM));
    TOTALLY_UNBLOCK_INPUT;
  
 +  unbind_to (index, Qnil);
    clear_waiting_for_input ();
    error ("%s", error_msg);
  }
@@@ -8040,7 -8011,7 +8050,7 @@@ xim_destroy_callback (xim, client_data
    FOR_EACH_FRAME (tail, frame)
      {
        struct frame *f = XFRAME (frame);
 -      if (FRAME_X_DISPLAY_INFO (f) == dpyinfo)
 +      if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo)
        {
          FRAME_XIC (f) = NULL;
            xic_free_xfontset (f);
@@@ -8139,8 -8110,7 +8149,8 @@@ xim_instantiate_callback (display, clie
        {
          struct frame *f = XFRAME (frame);
  
 -        if (FRAME_X_DISPLAY_INFO (f) == xim_inst->dpyinfo)
 +        if (FRAME_X_P (f)
 +              && FRAME_X_DISPLAY_INFO (f) == xim_inst->dpyinfo)
            if (FRAME_XIC (f) == NULL)
              {
                create_frame_xic (f);
@@@ -8456,6 -8426,11 +8466,11 @@@ do_ewmh_fullscreen (f
  {
    int have_net_atom = wm_supports (f, "_NET_WM_STATE");
  
+   /* Some window managers don't say they support _NET_WM_STATE, but they do say
+      they support _NET_WM_STATE_FULLSCREEN.  Try that also.  */
+   if (!have_net_atom)
+       have_net_atom = wm_supports (f, "_NET_WM_STATE_FULLSCREEN");
    if (have_net_atom)
      {
        Lisp_Object frame;
            break;
          }
  
-       if (!wm_supports (f, what)) return 0;
+       if (what != NULL && !wm_supports (f, what)) return 0;
  
  
        Fx_send_client_event (frame, make_number (0), frame,
@@@ -9352,8 -9327,8 +9367,8 @@@ x_free_frame_resources (f
        XDestroyWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f));
  #endif /* !USE_X_TOOLKIT */
  
 -      unload_color (f, f->output_data.x->foreground_pixel);
 -      unload_color (f, f->output_data.x->background_pixel);
 +      unload_color (f, FRAME_FOREGROUND_PIXEL (f));
 +      unload_color (f, FRAME_BACKGROUND_PIXEL (f));
        unload_color (f, f->output_data.x->cursor_pixel);
        unload_color (f, f->output_data.x->cursor_foreground_pixel);
        unload_color (f, f->output_data.x->border_pixel);
@@@ -10519,7 -10494,6 +10534,7 @@@ x_term_init (display_name, xrm_option, 
  {
    int connection;
    Display *dpy;
 +  struct terminal *terminal;
    struct x_display_info *dpyinfo;
    XrmDatabase xrdb;
  
      char **argv2 = argv;
      GdkAtom atom;
  
 +#ifndef HAVE_GTK_MULTIDISPLAY
 +    if (!EQ (Vinitial_window_system, intern ("x")))
 +      error ("Sorry, you cannot connect to X servers with the GTK toolkit");
 +#endif
 +
      if (x_initialized++ > 1)
        {
 +#ifdef HAVE_GTK_MULTIDISPLAY
          /* Opening another display.  If xg_display_open returns less
             than zero, we are probably on GTK 2.0, which can only handle
             one display.  GTK 2.2 or later can handle more than one.  */
          if (xg_display_open (SDATA (display_name), &dpy) < 0)
            error ("Sorry, this version of GTK can only handle one display");
 -     }
 +#else
 +        /* XXX Unfortunately, multiple display support is severely broken
 +           in recent GTK versions, so HAVE_GTK_MULTIDISPLAY is
 +           unconditionally disabled in configure.in.  */
 +        error ("Sorry, multiple display support is broken in current GTK versions");
 +#endif
 +      }
      else
        {
          for (argc = 0; argc < NUM_ARGV; ++argc)
    dpyinfo = (struct x_display_info *) xmalloc (sizeof (struct x_display_info));
    bzero (dpyinfo, sizeof *dpyinfo);
  
 +  terminal = x_create_terminal (dpyinfo);
 +
  #ifdef MULTI_KBOARD
    {
      struct x_display_info *share;
                         SDATA (display_name)))
        break;
      if (share)
 -      dpyinfo->kboard = share->kboard;
 +      terminal->kboard = share->terminal->kboard;
      else
        {
 -      dpyinfo->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
 -      init_kboard (dpyinfo->kboard);
 +      terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
 +      init_kboard (terminal->kboard);
        if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound))
          {
            char *vendor = ServerVendor (dpy);
            UNBLOCK_INPUT;
 -          dpyinfo->kboard->Vsystem_key_alist
 +          terminal->kboard->Vsystem_key_alist
              = call1 (Qvendor_specific_keysyms,
                       build_string (vendor ? vendor : ""));
            BLOCK_INPUT;
          }
  
 -      dpyinfo->kboard->next_kboard = all_kboards;
 -      all_kboards = dpyinfo->kboard;
 +      terminal->kboard->next_kboard = all_kboards;
 +      all_kboards = terminal->kboard;
        /* Don't let the initial kboard remain current longer than necessary.
           That would cause problems if a file loaded on startup tries to
           prompt in the mini-buffer.  */
        if (current_kboard == initial_kboard)
 -        current_kboard = dpyinfo->kboard;
 +        current_kboard = terminal->kboard;
        }
 -    dpyinfo->kboard->reference_count++;
 +    terminal->kboard->reference_count++;
    }
  #endif
  
  
    dpyinfo->display = dpy;
  
 +  /* Set the name of the terminal. */
 +  terminal->name = (char *) xmalloc (SBYTES (display_name) + 1);
 +  strncpy (terminal->name, SDATA (display_name), SBYTES (display_name));
 +  terminal->name[SBYTES (display_name)] = 0;
 +  
  #if 0
    XSetAfterFunction (x_current_display, x_trace_wire);
  #endif /* ! 0 */
    }
  
  #ifdef HAVE_X_SM
 -  /* Only do this for the first display.  */
 -  if (!x_session_initialized++)
 +  /* Only do this for the very first display in the Emacs session.
 +     Ignore X session management when Emacs was first started on a
 +     tty.  */
 +  if (terminal->id == 1)
      x_session_initialize (dpyinfo);
  #endif
  
    return dpyinfo;
  }
  \f
 -/* Get rid of display DPYINFO, assuming all frames are already gone,
 +/* Get rid of display DPYINFO, deleting all frames on it,
     and without sending any more commands to the X server.  */
  
  void
@@@ -11033,20 -10986,6 +11048,20 @@@ x_delete_display (dpyinfo
       struct x_display_info *dpyinfo;
  {
    int i;
 +  struct terminal *t;
 +
 +  /* Close all frames and delete the generic struct terminal for this
 +     X display.  */
 +  for (t = terminal_list; t; t = t->next_terminal)
 +    if (t->type == output_x_window && t->display_info.x == dpyinfo)
 +      {
 +        /* Close X session management when we close its display.  */
 +        if (t->id == 1 && x_session_have_connection ())
 +          x_session_close();
 +
 +        delete_terminal (t);
 +        break;
 +      }
  
    delete_keyboard_wait_descriptor (dpyinfo->connection);
  
    XrmDestroyDatabase (dpyinfo->xrdb);
  #endif
  #endif
 -#ifdef MULTI_KBOARD
 -  if (--dpyinfo->kboard->reference_count == 0)
 -    delete_kboard (dpyinfo->kboard);
 -#endif
  #ifdef HAVE_X_I18N
    if (dpyinfo->xim)
      xim_close_dpy (dpyinfo);
@@@ -11171,129 -11114,71 +11186,129 @@@ x_activate_timeout_atimer (
  extern frame_parm_handler x_frame_parm_handlers[];
  
  static struct redisplay_interface x_redisplay_interface =
 -{
 -  x_frame_parm_handlers,
 -  x_produce_glyphs,
 -  x_write_glyphs,
 -  x_insert_glyphs,
 -  x_clear_end_of_line,
 -  x_scroll_run,
 -  x_after_update_window_line,
 -  x_update_window_begin,
 -  x_update_window_end,
 -  x_cursor_to,
 -  x_flush,
 +  {
 +    x_frame_parm_handlers,
 +    x_produce_glyphs,
 +    x_write_glyphs,
 +    x_insert_glyphs,
 +    x_clear_end_of_line,
 +    x_scroll_run,
 +    x_after_update_window_line,
 +    x_update_window_begin,
 +    x_update_window_end,
 +    x_cursor_to,
 +    x_flush,
  #ifdef XFlush
 -  x_flush,
 +    x_flush,
  #else
 -  0,  /* flush_display_optional */
 -#endif
 -  x_clear_window_mouse_face,
 -  x_get_glyph_overhangs,
 -  x_fix_overlapping_area,
 -  x_draw_fringe_bitmap,
 -  0, /* define_fringe_bitmap */
 -  0, /* destroy_fringe_bitmap */
 -  x_per_char_metric,
 -  x_encode_char,
 -  x_compute_glyph_string_overhangs,
 -  x_draw_glyph_string,
 -  x_define_frame_cursor,
 -  x_clear_frame_area,
 -  x_draw_window_cursor,
 -  x_draw_vertical_window_border,
 -  x_shift_glyphs_for_insert
 -};
 +    0,  /* flush_display_optional */
 +#endif
 +    x_clear_window_mouse_face,
 +    x_get_glyph_overhangs,
 +    x_fix_overlapping_area,
 +    x_draw_fringe_bitmap,
 +    0, /* define_fringe_bitmap */
 +    0, /* destroy_fringe_bitmap */
 +    x_per_char_metric,
 +    x_encode_char,
 +    x_compute_glyph_string_overhangs,
 +    x_draw_glyph_string,
 +    x_define_frame_cursor,
 +    x_clear_frame_area,
 +    x_draw_window_cursor,
 +    x_draw_vertical_window_border,
 +    x_shift_glyphs_for_insert
 +  };
 +
 +
 +/* This function is called when the last frame on a display is deleted. */
 +void
 +x_delete_terminal (struct terminal *terminal)
 +{
 +  struct x_display_info *dpyinfo = terminal->display_info.x;
 +  int i;
 +
 +  /* Protect against recursive calls.  Fdelete_frame in
 +     delete_terminal calls us back when it deletes our last frame.  */
 +  if (terminal->deleted)
 +    return;
 +
 +  BLOCK_INPUT;
 +  /* Free the fonts in the font table.  */
 +  for (i = 0; i < dpyinfo->n_fonts; i++)
 +    if (dpyinfo->font_table[i].name)
 +      {
 +      XFreeFont (dpyinfo->display, dpyinfo->font_table[i].font);
 +      }
 +
 +  x_destroy_all_bitmaps (dpyinfo);
 +  XSetCloseDownMode (dpyinfo->display, DestroyAll);
 +
 +#ifdef USE_GTK
 +  xg_display_close (dpyinfo->display);
 +#else
 +#ifdef USE_X_TOOLKIT
 +  XtCloseDisplay (dpyinfo->display);
 +#else
 +  XCloseDisplay (dpyinfo->display);
 +#endif
 +#endif /* ! USE_GTK */
 +
 +  x_delete_display (dpyinfo);
 +  UNBLOCK_INPUT;
 +}
 +
 +
 +static struct terminal *
 +x_create_terminal (struct x_display_info *dpyinfo)
 +{
 +  struct terminal *terminal;
 +  
 +  terminal = create_terminal ();
 +
 +  terminal->type = output_x_window;
 +  terminal->display_info.x = dpyinfo;
 +  dpyinfo->terminal = terminal;
 +
 +  /* kboard is initialized in x_term_init. */
 +  
 +  terminal->clear_frame_hook = x_clear_frame;
 +  terminal->ins_del_lines_hook = x_ins_del_lines;
 +  terminal->delete_glyphs_hook = x_delete_glyphs;
 +  terminal->ring_bell_hook = XTring_bell;
 +  terminal->reset_terminal_modes_hook = XTreset_terminal_modes;
 +  terminal->set_terminal_modes_hook = XTset_terminal_modes;
 +  terminal->update_begin_hook = x_update_begin;
 +  terminal->update_end_hook = x_update_end;
 +  terminal->set_terminal_window_hook = XTset_terminal_window;
 +  terminal->read_socket_hook = XTread_socket;
 +  terminal->frame_up_to_date_hook = XTframe_up_to_date;
 +  terminal->mouse_position_hook = XTmouse_position;
 +  terminal->frame_rehighlight_hook = XTframe_rehighlight;
 +  terminal->frame_raise_lower_hook = XTframe_raise_lower;
 +  terminal->fullscreen_hook = XTfullscreen_hook;
 +  terminal->set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
 +  terminal->condemn_scroll_bars_hook = XTcondemn_scroll_bars;
 +  terminal->redeem_scroll_bar_hook = XTredeem_scroll_bar;
 +  terminal->judge_scroll_bars_hook = XTjudge_scroll_bars;
 +
 +  terminal->delete_frame_hook = x_destroy_window;
 +  terminal->delete_terminal_hook = x_delete_terminal;
 +  
 +  terminal->rif = &x_redisplay_interface;
 +  terminal->scroll_region_ok = 1;    /* We'll scroll partial frames. */
 +  terminal->char_ins_del_ok = 1;
 +  terminal->line_ins_del_ok = 1;         /* We'll just blt 'em. */
 +  terminal->fast_clear_end_of_line = 1;  /* X does this well. */
 +  terminal->memory_below_frame = 0;   /* We don't remember what scrolls
 +                                        off the bottom. */
 +
 +  return terminal;
 +}
  
  void
  x_initialize ()
  {
 -  rif = &x_redisplay_interface;
 -
 -  clear_frame_hook = x_clear_frame;
 -  ins_del_lines_hook = x_ins_del_lines;
 -  delete_glyphs_hook = x_delete_glyphs;
 -  ring_bell_hook = XTring_bell;
 -  reset_terminal_modes_hook = XTreset_terminal_modes;
 -  set_terminal_modes_hook = XTset_terminal_modes;
 -  update_begin_hook = x_update_begin;
 -  update_end_hook = x_update_end;
 -  set_terminal_window_hook = XTset_terminal_window;
 -  read_socket_hook = XTread_socket;
 -  frame_up_to_date_hook = XTframe_up_to_date;
 -  mouse_position_hook = XTmouse_position;
 -  frame_rehighlight_hook = XTframe_rehighlight;
 -  frame_raise_lower_hook = XTframe_raise_lower;
 -  set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar;
 -  condemn_scroll_bars_hook = XTcondemn_scroll_bars;
 -  redeem_scroll_bar_hook = XTredeem_scroll_bar;
 -  judge_scroll_bars_hook = XTjudge_scroll_bars;
 -  fullscreen_hook = XTfullscreen_hook;
 -
 -  scroll_region_ok = 1;               /* we'll scroll partial frames */
 -  char_ins_del_ok = 1;
 -  line_ins_del_ok = 1;                /* we'll just blt 'em */
 -  fast_clear_end_of_line = 1; /* X does this well */
 -  memory_below_frame = 0;     /* we don't remember what scrolls
 -                                 off the bottom */
    baud_rate = 19200;
  
    x_noop_count = 0;
  #endif
  
    /* Try to use interrupt input; if we can't, then start polling.  */
 -  Fset_input_mode (Qt, Qnil, Qt, Qnil);
 +  Fset_input_interrupt_mode (Qt);
  
  #ifdef USE_X_TOOLKIT
    XtToolkitInitialize ();
    XSetIOErrorHandler (x_io_error_quitter);
  
    /* Disable Window Change signals;  they are handled by X events.  */
 +#if 0              /* Don't.  We may want to open tty frames later. */
  #ifdef SIGWINCH
    signal (SIGWINCH, SIG_DFL);
  #endif /* SIGWINCH */
 +#endif
  
    signal (SIGPIPE, x_connection_signal);
  }