Merge from emacs-24; up to 2012-12-05T00:13:56Z!yamaoka@jpl.org
authorGlenn Morris <rgm@gnu.org>
Sun, 30 Dec 2012 18:09:01 +0000 (10:09 -0800)
committerGlenn Morris <rgm@gnu.org>
Sun, 30 Dec 2012 18:09:01 +0000 (10:09 -0800)
12 files changed:
1  2 
ChangeLog
configure.ac
doc/lispref/ChangeLog
etc/NEWS
lisp/ChangeLog
lisp/net/tramp-sh.el
lisp/org/ChangeLog
msdos/ChangeLog
src/ChangeLog
src/Makefile.in
src/dispextern.h
src/xdisp.c

diff --combined ChangeLog
+++ b/ChangeLog
 -2012-12-29  Andreas Schwab  <schwab@linux-m68k.org>
++2012-12-30  Andreas Schwab  <schwab@linux-m68k.org>
+       * configure.ac (TEMACS_LDFLAGS2): Don't define.
+       (LIBS_GNUSTEP): Set for GNUstep and substitute.
+       (LD_SWITCH_SYSTEM_TEMACS): Don't set for GNUstep.
 -2012-12-24  Andreas Schwab  <schwab@linux-m68k.org>
 +2012-12-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.ac (emacs_config_options): New.
 +      Use $@ rather than undocumented $ac_configure_args.
 +      Replace any embedded double quotes.  (Bug#13274)
 +
 +2012-12-27  Andreas Schwab  <schwab@linux-m68k.org>
  
        * configure.ac (SIGNALS_VIA_CHARACTERS): Also define for darwin.
        (Bug#13222)
  
 -2012-12-20  Akinori MUSHA  <knu@iDaemons.org>  (tiny change)
 +2012-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Revert static checking of stack smashing.
 +      * configure.ac (WARN_CFLAGS): Omit -Wstack-protector when
 +      configured with --enable-gcc-warnings.  -Wstack-protector causes
 +      diagnostics to be issued on Ubuntu 12.10 x86-64.
 +
 +2012-12-24  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Merge from gnulib, incorporating:
 +      2012-12-21 AC_PROG_MKDIR_P: port workaround to pre-2.62 Autoconf
 +      2012-12-20 AC_PROG_MKDIR_P: don't workaround if not buggy
 +      2012-12-17 filemode, sys_stat: Handle MPX files a la AIX.
 +
 +2012-12-21  Akinori MUSHA  <knu@iDaemons.org>  (tiny change)
  
        * Makefile.in (install-arch-dep): Ignore chmod errors.  (Bug#13233)
  
 +2012-12-16  Romain Francoise  <romain@orebokech.com>
 +
 +      * configure.ac (acl): New option.
 +      (HAVE_POSIX_ACL): Test for POSIX ACL support.  This is typically
 +      provided by libacl on GNU/Linux.
 +
 +2012-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix permissions bugs with setgid directories etc. (Bug#13125)
 +      * configure.ac (BSD4_2): Remove; no longer needed.
 +
  2012-12-13  Glenn Morris  <rgm@gnu.org>
  
 -      * info/dir: Add bovine, wisent.
 +      * info/dir: Add bovine, srecode, wisent.
  
 -2012-12-12  Andreas Schwab  <schwab@suse.de>
 +2012-12-13  Andreas Schwab  <schwab@suse.de>
  
        * Makefile.in (install-info): Use `${MAKE} -s' for echo-info.
 -      (uninstall): Likewise.
 +      (uninstall): Likewise.  (Bug#13143)
 +
 +2012-12-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Merge from gnulib for 'inline' (Bug#13040), incorporating:
 +      2012-12-11 extern-inline: avoid incompatibility with Darwin Libc
 +      * m4/extern-inline.m4: Update from gnulib.
 +
 +2012-12-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * lib/makefile.w32-in (SIG2STR_H): New macro.
 +      ($(BLD)/sig2str.$(O)): Update dependencies.
 +
 +2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * configure.ac (HAVE_INOTIFY): Speed up configure-time test.
 +      There's no need to test for any of three inotify functions,
 +      since we use all three.  Check for just the first one.
 +
 +2012-12-10  Daniel Colascione  <dancol@dancol.org>
 +
 +      * .bzrignore: add src/emacs.res.
 +
 +      * configure.ac (W32_RES, W32_RES_LINK, WINDRES): Teach the cygw32
 +      build how to compile Windows resource files; use these variables
 +      to tell src/Makefile.in how and whether to compile resources.
 +
 +2012-12-10  RĂ¼diger Sonderfeld  <ruediger@c-plusplus.de>
 +
 +      * configure.ac (inotify): New option.
 +      (HAVE_INOTIFY): Test for inotify.
 +
 +2012-12-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.ac: Fix source command in .gdbinit.
 +      Don't quote $MAKEINFO.
 +
 +2012-12-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Allow spaces in some configuration vars (Bug#13078).
 +      * configure.ac (srcdir): Don't assume $PWD lacks spaces.
 +      (srcdir, MAKEINFO, PKG_CONFIG, PKG_CONFIG_MIN_VERSION):
 +      All uses quoted, to allow spaces in these vars.
 +
 +2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2012-12-12  Glenn Morris  <rgm@gnu.org>
 +      Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
 +      * lib/putenv.c, lib/unsetenv.c, m4/putenv.m4, m4/setenv.m4:
 +      New files, copied automatically from gnulib.
 +      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
  
 -      * info/dir: Add srecode.
 +2012-12-08  Eli Zaretskii  <eliz@gnu.org>
  
 -2012-12-11  Nicolas Richard  <theonewiththeevillook@yahoo.fr>  (tiny change)
 +      * lib/makefile.w32-in ($(BLD)/sig2str.$(O)): New dependency.
 +      Remove a stray character at the beginning of the file.
 +      (Bug#13026)
  
 -      * Makefile.in (install-info, uninstall): Ensure make's messages
 -      about changing directories are in English.  (Bug#13143)
 +2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2012-12-05  Glenn Morris  <rgm@gnu.org>
 +      Simplify get_lim_data.
 +      * configure.ac (ULIMIT_BREAK_VALUE): Remove.
 +
 +      Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
 +      * configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF):
 +      Use SIGCHLD rather than SIGCLD.
 +      * lib/sig2str.c, lib/sig2str.h, m4/sig2str.m4: New files, from gnulib.
 +      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
 +      * lib/makefile.w32-in (GNULIBOBJS): Add $(BUILD)/sig2str.$(O).
 +
 +2012-12-06  Glenn Morris  <rgm@gnu.org>
  
        * configure.ac: Handle info/ files with or without ".info" extension.
  
 -2012-11-24  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Merge from gnulib for 'inline' (Bug#13040), incorporating:
 +      2012-11-29 snippet/warn-on-use: no 'static inline'
 +      2012-11-29 ftruncate, fts, lstat, openat, raise: no 'static inline'
 +      2012-11-29 arctwo, md4, md5, sha1, sha256, sha512: no 'static inline'
 +      2012-11-29 fflush, stat: no 'static inline'
 +      2012-11-29 stdio: better 'inline'
 +      2012-11-29 sys_stat: no 'static inline'
 +      2012-11-29 unistd: better 'inline'
 +      2012-11-29 c-strtod, memcoll, readutmp: no 'static inline'
 +      2012-11-29 extern-inline: no 'static inline'
 +      2012-11-29 sys_socket: better 'inline'
 +      * lib/stdio.c, lib/unistd.c: New files, from gnulib.
 +      * build-aux/snippet/warn-on-use.h, lib/gnulib.mk, lib/lstat.c:
 +      * lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c, lib/stat.c:
 +      * lib/stdio.in.h, lib/sys_stat.in.h, lib/unistd.in.h, m4/c-strtod.m4:
 +      * m4/extern-inline.m4, m4/gnulib-comp.m4, m4/lstat.m4, m4/md5.m4:
 +      * m4/sha1.m4, m4/sha256.m4, m4/sha512.m4, m4/stat.m4, m4/stdio_h.m4:
 +      * m4/sys_socket_h.m4, m4/sys_stat_h.m4, m4/unistd_h.m4:
 +      Update from gnulib.
 +
 +2012-11-27  Eli Zaretskii  <eliz@gnu.org>
  
        * make-dist (nt): Adjust to changes in names of the *.manifest files.
  
 +2012-11-24  Ken Brown  <kbrown@cornell.edu>
 +
 +      * configure.ac (HAVE_MOUSE): Remove.
 +
 +2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
 +      * configure.ac: Do not check for dirent.h or closdir.
 +
 +2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
 +      * configure.ac: Do not check for getcwd or getwd.
 +
  2012-11-21  Glenn Morris  <rgm@gnu.org>
  
        * configure.ac (--enable-profiling): Doc fix.
  
 +2012-11-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve static checking of integer overflow and stack smashing.
 +      * configure.ac (WARN_CFLAGS): Add -Wstack-protector
 +      if using GCC 4.7.2 or later on a platform with
 +      at least 64-bit long int.  This improves static checking on these
 +      platforms, when configured with --enable-gcc-warnings.
 +
 +2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
 +      * configure.ac: Do not check for fcntl.h.
 +      * lib/gnulib.mk: Regenerate.
 +
 +2012-11-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer-used pty_max_bytes variable.
 +      * configure.ac (fpathconf): Remove unnecessary check.
 +
 +2012-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use faccessat, not access, when checking file permissions (Bug#12632).
 +      * .bzrignore: Add lib/fcntl.h.
 +      * configure.ac (euidaccess): Remove check; gnulib does this for us now.
 +      (gl_FCNTL_O_FLAGS): Define a dummy version.
 +      * lib/at-func.c, lib/euidaccess.c, lib/faccessat.c, lib/fcntl.in.h:
 +      * lib/getgroups.c, lib/group-member.c, lib/root-uid.h:
 +      * lib/xalloc-oversized.h, m4/euidaccess.m4, m4/faccessat.m4:
 +      * m4/fcntl_h.m4, m4/getgroups.m4, m4/group-member.m4:
 +      New files, from gnulib.
 +      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
 +
 +2012-11-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
 +      * configure.ac (setpgid, setsid): Assume their existence.
 +      (AC_FUNC_GETPGRP, SETPGRP_RELEASES_CTTY): Remove; obsolete.
 +
 +      Simplify by assuming __fpending.
 +      Now that Emacs is using the gnulib fpending module,
 +      there's no need for Emacs to have a separate implementation.
 +      * configure.ac (stdio_ext.h, __fpending): Remove now-duplicate checks.
 +      (PENDING_OUTPUT_COUNT, DISPNEW_NEEDS_STDIO_EXT): Remove.
 +
 +2012-11-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/fpending.$(O) and
 +      $(BLD)/close-stream.$(O).
 +      ($(BLD)/close-stream.$(O)):
 +      ($(BLD)/fpending.$(O)): New dependencies.
 +
 +2012-11-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix data-loss with --batch (Bug#9574).
 +      * lib/close-stream.c, lib/close-stream.h, lib/fpending.c
 +      * lib/fpending.h, m4/close-stream.m4, m4/fpending.m4:
 +      New files, from gnulib.
 +      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
 +
  2012-11-03  Eli Zaretskii  <eliz@gnu.org>
  
        * config.bat: Copy lib/execinfo.in.h to lib/execinfo.in-h if needed.
  
 +2012-11-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (EMACS_ICON): New variable.
 +      (install-etc): Use EMACS_ICON to allow choice of icon.
 +
  2012-10-26  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (EMACS_NAME): New variable.
diff --combined configure.ac
@@@ -22,10 -22,7 +22,10 @@@ dnl  You should have received a copy o
  dnl  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
  
  AC_PREREQ(2.65)
 -AC_INIT(emacs, 24.2.91)
 +AC_INIT(emacs, 24.3.50)
 +dnl This is the documented way to record the args passed to configure,
 +dnl rather than $ac_configure_args.
 +emacs_config_options="$@"
  AC_CONFIG_HEADER(src/config.h:src/config.in)
  AC_CONFIG_SRCDIR(src/lisp.h)
  AC_CONFIG_AUX_DIR(build-aux)
@@@ -133,7 -130,7 +133,7 @@@ OPTION_DEFAULT_ON([sound],[don't compil
  
  dnl FIXME currently it is not the last.
  dnl This should be the last --with option, because --with-x is
 -dnl added later on when we find the path of X, and it's best to
 +dnl added later on when we find the file name of X, and it's best to
  dnl keep them together visually.
  AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
   [use an X toolkit (KIT one of: yes or gtk, gtk2, gtk3, lucid or athena, motif, no)])],
@@@ -187,9 -184,7 +187,9 @@@ OPTION_DEFAULT_ON([dbus],[don't compil
  OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
  OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
  OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
 +OPTION_DEFAULT_ON([acl],[don't compile with ACL support])
  OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
 +OPTION_DEFAULT_ON([inotify],[don't compile with inotify (file-watch) support])
  
  ## For the times when you want to build Emacs but don't have
  ## a suitable makeinfo, and can live without the manuals.
@@@ -210,8 -205,8 +210,8 @@@ f
  AC_SUBST(GZIP_INFO)
  
  AC_ARG_WITH([pkg-config-prog],dnl
 -[AS_HELP_STRING([--with-pkg-config-prog=PATH],
 -                  [path to pkg-config for finding GTK and librsvg])])
 +[AS_HELP_STRING([--with-pkg-config-prog=FILENAME],
 +                  [file name of pkg-config for finding GTK and librsvg])])
  if test "X${with_pkg_config_prog}" != X; then
     if test "${with_pkg_config_prog}" != yes; then
        PKG_CONFIG="${with_pkg_config_prog}"
@@@ -231,8 -226,7 +231,8 @@@ test "X${with_gameuser}" != X && test "
  test "X$gameuser" = X && gameuser=games
  
  AC_ARG_WITH([gnustep-conf],dnl
 -[AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
 +[AS_HELP_STRING([--with-gnustep-conf=FILENAME],
 +   [name of GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
  test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
    GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
  test "X$GNUSTEP_CONFIG_FILE" = "X" && \
@@@ -360,7 -354,7 +360,7 @@@ AC_ARG_ENABLE(autodepend
  [ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
  
  #### Make srcdir absolute, if it isn't already.  It's important to
 -#### avoid running the path through pwd unnecessarily, since pwd can
 +#### avoid running the file name through pwd unnecessarily, since pwd can
  #### give you automounter prefixes, which can go away.  We do all this
  #### so Emacs can find its files when run uninstalled.
  ## Make sure CDPATH doesn't affect cd (in case PWD is relative).
@@@ -370,17 -364,17 +370,17 @@@ case "${srcdir}" i
    . )
      ## We may be able to use the $PWD environment variable to make this
      ## absolute.  But sometimes PWD is inaccurate.
 -    ## Note: we used to use ${PWD} at the end instead of `pwd`,
 +    ## Note: we used to use $PWD at the end instead of `pwd`,
      ## but that tested only for a well-formed and valid PWD,
      ## it did not object when PWD was well-formed and valid but just wrong.
 -    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
 +    if test ".$PWD" != "." && test ".`(cd "$PWD" ; sh -c pwd)`" = ".`pwd`"  ;
      then
        srcdir="$PWD"
      else
 -      srcdir="`(cd ${srcdir}; pwd)`"
 +      srcdir=`(cd "$srcdir"; pwd)`
      fi
    ;;
 -  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
 +  *  ) srcdir=`(cd "$srcdir"; pwd)` ;;
  esac
  
  ### Canonicalize the configuration name.
@@@ -583,8 -577,6 +583,8 @@@ els
    test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
  fi
  
 +# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them.
 +AC_DEFUN([gl_FCNTL_O_FLAGS])
  # Avoid gnulib's threadlib module, as we do threads our own way.
  AC_DEFUN([gl_THREADLIB])
  
@@@ -721,8 -713,6 +721,8 @@@ els
    nw="$nw -Wfloat-equal"            # warns about high-quality code
    nw="$nw -Winline"                 # OK to ignore 'inline'
    nw="$nw -Wjump-misses-init"       # We sometimes safely jump over init.
 +  nw="$nw -Wstrict-overflow"        # OK to optimize assuming that
 +                                    # signed overflow has undefined behavior
    nw="$nw -Wsync-nand"              # irrelevant here, and provokes ObjC warning
    nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations
  
    # <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
    nw="$nw -Wshadow"
  
 -  # The following lines should be removable at some point.
 +  # Emacs's use of alloca inhibits protecting the stack.
    nw="$nw -Wstack-protector"
 -  nw="$nw -Wstrict-overflow"
 +
 +  # The following line should be removable at some point.
    nw="$nw -Wsuggest-attribute=pure"
  
    gl_MANYWARN_ALL_GCC([ws])
  AC_PATH_PROG(MAKEINFO, makeinfo, no)
  dnl By this stage, configure has already checked for egrep and set EGREP,
  dnl or exited with an error if no egrep was found.
 -if test "$MAKEINFO" != "no" && \
 -  test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'`" = x; then
 -   MAKEINFO=no
 +if test "$MAKEINFO" != "no"; then
 +  case `
 +    $MAKEINFO --version 2> /dev/null |
 +    $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'
 +  ` in
 +    '') MAKEINFO=no;;
 +  esac
  fi
  
  ## Makeinfo is unusual.  For a released Emacs, the manuals are
@@@ -829,7 -814,7 +829,7 @@@ if test "$MAKEINFO" = "no"; the
    MAKEINFO=makeinfo
    if test "x${with_makeinfo}" = "xno"; then
      HAVE_MAKEINFO=no
 -  elif test ! -e $srcdir/info/emacs && test ! -e $srcdir/info/emacs.info; then
 +  elif test ! -e "$srcdir/info/emacs" && test ! -e "$srcdir/info/emacs.info"; then
      AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
  source tree does not seem to have pre-built manuals in the `info' directory.
  Either install a suitable version of makeinfo, or re-run configure
@@@ -1185,15 -1170,15 +1185,15 @@@ AC_DEFUN([PKG_CHECK_MODULES], 
  
    if test "$PKG_CONFIG" = "no" ; then
       ifelse([$4], , [AC_MSG_ERROR([
 -      *** The pkg-config script could not be found. Make sure it is in your path, or give the full path to pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
 +      *** The pkg-config script could not be found. Make sure it is in your path, or give the full name of pkg-config with the PKG_CONFIG environment variable or --with-pkg-config-prog.  Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.])], [$4])
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +     if "$PKG_CONFIG" --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
          AC_MSG_CHECKING(for $2)
  
 -        if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
 -         $1_CFLAGS=`$PKG_CONFIG --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
 -         $1_LIBS=`$PKG_CONFIG --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
 +        if "$PKG_CONFIG" --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
 +         $1_CFLAGS=`"$PKG_CONFIG" --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
 +         $1_LIBS=`"$PKG_CONFIG" --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
            edit_cflags="
              s,///*,/,g
              s/^/ /
              ## If we have a custom action on failure, don't print errors, but
            ## do set a variable so people can do so.  Do it in a subshell
            ## to capture any diagnostics in invoking pkg-config.
 -          $1_PKG_ERRORS=`($PKG_CONFIG --print-errors "$2") 2>&1`
 +          $1_PKG_ERRORS=`("$PKG_CONFIG" --print-errors "$2") 2>&1`
            ifelse([$4], ,echo "$$1_PKG_ERRORS",)
          fi
  
  dnl checks for header files
  AC_CHECK_HEADERS_ONCE(
    linux/version.h sys/systeminfo.h
 -  stdio_ext.h fcntl.h coff.h pty.h
 +  coff.h pty.h
    sys/vlimit.h sys/resource.h
 -  sys/utsname.h pwd.h utmp.h dirent.h util.h)
 +  sys/utsname.h pwd.h utmp.h util.h)
  
  AC_MSG_CHECKING(if personality LINUX32 can be set)
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/personality.h>]], [[personality (PER_LINUX32)]])],
@@@ -1475,8 -1460,8 +1475,8 @@@ tmp_CPPFLAGS="$CPPFLAGS
  tmp_CFLAGS="$CFLAGS"
  CPPFLAGS="$CPPFLAGS -x objective-c"
  CFLAGS="$CFLAGS -x objective-c"
- TEMACS_LDFLAGS2="\${LDFLAGS}"
  GNU_OBJC_CFLAGS=
+ LIBS_GNUSTEP=
  if test "${with_ns}" != no; then
    if test "${opsys}" = darwin; then
       NS_IMPL_COCOA=yes
       CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
       CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
       LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
+      LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread"
       LIB_STANDARD=
       START_FILES=
-      TEMACS_LDFLAGS2=
       dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
       dnl If they had chosen to either define it or not, we could have
       dnl just used AC_CHECK_DECL here.
@@@ -1556,7 -1541,7 +1556,7 @@@ fail
    fi
  fi
  
- AC_SUBST(TEMACS_LDFLAGS2)
+ AC_SUBST(LIBS_GNUSTEP)
  
  INSTALL_ARCH_INDEP_EXTRA=install-etc
  ns_self_contained=no
@@@ -1599,8 -1584,6 +1599,8 @@@ AC_SUBST(LIB_STANDARD
  HAVE_W32=no
  W32_OBJ=
  W32_LIBS=
 +W32_RES=
 +W32_RES_LINK=
  if test "${with_w32}" != no; then
    if test "${opsys}" != "cygwin"; then
      AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin.])
                    [AC_MSG_ERROR([`--with-w32' was specified, but windows.h
                    cannot be found.])])
    AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
 +  AC_CHECK_TOOL(WINDRES, [windres],
 +                [AC_MSG_ERROR([No resource compiler found.])])
    W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
    W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
    W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
    W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
 +  W32_RES="emacs.res"
 +  # Tell the linker that emacs.res is an object (which we compile from
 +  # the rc file), not a linker script.
 +  W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
  fi
  AC_SUBST(W32_OBJ)
  AC_SUBST(W32_LIBS)
 +AC_SUBST(W32_RES)
 +AC_SUBST(W32_RES_LINK)
  
  if test "${HAVE_W32}" = "yes"; then
    window_system=w32
@@@ -2036,7 -2011,7 +2036,7 @@@ if test x"$pkg_check_gtk" = xyes; the
      AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
      GTK_OBJ="gtkutil.o $GTK_OBJ"
      USE_X_TOOLKIT=none
 -    if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
 +    if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then
        :
      else
        AC_MSG_WARN([[Your version of Gtk+ will have problems with
  AC_SUBST(LIBGNUTLS_LIBS)
  AC_SUBST(LIBGNUTLS_CFLAGS)
  
 +dnl inotify is only available on GNU/Linux.
 +if test "${with_inotify}" = "yes"; then
 +   AC_CHECK_HEADERS(sys/inotify.h)
 +   if test "$ac_cv_header_sys_inotify_h" = yes ; then
 +     AC_CHECK_FUNC(inotify_init1)
 +   fi
 +fi
 +if test "$ac_cv_func_inotify_init1" = yes; then
 +  AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
 +fi
 +
 +dnl POSIX ACL support: provided by libacl on GNU/Linux, by libc on FreeBSD.
 +HAVE_POSIX_ACL=no
 +LIBACL_LIBS=
 +if test "${with_acl}" = "yes"; then
 +  AC_CHECK_LIB([acl], [acl_set_file], HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
 +  if test "$HAVE_POSIX_ACL" = yes; then
 +    AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
 +    LIBACL_LIBS=-lacl
 +  else
 +    AC_CHECK_FUNC(acl_set_file, HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
 +    if test "$HAVE_POSIX_ACL" = yes; then
 +      AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
 +    fi
 + fi
 +fi
 +AC_SUBST(LIBACL_LIBS)
 +
  dnl Do not put whitespace before the #include statements below.
  dnl Older compilers (eg sunos4 cc) choke on it.
  HAVE_XAW3D=no
@@@ -2928,11 -2875,11 +2928,11 @@@ AC_SUBST(BLESSMAIL_TARGET
  
  
  AC_CHECK_FUNCS(gethostname \
 -closedir getrusage get_current_dir_name \
 -lrand48 setsid \
 -fpathconf select euidaccess getpagesize setlocale \
 -utimes getrlimit setrlimit setpgid getcwd shutdown getaddrinfo \
 -__fpending strsignal setitimer \
 +getrusage get_current_dir_name \
 +lrand48 \
 +select getpagesize setlocale \
 +utimes getrlimit setrlimit shutdown getaddrinfo \
 +strsignal setitimer \
  sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
  gai_strerror mkstemp getline getdelim fsync sync \
  difftime posix_memalign \
@@@ -2940,6 -2887,14 +2940,6 @@@ getpwent endpwent getgrent endgrent 
  touchlock \
  cfmakeraw cfsetspeed copysign __executable_start)
  
 -dnl getwd appears to be buggy on SVR4.2, so we don't use it.
 -if test $opsys = unixware; then
 -  dnl In case some other test ends up checking for getwd.
 -  AC_DEFINE(BROKEN_GETWD, 1, [Define if getwd should not be used.])
 -else
 -  AC_CHECK_FUNCS(getwd)
 -fi
 -
  ## Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
  ## has a broken `rint' in some library versions including math library
  ## version number A.09.05.
@@@ -2966,6 -2921,8 +2966,6 @@@ AC_CHECK_HEADERS_ONCE(sys/un.h
  
  AC_FUNC_FSEEKO
  
 -AC_FUNC_GETPGRP
 -
  # UNIX98 PTYs.
  AC_CHECK_FUNCS(grantpt)
  
@@@ -3637,7 -3594,7 +3637,7 @@@ case $opsys i
      AC_DEFINE(PTY_ITERATION, [])
      dnl Not used, because PTY_ITERATION is defined.
      AC_DEFINE(FIRST_PTY_LETTER, ['q'])
 -    AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
 +    AC_DEFINE(PTY_OPEN, [ { struct sigaction ocstat, cstat; struct stat stb; char * name; sigemptyset(&cstat.sa_mask); cstat.sa_handler = SIG_DFL; cstat.sa_flags = 0; sigaction(SIGCHLD, &cstat, &ocstat); name = _getpty (&fd, O_RDWR | O_NDELAY, 0600, 0); sigaction(SIGCHLD, &ocstat, (struct sigaction *)0); if (name == 0) return -1; if (fd < 0) return -1; if (fstat (fd, &stb) < 0) return -1; strcpy (pty_name, name); }])
      dnl No need to get the pty name at all.
      AC_DEFINE(PTY_NAME_SPRINTF, [])
      dnl No need to use sprintf to get the tty name--we get that from _getpty.
      dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler()
      dnl from intercepting that death.  If any child but grantpt's should die
      dnl within, it should be caught after sigrelse(2).
 -    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
 +    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
      ;;
  
    unixware )
      dnl Comments are as per sol2*.
 -    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
 +    AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
      ;;
  esac
  
@@@ -3698,6 -3655,100 +3698,6 @@@ case $opsys i
  esac
  
  
 -dnl Used in dispnew.c
 -AH_TEMPLATE(PENDING_OUTPUT_COUNT, [Number of chars of output in the
 -  buffer of a stdio stream.])
 -
 -AC_MSG_CHECKING([whether we are using the GNU C library])
 -AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
 -#include <features.h>
 -#ifndef __GNU_LIBRARY__
 -# error "this is not the GNU C library"
 -#endif
 -  ]], [[]])], emacs_glibc=yes, emacs_glibc=no)
 -AC_MSG_RESULT([$emacs_glibc])
 -
 -if test $emacs_glibc = yes; then
 -
 -  emacs_pending_output=unknown
 -
 -  case $opsys in
 -    gnu | gnu-linux | gnu-kfreebsd )
 -      AC_MSG_CHECKING([for style of pending output formalism])
 -      dnl In autoconf 2.67 and later, we could use a single test
 -      dnl since the preprocessed output is accessible in "conftest.i".
 -      AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
 -#include <stdio.h>
 -#if !defined (_IO_STDIO_H) && !defined (_STDIO_USES_IOSTREAM)
 -# error "stdio definitions not found"
 -#endif
 -        ]], [[]])], emacs_pending_output=new, [])
 -
 -      if test $emacs_pending_output = unknown; then
 -        case $opsys in
 -          gnu-linux | gnu-kfreebsd)
 -            AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
 -#include <stdio.h>
 -#ifndef __UCLIBC__
 -# error "not using uclibc"
 -#endif
 -            ]], [[]])], emacs_pending_output=uclibc, emacs_pending_output=old)
 -            ;;
 -        esac
 -      fi
 -
 -      AC_MSG_RESULT([$emacs_pending_output])
 -
 -      case $emacs_pending_output in
 -        new)
 -          dnl New C libio names.
 -          AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
 -            [((FILE)->_IO_write_ptr - (FILE)->_IO_write_base)])
 -          ;;
 -        uclibc)
 -          dnl Using the uClibc library.
 -          AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
 -            [((FILE)->__bufpos - (FILE)->__bufstart)])
 -          ;;
 -        old)
 -          dnl Old C++ iostream names.
 -          AC_DEFINE(PENDING_OUTPUT_COUNT(FILE),
 -            [((FILE)->_pptr - (FILE)->_pbase)])
 -          ;;
 -      esac
 -    ;;
 -  esac                          dnl opsys
 -
 -  if test $emacs_pending_output = unknown; then
 -    AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__bufp - (FILE)->__buffer)])
 -  fi
 -
 -else                            dnl !emacs_glibc
 -
 -  case $opsys in
 -    cygwin | darwin | freebsd | netbsd | openbsd )
 -      AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_p - (FILE)->_bf._base)])
 -      ;;
 -
 -    unixware)
 -      AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->__ptr - (FILE)->__base)])
 -      ;;
 -
 -    *)
 -      dnl HAVE_STDIO_EXT_H && HAVE___FPENDING
 -      if test x$ac_cv_header_stdio_ext_h = xyes && \
 -        test x$ac_cv_func___fpending = xyes; then
 -        AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [__fpending (FILE)])
 -        AC_DEFINE(DISPNEW_NEEDS_STDIO_EXT, 1,
 -          [Define if dispnew.c should include stdio_ext.h.])
 -      else
 -        AC_DEFINE(PENDING_OUTPUT_COUNT(FILE), [((FILE)->_ptr - (FILE)->_base)])
 -      fi
 -      ;;
 -  esac
 -fi                              dnl emacs_glibc
 -
 -
  dnl Used in vm-limit.c
  AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
  dnl Used in lisp.h, emacs.c, mem-limits.h
@@@ -3725,6 -3776,7 +3725,6 @@@ case $opsys i
  esac
  
  
 -AH_TEMPLATE(ULIMIT_BREAK_VALUE, [Undocumented.])
  AH_TEMPLATE(TAB3, [Undocumented.])
  
  case $opsys in
      ;;
  
    gnu-linux | gnu-kfreebsd )
 -    dnl libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared
 -    dnl library, we cannot get the maximum address for brk.
 -    AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
 -#ifndef __i386__
 -# error "not i386"
 -#endif
 -      ]], [[]])], AC_DEFINE(ULIMIT_BREAK_VALUE, [(32*1024*1024)]), [])
 -
      AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
  #ifndef __ia64__
  # error "not ia64"
      AC_DEFINE(RUN_TIME_REMAP, 1, [Define if emacs.c needs to call
        run_time_remap; for HPUX.])
      ;;
 -
 -  irix6-5)
 -    dnl Ulimit(UL_GMEMLIM) is busted...
 -    AC_DEFINE(ULIMIT_BREAK_VALUE, [0x14000000])
 -    ;;
  esac
  
  
@@@ -3851,6 -3916,7 +3851,6 @@@ esa
  
  dnl Define symbols to identify the version of Unix this is.
  dnl Define all the symbols that apply correctly.
 -AH_TEMPLATE(BSD4_2, [Define if the system is compatible with BSD 4.2.])
  AH_TEMPLATE(BSD_SYSTEM, [Define if the system is compatible with BSD 4.2.])
  AH_TEMPLATE(DOS_NT, [Define if the system is MS DOS or MS Windows.])
  AH_TEMPLATE(MSDOS, [Define if the system is MS DOS.])
@@@ -3876,6 -3942,7 +3876,6 @@@ case $opsys i
  
    darwin)
      dnl BSD4_3 and BSD4_4 are already defined in sys/param.h.
 -    AC_DEFINE(BSD4_2, [])
      AC_DEFINE(BSD_SYSTEM, [])
      dnl More specific than the above two.  We cannot use __APPLE__ as this
      dnl may not be defined on non-OSX Darwin, and we cannot define DARWIN
      ;;
  
    freebsd)
 -    AC_DEFINE(BSD4_2, [])
      dnl Hack to avoid calling AC_PREPROC_IFELSE multiple times.
      dnl Would not be needed with autoconf >= 2.67, where the
      dnl preprocessed output is accessible in "conftest.i".
      ;;
  
    gnu | netbsd | openbsd )
 -    AC_DEFINE(BSD4_2, [])
      AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
  #ifndef BSD_SYSTEM
  # error "BSD_SYSTEM not defined"
@@@ -3994,6 -4063,8 +3994,6 @@@ case $opsys i
    irix6-5)
      AC_DEFINE(PREFER_VSUSP, 1, [Define if process_send_signal should
        use VSUSP instead of VSWTCH.])
 -    AC_DEFINE(SETPGRP_RELEASES_CTTY, 1, [Define if process.c:child_setup
 -      should not call setpgrp.])
      ;;
  
    sol2-10)
  
  AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
                   [Define to the canonical Emacs configuration name.])
 -AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
 +dnl Replace any embedded " characters (bug#13274).
 +emacs_config_options=`echo "$emacs_config_options" | sed -e "s/\"/'/g"`
 +AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${emacs_config_options}",
                   [Define to the options passed to configure.])
  AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure
    define this to include extra configuration information.])
@@@ -4287,10 -4356,6 +4287,6 @@@ case "$opsys" i
    *) LD_SWITCH_SYSTEM_TEMACS= ;;
  esac
  
- if test "$NS_IMPL_GNUSTEP" = "yes"; then
-   LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
- fi
  AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
  
  
@@@ -4378,6 -4443,7 +4374,6 @@@ AC_SUBST(LIB_GCC
  ## Common for all window systems
  if test "$window_system" != "none"; then
    AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
 -  AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
    WINDOW_SYSTEM_OBJ="fontset.o fringe.o image.o"
  fi
  
@@@ -4543,7 -4609,7 +4539,7 @@@ AC_CONFIG_FILES([Makefile lib/Makefile 
  dnl test/ is not present in release tarfiles.
  opt_makefile=test/automated/Makefile
  
 -if test -f $srcdir/${opt_makefile}.in; then
 +if test -f "$srcdir/$opt_makefile.in"; then
    SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
    dnl Again, it's best not to use a variable.  Though you can add
    dnl ", [], [opt_makefile='$opt_makefile']" and it should work.
  dnl admin/ may or may not be present.
  opt_makefile=admin/unidata/Makefile
  
 -if test -f $srcdir/${opt_makefile}.in; then
 +if test -f "$srcdir/$opt_makefile.in"; then
    SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
    AC_CONFIG_FILES([admin/unidata/Makefile])
  fi
@@@ -4585,9 -4651,9 +4581,9 @@@ ${MAKE-make} MAKEFILE_NAME=do-not-make-
  ], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"])
  
  AC_CONFIG_COMMANDS([gdbinit], [
 -if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
 +if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
    echo creating src/.gdbinit
 -  echo source $srcdir/src/.gdbinit > src/.gdbinit
 +  echo "source $srcdir/src/.gdbinit" > src/.gdbinit
  fi
  ])
  
diff --combined doc/lispref/ChangeLog
@@@ -1,8 -1,11 +1,16 @@@
 -2012-12-29  Wolfgang Jenkner  <wjenkner@inode.at>
++2012-12-30  Wolfgang Jenkner  <wjenkner@inode.at>
+       * functions.texi (Declare Form):
+       * intro.texi (A Sample Function Description):
+       * syntax.texi (Syntax Table Internals, Syntax Table Functions):
+       * variables.texi (Using Lexical Binding): Don't use @var or CAPS
+       in @def.. commands.  (Bug#13292)
 +2012-12-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Changing Files): Document the return values of
 +      set-file-selinux-context and set-file-acl.
 +
  2012-12-27  Glenn Morris  <rgm@gnu.org>
  
        * files.texi (File Names): Mention Cygwin conversion functions.
        * windows.texi (Selecting Windows): Reword description of
        select-window (Bug#13248).
  
 +2012-12-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (File Attributes, Changing Files): Remove the details
 +      about the text returned by file-acl.  Instead, just document that
 +      it is an opaque string meant to be used by set-file-acl.
 +
  2012-12-21  Chong Yidong  <cyd@gnu.org>
  
        * modes.texi (Auto Major Mode): Fix typo (Bug#13230).
        * customize.texi (Simple Types): Document key-sequence type
        (Bug#13048).
  
 -2012-12-15  Chong Yidong  <cyd@gnu.org>
 -
        * strings.texi (Text Comparison): Doc fix for compare-strings.
  
 -2012-12-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-12-19  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * control.texi (Pattern matching case statement): New node.
 +      * files.texi (Magic File Names): Add `file-acl',
 +      `file-selinux-context', `set-file-acl' and
 +      `set-file-selinux-context'.  Make the list consistent.
 +
 +2012-12-19  Jonas Bernoulli  <jonas@bernoul.li>
 +
 +      * tips.texi (Library Headers): New header keyword `Homepage'.
 +      Make continuation lines syntax more precise.
 +
 +2012-12-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (File Attributes, Changing Files): Update to include
 +      MS-Windows support for ACLs.
 +
 +2012-12-16  Romain Francoise  <romain@orebokech.com>
 +
 +      * files.texi (File Attributes): Document ACL support and new
 +      `file-acl' function.
 +      (Changing Files): Mention argument name change of `copy-file' and
 +      document new function `set-file-acl'.
  
 -2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix permissions bugs with setgid directories etc. (Bug#13125)
 +      * files.texi (Testing Accessibility): Document GROUP arg
 +      of file-ownership-preserved-p.
 +      (File Attributes): Document that 9th element is now
 +      just a placeholder.
 +      * os.texi (User Identification): Document new functions group-gid,
 +      group-real-gid.
 +
 +2012-12-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * internals.texi (C Integer Types): New section.
 +      This follows up and records an email in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00496.html>.
 +
 +2012-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * control.texi (Pattern matching case statement): New node.
  
        * customize.texi (Variable Definitions): Mention the default :group
        for defcustoms (bug#13093).
  
 -2012-12-05  Chong Yidong  <cyd@gnu.org>
 +2012-12-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * customize.texi (Variable Definitions): Mention eval-defun
 +      on a defcustom calls the :set function when appropriate.
 +
 +2012-12-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * doclicense.texi, gpl.texi: Update to latest version from FSF.
 +      These are just minor editorial changes.
 +
 +2012-12-06  Chong Yidong  <cyd@gnu.org>
  
        * lists.texi (Plist Access): Move put example to Symbol Plists.
  
        * symbols.texi (Standard Properties): Fix typo.
  
 -2012-12-02  Chong Yidong  <cyd@gnu.org>
 +2012-12-03  Chong Yidong  <cyd@gnu.org>
  
        * symbols.texi (Symbol Properties): New node.
        (Symbol Plists): Make it a subsection under Symbol Properties.
  
        * commands.texi (Using Interactive): Fix index entry.
  
 -2012-11-23  Martin Rudalics  <rudalics@gmx.at>
 +2012-11-24  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * doclicense.texi: Update to latest version from FSF.
 +      These are just minor editorial changes.
 +      * elisp.texi (GNU Free Documentation License)
 +      (GNU General Public Licens):
 +      Provide sectioning, since doclicense.texi no longer does that.
 +
 +      * loading.texi (Named Features): @ -> @@ to fix typo.
 +
 +2012-11-24  Martin Rudalics  <rudalics@gmx.at>
  
        * windows.texi (Basic Windows): Fix typo.
        (Windows and Frames): Fix example.  Move description of
        dedicatedness affects functions removing buffers or windows.
        * buffers.texi (The Buffer List): Fix description of bury-buffer.
  
 -2012-11-23  Chong Yidong  <cyd@gnu.org>
 +2012-11-24  Chong Yidong  <cyd@gnu.org>
  
        * modes.texi (%-Constructs): Fix statement about mode construct
        padding (Bug#12866).
  
 -2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * debugging.texi (Profiling): Make it more clear
        that --enable-profiling is about profiling the C code.
  
  2012-11-21  Glenn Morris  <rgm@gnu.org>
  
 -      * debugging.texi (Profiling): Mention --enable-profiling (if !tex).
 -      Add some basic information about the profile report buffer.
 -      (Debugging): Mention profiling in the introduction.
 -
 -2012-11-20  Glenn Morris  <rgm@gnu.org>
 +      * display.texi (Attribute Functions):
 +      Update for set-face-* name changes.
 +      Add new "inherit" argument for face-bold-p etc.
 +      Move description of this argument to a common section, like "frame".
  
 -      * debugging.texi (Profiling): New section, in progress.
 +      * debugging.texi (Profiling): New section.
 +      (Debugging): Mention profiling in the introduction.
        * tips.texi (Compilation Tips): Move profiling to separate section.
        * elisp.texi: Add Profiling to detailed menu.
  
 -2012-11-18  Martin Rudalics  <rudalics@gmx.at>
 +2012-11-21  Martin Rudalics  <rudalics@gmx.at>
  
        * windows.texi (Display Action Functions): Fix recently added
        example.  Suggested by Michael Heerdegen.
  
 -2012-11-18  Paul Eggert  <eggert@cs.ucla.edu>
 +2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
  
        Minor cleanup for times as lists of four integers.
        * os.texi (Time Parsing): Time values can now be four integers.
        * loading.texi (How Programs Do Loading): Add eager macro expansion.
        * macros.texi (Expansion): Mention eager macro expansion.
  
 -2012-11-17  Glenn Morris  <rgm@gnu.org>
 -
        * minibuf.texi (Basic Completion): Mention misc completion-table funcs.
  
 -2012-11-17  Leo Liu  <sdl.web@gmail.com>
 +2012-11-18  Leo Liu  <sdl.web@gmail.com>
  
        * minibuf.texi (Programmed Completion): Doc fix for metadata
        request (Bug#12850).
  
 -2012-11-17  Glenn Morris  <rgm@gnu.org>
 +2012-11-18  Glenn Morris  <rgm@gnu.org>
  
        * display.texi (Temporary Displays): Document with-temp-buffer-window.
  
        Fix description of display-buffer-below-selected.  Reorder actions.
        Add example (Bug#12848).
  
 -2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymaps.texi (Translation Keymaps): Add a subsection "Interaction
 -      with normal keymaps" (bug#12868).
 -
 -2012-11-15  Glenn Morris  <rgm@gnu.org>
 +2012-11-16  Glenn Morris  <rgm@gnu.org>
  
        * display.texi (Face Attributes): Fix :underline COLOR description.
        (Attribute Functions): Update for set-face-underline rename.
        Tweak descriptions of face-underline-p, face-inverse-video-p.
  
 -2012-11-14  Glenn Morris  <rgm@gnu.org>
 -
        * keymaps.texi (Searching Keymaps, Tool Bar): Untabify examples,
        so they align better in info.
        (Active Keymaps, Searching Keymaps, Controlling Active Maps):
        Document set-temporary-overlay-map.
  
 -2012-11-12  Glenn Morris  <rgm@gnu.org>
 +2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymaps.texi (Translation Keymaps): Add a subsection "Interaction
 +      with normal keymaps".
 +
 +2012-11-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * internals.texi (Garbage Collection): Update descriptions
 +      of vectorlike_header, garbage-collect and gc-cons-threshold.
 +      (Object Internals): Explain Lisp_Object layout and the basics
 +      of an internal type system.
 +      (Buffer Internals): Update description of struct buffer.
 +
 +2012-11-13  Glenn Morris  <rgm@gnu.org>
  
        * variables.texi (Adding Generalized Variables):
        At least mention gv-define-expander and gv-letplace.
  
 -2012-11-11  Glenn Morris  <rgm@gnu.org>
 -
        * debugging.texi (Error Debugging): Mention debug-on-message.
        (Using Debugger): Mention debugger-bury-or-kill.
  
        * variables.texi (Adding Generalized Variables):
        Use standard formatting for common lisp note about setf functions.
  
 -2012-11-07  Martin Rudalics  <rudalics@gmx.at>
 +2012-11-10  Martin Rudalics  <rudalics@gmx.at>
  
        * elisp.texi (Top): Add Recombining Windows to menu.
        * windows.texi (Recombining Windows): New subsection.
        (Splitting Windows): Rewrite text on handling of window
        combinations and move it to new subsection.
  
 -2012-11-07  Chong Yidong  <cyd@gnu.org>
 +2012-11-10  Chong Yidong  <cyd@gnu.org>
  
        * searching.texi (Replacing Match): Document \? in replace-match.
  
  
        * edebug.texi (Specification List): setf is no longer CL-only.
  
 -2012-11-07  Glenn Morris  <rgm@gnu.org>
 +2012-11-10  Glenn Morris  <rgm@gnu.org>
  
        * variables.texi (Adding Generalized Variables):
        Update description of FIX-RETURN expansion.
  
 -2012-11-06  Glenn Morris  <rgm@gnu.org>
 -
        * variables.texi (Setting Generalized Variables):
        Split most of previous contents into this subsection.
        (Adding Generalized Variables): New subsection.
  
        * elisp.texi: Add Generalized Variables subsections to detailed menu.
  
 -2012-11-05  Chong Yidong  <cyd@gnu.org>
 +2012-11-10  Chong Yidong  <cyd@gnu.org>
  
        * frames.texi (Initial Parameters): Doc fix (Bug#12144).
  
 +2012-11-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * os.texi (Notifications): Update descriptions of
 +      notifications-notify, notifications-close-notification and
 +      notifications-get-capabilities according to latest code changes.
 +      Add notifications-get-server-information.
 +
  2012-11-03  Chong Yidong  <cyd@gnu.org>
  
        * objects.texi (General Escape Syntax): Clarify the explanation of
diff --combined etc/NEWS
+++ b/etc/NEWS
@@@ -14,540 -14,266 +14,480 @@@ and NEWS.1-17 for changes in older Emac
  You can narrow news to a specific version by calling `view-emacs-news'
  with a prefix argument or by typing C-u C-h C-n.
  
 +Temporary note:
 ++++ indicates that the appropriate manual has already been updated.
 +--- means no change in the manuals is called for.
 +When you add a new item, please add it without either +++ or ---
 +so we will look at it and add it to the manual.
 +
 +\f
 +* Installation Changes in Emacs 24.4
 +
 +** Emacs can be compiled with POSIX ACL support.
 +This happens by default if a suitable support library is found at
 +build time, like libacl on GNU/Linux.  To prevent this, use the
 +configure option `--without-acl'.
 +
 +* Startup Changes in Emacs 24.4
 +* Changes in Emacs 24.4
 +
 ++++
 +** `eval-defun' on an already defined defcustom calls the :set function,
 +if there is one.
 +
 +** The option `set-mark-default-inactive' has been deleted.
 +This unfinished feature was introduced by accident in Emacs 23.1;
 +simply disabling Transient Mark mode does the same thing.
 +
 +** `initial-buffer-choice' can now specify a function to set up the
 +initial buffer.
 +
 +** ACL support has been added.
 ++++
 +*** Emacs preserves the ACL entries of files when backing up.
 ++++
 +*** New functions `file-acl' and `set-file-acl' get and set the ACL
 +entries of a file.  On GNU/Linux, the POSIX ACL interface is used via
 +libacl.  On MS-Windows, the NT Security APIs are used to emulate the
 +POSIX ACL interfaces.
 +
 +* Editing Changes in Emacs 24.4
 +
 +** New commands `toggle-frame-fullscreen' and `toggle-frame-maximized',
 +bound to <f11> and M-<f10>, respectively.
 +
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 24.4
 +
 +** Battery
 +
 +*** Battery information via the BSD `apm' utility is now supported.
 +
 +** cl-lib
 +
 +*** New macro cl-tagbody.
 +
 ++++
 +*** letf is now just an alias for cl-letf.
 +
 +** Calc
 +
 +*** Calc by default now uses the Gregorian calendar for all dates, and
 +uses January 1, 1 AD as its day number 1.  Previously Calc used the
 +Julian calendar for dates before September 14, 1752, and it used
 +December 31, 1 BC as its day number 1; the new scheme is more
 +consistent with Calendar's calendrical system and day numbering.
 +
 +*** The new variable `calc-gregorian-switch' lets you configure the
 +date when Calc switches from the Julian to the Gregorian calendar.
 +Nil, the default value, means to always use the Gregorian calendar.
 +The value (YEAR MONTH DAY) means to start using the Gregorian calendar
 +on the given date.
 +
 +** ERC
 +
 +*** New option `erc-accidental-paste-threshold-seconds'.
 +If set to a number, this can be used to avoid accidentally paste large
 +amounts of data into the ERC input.
 +
 +** Icomplete is a bit more like IDO.
 +*** key bindings to navigate through and select the completions.
 +*** The icomplete-separator is customizable, and its default has changed.
 +*** Removed icomplete-show-key-bindings.
 +
 +** Isearch
 +
 +*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
 +and adds it to the search string.
 +
 +** MH-E has been updated to MH-E version 8.4.
 +See MH-E-NEWS for details.
 +
 +---
 +** The unrmail command converts from BABYL to mboxrd rather than mboxo.
 +Customize `unrmail-mbox-format' to change this.
 +
 +---
 +** Similarly, customize `rmail-mbox-format' to influence some minor aspects
 +of how Rmail displays non-MIME messages.
 +
 ++++
 +** New function `ses-rename-cell' to give SES cells arbitrary names.
 +
 +** trace-function was largely rewritten.
 +New features include:
 +- no prompting for the destination buffer, unless a prefix-arg was used.
 +- additionally to prompting for a destination buffer, when a prefix-arg is
 +  used, the user can enter a "context", i.e. Lisp expression whose value at the
 +  time the function is entered/exited will be printed along with the function
 +  name and arguments.  Useful to trace the value of (current-buffer) or
 +  (point) when the function is invoked.
 +
 +** New command `delete-duplicate-lines' has two types of operation:
 +when its arg ADJACENT is non-nil (when called interactively with C-u C-u)
 +it works like the utility `uniq'.  Otherwise by default it deletes
 +duplicate lines everywhere in the region without regard to adjacency.
 +
 +** Tramp
 ++++
 +*** New connection method "adb", which allows to access Android
 +devices by the Android Debug Bridge.  The variable `tramp-adb-sdk-dir'
 +must be set to the Android SDK installation directory.
 ++++
 +*** Handlers for `file-acl' and `set-file-acl' for remote machines
 +which support POSIX ACLs.
 +
 +** Woman
 +
 +*** The commands `woman-default-faces' and `woman-monochrome-faces'
 +are obsolete.  Customize the `woman-* faces instead.
 +
 +** Obsolete packages:
 +
 +*** longlines.el is obsolete; use visual-line-mode instead.
 +
 +*** terminal.el is obsolete; use term.el instead.
 +
 +\f
 +* New Modes and Packages in Emacs 24.4
 +** New nadvice.el package offering lighter-weight advice facilities.
 +It is layered as:
 +- add-function/remove-function which can be used to add/remove code on any
 +  function-carrying place, such as process-filters or `<foo>-function' hooks.
 +- advice-add/advice-remove to add/remove a piece of advice on a named function,
 +  much like `defadvice' does.
 +
 +* Incompatible Lisp Changes in Emacs 24.4
 +
 +** frame-local variables that affect redisplay do not work any more.
 +More specifically, the redisplay does not bother to check for a frame-local
 +value when looking up variables.
 +
 +** nil and "unbound" are indistinguishable in symbol-function.
 +`symbol-function' never signals `void-function' any more.
 +`fboundp' returns non-nil if the symbol was `fset' to nil.
 +
 +** `defadvice' does not honor the `freeze' flag and cannot advise
 +special-forms any more.
 +
 +** `dolist' in lexical-binding mode does not bind VAR in RESULT any more.
 +VAR was bound to nil which was not tremendously useful and just lead to
 +spurious warnings about an unused var.
 +
 +** The return value of `backup-buffer' has changed.
 +The second argument is no longer an SELinux context, instead it is an
 +alist of extended attributes as returned by the new function
 +`file-extended-attributes'.  The attributes can be applied to another
 +file using `set-file-extended-attributes'.
 +
 +* Lisp changes in Emacs 24.4
 +
 +** Support for filesystem notifications.
 +Emacs now supports notifications of filesystem changes, such as
 +creation, modification, and deletion of files.  This requires the
 +'inotify' API on GNU/Linux systems.  On MS-Windows systems, this is
 +supported for Windows XP and newer versions.
 +
 +** Face changes
 +
 +*** The `face-spec-set' is now analogous to `setq' for face specs.
 +Its third arg now accepts values specifying exactly which face spec to
 +set (defface, custom, or user spec), and it directly sets the relevant
 +property using the supplied face spec.
 +
 +*** Face specs set via Custom themes now replace the `defface' spec
 +rather than inheriting from it (as do face specs set via Customize).
 +
 +** time-to-seconds is not obsolete any more.
 +** New function special-form-p.
 +** Docstrings can be made dynamic by adding a `dynamic-docstring-function'
 +text-property on the first char.
 +
 +** The `defalias-fset-function' property lets you catch calls to defalias
 +and redirect them to your own function instead of `fset'.
 +
 +** The 9th element returned by `file-attributes' is now unspecified.
 +Formerly, it was t if the file's gid would change if file were deleted
 +and recreated.  This value has been inaccurate for years on many
 +platforms, and nobody seems to have noticed or cared.
 +
 +** The function `file-ownership-preserved-p' now has an optional
 +argument GROUP which causes it check for file group too.  This can be
 +used in place of the 9th element of `file-attributes'.
 +
 +** New functions `group-gid' and `group-real-gid'.
 +
 +** The 6th argument to `copy-file' has been renamed to
 +`preserve-extended-attributes' as it now handles both SELinux context
 +and ACL entries.
 +
 +* Changes in Emacs 24.4 on non-free operating systems
 +
 ++++
 +** The "generate a backtrace on fatal error" feature now works on MS Windows.
 +The backtrace is written to the 'emacs_backtrace.txt' file in the
 +directory where Emacs was running.
 +
  \f
  * Installation Changes in Emacs 24.3
  
- ---
- ** The default toolkit has been changed to Gtk+ version 3.
- If you don't pass --with-x-toolkit to configure or if you pass
- --with-x-toolkit=gtk or --with-x-toolkit=yes, configure will try to build
- with Gtk+ version 3, and if that fails, try Gtk+ version 2.
+ ** The default X toolkit is now Gtk+ version 3.
+ If you don't pass `--with-x-toolkit' to configure, or if you use
+ `--with-x-toolkit=gtk' or `--with-x-toolkit=yes', configure will try
+ to build with Gtk+ version 3, and if that fails, try Gtk+ version 2.
  You can explicitly require a specific version by passing
- --with-x-toolkit=gtk2 or --with-x-toolkit=gtk3 to configure.
- ---
- ** New configure option '--without-all' to disable additional features.
- This disables most of the features that are normally enabled by default.
+ `--with-x-toolkit=gtk2' or `--with-x-toolkit=gtk3' to configure.
  
- ---
- ** New configure option '--enable-link-time-optimization' to utilize
+ ** New configure option `--enable-link-time-optimization', to utilize
  an appropriate feature provided by GCC since version 4.5.0.
  
- ---
- ** New configure option '--enable-gcc-warnings', intended for developers.
- If building with GCC, this enables compile-time checks that warn about
- possibly-questionable C code.  On a recent GNU system there should be
- no warnings; on older and on non-GNU systems the generated warnings
- may be useful.
+ ** New configure option `--without-all' to disable most of the optional
+ features (image support, etc.) that are normally enabled by default.
  
- ---
- ** The configure option '--enable-use-lisp-union-type' has been
- renamed to '--enable-check-lisp-object-type', as the resulting
+ ** New configure option `--enable-gcc-warnings' (for developing/debugging
+ Emacs).  If building with GCC, this enables compile-time checks that
+ warn about possibly-questionable C code.  On a recent GNU system there
+ should be no warnings; on older and on non-GNU systems the generated
+ warnings may be useful.
+ ** The configure option `--enable-use-lisp-union-type' has been
+ renamed to `--enable-check-lisp-object-type', as the resulting
  Lisp_Object type no longer uses a union to implement the compile time
  check that this option enables.
  
- ---
- ** The configure option '--disable-maintainer-mode' has been removed,
+ ** The configure option `--disable-maintainer-mode' has been removed,
  as it was confusingly-named and rarely useful.
  
- ---
- ** You can use `NO_BIN_LINK=t make install' to prevent the installation
- overwriting "emacs" in the installation bin/ directory with a link
- to emacs-VERSION.
- ---
  ** The configure options `--program-prefix', `--program-suffix', and
  `--program-transform-name' apply to more than just the installed
  binaries.  Now they also affect the man pages, icons, and the
  etc/emacs.desktop file; but not the info pages, since this would break
  links between the various manuals.
  
- ---
+ ** You can use `NO_BIN_LINK=t make install' to prevent the installation
+ overwriting "emacs" in the installation bin/ directory with a link
+ to "emacs-VERSION".
  ** Emacs uses libtinfo in preference to libncurses, if available.
  
- ---
  ** On FreeBSD and NetBSD, configure no longer adds /usr/local/lib and
  /usr/pkg/lib to the linker search path.  You must add them yourself if
  you want them.
  
- ---
- ** The standalone scripts rcs-checkin and vcdiff have been removed
+ ** The standalone scripts `rcs-checkin' and `vcdiff' have been removed
  (from the bin and libexec directories, respectively).  The former is
  no longer relevant, the latter is replaced by lisp (in vc-sccs.el).
  
  \f
  * Startup Changes in Emacs 24.3
  
- +++
  ** Emacs no longer searches for `leim-list.el' files beneath the standard
  lisp/ directory.  There should not be any there anyway.  If you have
- been adding them there, put them somewhere else, eg site-lisp.
+ been adding them there, put them somewhere else; e.g., site-lisp.
  
- ---
  ** The `--no-site-lisp' command line option now works for Nextstep builds.
  
  \f
  * Changes in Emacs 24.3
  
- +++
- ** Most y-or-n prompts now allow you to scroll the selected window.
- Typing C-v or M-v at a y-or-n prompt scrolls forward or backward
- respectively, without exiting from the prompt.
- ** Mode line changes
- ---
- *** New option `mode-line-default-help-echo' specifies the help text
- (shown in a tooltip or in the echo area) for any part of the mode line
- that does not have its own specialized help text.
- +++
- *** You can now click mouse-3 in the coding system indicator to invoke
- `set-buffer-file-coding-system'.
- ** Help changes
+ ** Help
  
- +++
- *** `C-h f' (describe-function) can now perform autoloading.
+ *** `C-h f' (`describe-function') can now perform autoloading.
  When this command is called for an autoloaded function whose docstring
  contains a key substitution construct, that function's library is
  automatically loaded, so that the documentation can be shown
  correctly.  To disable this, set `help-enable-auto-load' to nil.
  
- ---
  *** `C-h f' now reports previously-autoloaded functions as "autoloaded",
  even after their associated libraries have been loaded (and the
  autoloads have been redefined as functions).
  
- ** Minibuffer changes
- ---
- *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
- next and previous path separator, respectively.
- +++
- *** minibuffer-electric-default-mode can rewrite (default ...) to [...].
- Just set minibuffer-eldef-shorten-default to t before enabling the mode.
+ ** ImageMagick
  
- +++
- ** ImageMagick support, if available, is automatically enabled.
+ *** Images displayed via ImageMagick now support transparency and the
+ :background image specification property.
+ *** When available, ImageMagick support is automatically enabled.
  It is no longer necessary to call `imagemagick-register-types'
  explicitly to install ImageMagick image types; that function is called
  automatically at startup, or when customizing an imagemagick- option.
- +++
  *** Setting `imagemagick-types-inhibit' to t now disables the use of
- ImageMagick to view images.  You must call imagemagick-register-types
- afterwards if you do not use customize to change this.
- +++
+ ImageMagick to view images.  (You must call `imagemagick-register-types'
+ afterwards if you do not use customize to change this.)
  *** The new variable `imagemagick-enabled-types' also affects which
  ImageMagick types are treated as images.  The function
  `imagemagick-filter-types' returns the list of types that will be
  treated as images.
- ---
- *** Images displayed via ImageMagick now support transparency and the
- :background image spec property.
  
- ** Server and client changes
- +++
+ ** Minibuffer
+ *** In minibuffer filename prompts, `C-M-f' and `C-M-b' now move to the
+ next and previous path separator, respectively.
+ *** `minibuffer-electric-default-mode' can shorten "(default ...)" to "[...]"
+ in minibuffer prompts.  Just set `minibuffer-eldef-shorten-default'
+ non-nil before enabling the mode.
+ ** Mode line
+ *** New option `mode-line-default-help-echo' specifies the help text
+ (shown in a tooltip or in the echo area) for any part of the mode line
+ that does not have its own specialized help text.
+ *** You can now click mouse-3 in the coding system indicator to invoke
+ `set-buffer-file-coding-system'.
+ ** Server and client
  *** emacsclient now obeys string values for `initial-buffer-choice',
  if it is told to open a new frame without specifying any file to visit
  or expression to evaluate.
- ---
- *** New option `server-auth-key' specifies a shared server key.
  
- +++
- ** In the Package Menu, newly-available packages are listed as "new",
- and sorted above the other "available" packages by default.
- +++
- ** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
- This minor mode replaces `toggle-read-only', which is now obsolete.
+ *** New option `server-auth-key' specifies a shared server key.
  
- +++
  ** Emacs now generates backtraces on fatal errors.
  On encountering a fatal error, Emacs now outputs a textual description
  of the fatal signal, and a short backtrace on platforms like glibc
  that support backtraces.
  
- ---
+ ** `C-x C-q' is now bound to the new minor mode `read-only-mode'.
+ This minor mode replaces `toggle-read-only', which is now obsolete.
+ ** Most `y-or-n' prompts now allow you to scroll the selected window.
+ Typing `C-v' or `M-v' at a y-or-n prompt scrolls forward or backward
+ respectively, without exiting from the prompt.
+ ** In the Package Menu, newly-available packages are listed as "new",
+ and sorted above the other "available" packages by default.
  ** If your Emacs was built from a bzr checkout, the new variable
  `emacs-bzr-version' contains information about the bzr revision used.
  
- +++
- ** New variable `create-lockfiles' specifies usage of lockfiles.
+ ** New option `create-lockfiles' specifies usage of lockfiles.
  It defaults to t.  Changing it to nil inhibits the creation of lock
  files (use this with caution).
  
- +++
- ** Using "unibyte: t" in Lisp source files is obsolete.
- Use "coding: raw-text" instead.
- +++
- ** Setting `enable-remote-dir-locals' to non-nil allows directory
- local variables on remote hosts.
+ ** New option `enable-remote-dir-locals', if non-nil, allows directory-local
+ variables on remote hosts.
  
- ---
  ** The entry for PCL-CVS has been removed from the Tools menu.
  The PCL-CVS commands are still available via the keyboard.
  
- ** Internationalization changes
- ---
+ ** Using "unibyte: t" in Lisp source files is obsolete.
+ Use "coding: raw-text" instead.
+ ** Internationalization
  *** New language environment: Persian.
- ---
  *** New input method `vietnamese-vni'.
  
- ** Nextstep (GNUstep / Mac OS X) port changes
- ---
- *** Fullscreen and frame parameter fullscreen is supported.
- ---
+ ** Nextstep (GNUstep / Mac OS X) port
+ *** Support for fullscreen and the frame parameter fullscreen.
  *** A file dialog is used for open/save operations initiated from the
  menu/toolbar.
  
  \f
  * Editing Changes in Emacs 24.3
  
- ** Navigation command changes
- +++
- *** New binding `M-g c' for `goto-char'.
- +++
- *** New binding `M-g TAB' for `move-to-column'.
- +++
- *** `M-g TAB' (`move-to-column') prompts for a column number if called
- interactively with no prefix arg.  Previously, it moved to column 1.
+ ** Search and Replace
  
- ** Search and Replace changes
- +++
  *** Non-regexp Isearch now performs "lax" space matching.
  Each sequence of spaces in the supplied search string may match any
  sequence of one or more whitespace characters, as specified by the
  variable `search-whitespace-regexp'.  (This variable is also used by a
- similar existing feature for regexp Isearch).
- +++
+ similar existing feature for regexp Isearch.)
  *** New Isearch command `M-s SPC' toggles lax space matching.
  This applies to both ordinary and regexp Isearch.
- +++
  *** New option `replace-lax-whitespace'.
  If non-nil, `query-replace' uses flexible whitespace matching too.
  The default is nil.
- +++
  *** Global `M-s _' starts a symbol (identifier) incremental search,
  and `M-s _' in Isearch toggles symbol search mode.
  `M-s c' in Isearch toggles search case-sensitivity.
  
- +++
- ** `C-x 8 RET' is now bound to `insert-char', which is now a command.
- `ucs-insert' is now an obsolete alias for `insert-char'.
+ ** Navigation commands
  
- ---
- ** The `z' key no longer has a binding in most special modes.
- It used to be bound to `kill-this-buffer', but `z' is too easy to
- accidentally type.
+ *** New binding `M-g c' for `goto-char'.
+ *** New binding `M-g TAB' for `move-to-column'.
+ *** `M-g TAB' (`move-to-column') prompts for a column number if called
+ interactively with no prefix arg.  Previously, it moved to column 1.
+ ** New option `yank-handled-properties' allows processing of text
+ properties on yanked text, in ways that are more general than just
+ removing them (as is done by `yank-excluded-properties').
  
- +++
  ** New option `delete-trailing-lines' specifies whether
  M-x delete-trailing-whitespace should delete trailing lines at the end
  of the buffer.  It defaults to t.
  
- ** Register changes
- +++
- *** `C-x r +' is now overloaded to invoke `append-to-register.
- +++
- *** New option `register-separator' specifies the register containing
- the text to put between collected texts for use with M-x
- append-to-register and M-x prepend-to-register.
- +++
  ** `C-u M-=' now counts lines/words/characters in the entire buffer.
  
- +++
- ** New command `C-x r M-w' (copy-rectangle-as-kill).
- It copies the region-rectangle as the last rectangle kill.
- +++
- ** New option `yank-handled-properties' allows processing of text
- properties on yanked text, in more ways that are more general than
- just removing them, as done by `yank-excluded-properties'.
\f
- * Changes in Specialized Modes and Packages in Emacs 24.3
+ ** `C-x 8 RET' is now bound to `insert-char', which is now a command.
+ `ucs-insert' is now an obsolete alias for `insert-char'.
  
- ** Apropos
- ---
- *** The faces used by Apropos are now directly customizable.
- These faces are named `apropos-symbol', `apropos-keybinding', and so on;
- see the `apropos' Custom group for details.
- ---
- *** The old options whose values specified faces to use were removed
- (i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
+ ** The `z' key no longer has a binding in most special modes.
+ It used to be bound to `kill-this-buffer', but `z' is too easy to
+ accidentally type.
  
- ** Buffer Menu
- This package has been rewritten to use Tabulated List mode.
- ---
- *** Option `Buffer-menu-buffer+size-width' is now obsolete.
- Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
+ ** New command `C-x r M-w' (`copy-rectangle-as-kill').
+ It copies the region-rectangle as the last rectangle kill.
  
- ** Calendar
+ ** Registers
  
- +++
- *** You can customize the header text that appears above each calendar month.
- See the variable `calendar-month-header'.
+ *** `C-x r +' is now overloaded to invoke `append-to-register'.
  
- +++
- *** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
+ *** New option `register-separator' specifies the register containing
+ the text to put between collected texts for use with
+ M-x append-to-register and M-x prepend-to-register.
  
- +++
- *** The calendars produced by cal-html include holidays.
- Customize `cal-html-holidays' to change this.
\f
+ * Changes in Specialized Modes and Packages in Emacs 24.3
  
- ** CL
+ ** Common Lisp emulation (CL)
  
- +++
  *** CL's main entry is now (require 'cl-lib).
- `cl-lib' is like the old `cl' except that it uses the namespace cleanly,
- i.e. all its definitions have the "cl-" prefix (and internal definitions use
- the "cl--" prefix).
+ `cl-lib' is like the old `cl' except that it uses the namespace cleanly;
+ i.e., all its definitions have the "cl-" prefix (and internal definitions
use the "cl--" prefix).
  
- If `cl' provided a feature under the name `foo', then `cl-lib' provides it
- under the name `cl-foo' instead, with the exceptions of the few definitions
- that had to use `foo*' to avoid conflicts with pre-existing Elisp entities,
- which have not been renamed to `cl-foo*' but just `cl-foo'.
+ If `cl' provided a feature under the name `foo', then `cl-lib'
+ provides it under the name `cl-foo' instead; with the exceptions of the
+ few `cl' definitions that had to use `foo*' to avoid conflicts with
+ pre-existing Elisp entities.  These have been renamed to `cl-foo'
+ rather than `cl-foo*'.
  
  The old `cl' is now deprecated and is mainly just a bunch of aliases that
- provide the old non-prefixed names.  Some exceptions are listed below.
+ provide the old, non-prefixed names.  Some exceptions are listed below:
  
- +++
  *** `cl-flet' is not like `flet' (which is deprecated).
  Instead it obeys the behavior of Common-Lisp's `flet'.
  In particular, in cl-flet function definitions are lexically scoped,
  whereas in flet the scoping is dynamic.
  
- +++
  *** `cl-labels' is slightly different from `labels'.
- The difference is that it relies on the `lexical-binding' machinery (as opposed
- to the `lexical-let' machinery used previously) to capture definitions in
- closures, so such closures will only work if `lexical-binding' is in use.
+ The difference is that it relies on the `lexical-binding' machinery
+ (as opposed to the `lexical-let' machinery used previously) to capture
+ definitions in closures, so such closures will only work if `lexical-binding'
+ is in use.
  
- +++
  *** `cl-letf' is not exactly like `letf'.
  The only difference is in details that relate to some deprecated usage
  of `symbol-function' in place forms.
  
- +++
  *** `progv' was rewritten to use the `let' machinery.
- A side effect is that vars without corresponding value are bound to nil
rather than making them unbound.
+ A side effect is that variables without corresponding values are bound
to nil rather than being made unbound.
  
- +++
  *** The following methods of extending `setf' are obsolete
  (use features from gv.el instead):
  `define-modify-macro' (use `gv-letplace')
  `define-setf-expander' (use `gv-define-setter' or `gv-define-expander')
  `get-setf-method' no longer exists (see "Incompatible Lisp Changes")
  
- +++
- ** New compilation option `compilation-always-kill'.
+ ** Diff mode
  
- ** Customize
- ---
- *** `custom-reset-button-menu' now defaults to t.
- ---
- *** Non-option variables are never matched in `customize-apropos' and
- `customize-apropos-options' (i.e. the prefix argument does nothing for
- these commands now).
+ *** Changes are now highlighted using the same color scheme as in
+ modern VCSes.  Deletions are displayed in red (new faces
+ `diff-refine-removed' and `smerge-refined-removed', and new definition
+ of `diff-removed'), insertions in green (new faces `diff-refine-added'
+ and `smerge-refined-added', and new definition of `diff-added').
  
- ---
- ** `desktop-path' no longer includes the "." directory.
- Desktop files are now located in ~/.emacs.d by default.
+ *** The variable `diff-use-changed-face' defines whether to use the
+ face `diff-changed', or `diff-removed' and `diff-added' to highlight
+ changes in context diffs.
+ *** The new command `diff-delete-trailing-whitespace' removes trailing
+ whitespace introduced by a diff.
+ ** Ediff now uses the same color scheme as Diff mode.
+ ** Python mode
+ A new version of python.el, which provides several new features, including:
+ per-buffer shells, better indentation, Python 3 support, and improved
+ shell-interaction compatible with iPython (and virtually any other
+ text based shell).
+ *** Some user options have been replaced/renamed, including (old -> new):
+ **** python-indent -> python-indent-offset
+ **** python-guess-indent -> python-indent-guess-indent-offset
+ **** python-pdbtrack-do-tracking-p -> python-pdbtrack-activate
+ **** python-use-skeletons -> python-skeleton-autoinsert
+ *** Some user options have been removed, including:
+ **** `python-indent-string-contents': Strings are never indented.
+ **** `python-honour-comment-indentation':
+ Comments are always considered as indentation markers.
+ **** `python-continuation-offset': Indentation is automatically
+ calculated in a pep8 compliant way depending on the context.
+ **** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
+ Have no direct mapping as the shell interaction is completely different.
+ **** `python-python-command', `python-jython-command':
+ Replaced by `python-shell-interpreter'.
+ **** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
+ `python-pdbtrack-minor-mode-string', `python-source-modes':
+ No longer relevant.
+ *** Some commands have been replaced (old -> new):
+ **** python-insert-class -> python-skeleton-class
+ **** python-insert-def -> python-skeleton-def
+ **** python-insert-for -> python-skeleton-for
+ **** python-insert-if -> python-skeleton-if
+ **** python-insert-try/except -> python-skeleton-try
+ **** python-insert-try/finally -> python-skeleton-try
+ **** python-insert-while -> python-skeleton-while
+ **** python-find-function -> python-nav-jump-to-defun
+ **** python-next-statement -> python-nav-forward-sentence
+ **** python-previous-statement -> python-nav-backward-sentence
+ **** python-beginning-of-defun-function -> python-nav-beginning-of-defun
+ **** python-end-of-defun-function -> python-nav-end-of-defun
+ **** python-send-buffer -> python-shell-send-buffer
+ **** python-send-defun -> python-shell-send-defun
+ **** python-send-region -> python-shell-send-region
+ **** python-send-region-and-go -> emulate with python-shell-send-region
+ and python-shell-switch-to-shell
+ **** python-send-string -> python-shell-send-string
+ **** python-switch-to-python -> python-shell-switch-to-shell
+ **** python-describe-symbol -> python-eldoc-at-point
  
  ** D-Bus
  
- +++
  *** New variables `dbus-compiled-version' and `dbus-runtime-version'.
  
- +++
  *** The D-Bus object manager interface is implemented.
  
- +++
  *** Variables of type :(u)int32 and :(u)int64 accept floating points,
  if their value does not fit into Emacs's integer range.
  
- +++
- *** The function `dbus-call-method' works non-blocking now, it can be
- interrupted by C-g.  `dbus-call-method-non-blocking' is obsolete.
+ *** The function `dbus-call-method' is now non-blocking.
+ It can be interrupted by `C-g'.  `dbus-call-method-non-blocking' is obsolete.
  
- +++
- *** Signals can be sent also as unicast message.
+ *** Signals can also be sent as unicast messages.
  
- +++
  *** The argument list of `dbus-register-signal' has been extended,
- according to the new match rule types of D-Bus.  See the manual for
- details.
+ according to the new match rule types of D-Bus.
  
- +++
  *** `dbus-init-bus' supports private connections.
  
- +++
  *** There is a new function `dbus-setenv'.
  
- ** Diff mode
- ---
- *** Changes are now highlighted using the same color scheme as in
- modern VCSes.  Deletions are displayed in red (new faces
- `diff-refine-removed' and `smerge-refined-removed', and new definition
- of `diff-removed'), insertions in green (new faces `diff-refine-added'
- and `smerge-refined-added', and new definition of `diff-added').
- ---
- *** The variable `diff-use-changed-face' defines whether to use the
- face `diff-changed', or `diff-removed' and `diff-added' to highlight
- changes in context diffs.
- +++
- *** The new command `diff-delete-trailing-whitespace' removes trailing
- whitespace introduced by a diff.
+ ** `desktop-path' no longer includes the "." directory.
+ Desktop files are now located in ~/.emacs.d by default.
  
  ** Dired
- +++
  *** `dired-do-async-shell-command' executes each file sequentially
  if the command ends in `;' (when operating on multiple files).
  Otherwise, it executes the command on each file in parallel.
- ---
- *** Typing M-n in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
- `dired-do-chown', `dired-do-touch' pulls the file attributes of the
+ *** Typing `M-n' in the minibuffer of `dired-do-chmod', `dired-do-chgrp',
+ `dired-do-chown', and `dired-do-touch' yanks the attributes of the
  file at point.
- +++
  *** When the region is active, `m' (`dired-mark'), `u' (`dired-unmark'),
- `DEL' (`dired-unmark-backward'), `d' (`dired-flag-file-deletion')
+ `DEL' (`dired-unmark-backward'), and `d' (`dired-flag-file-deletion')
  mark/unmark/flag all files in the active region.
- +++
  *** The minibuffer default for `=' (`dired-diff) has changed.
  It is now the backup file for the file at point, if one exists.
  In Transient Mark mode the default is the file at the active mark.
- +++
  *** `M-=' is no longer bound to `dired-backup-diff' in Dired buffers.
  The global binding for `M-=', `count-words-region' is in effect.
  
- ---
- ** Ediff now uses the same color scheme as Diff mode.
  ** ERC
  
- +++
  *** New module "notifications", which can send a notification when you
  receive a private message or your nickname is mentioned.
  
- +++
  *** ERC will look up server/channel names via auth-source and use any
  channel keys found.
  
- +++
  *** New option `erc-lurker-hide-list', similar to `erc-hide-list', but
  only applies to messages sent by lurkers.
  
- +++
- ** Flymake uses fringe bitmaps to indicate errors and warnings.
- See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
- `flymake-warning-bitmap'.
- ---
- ** Follow mode no longer works by using advice.
- The option `follow-intercept-processes' has been removed.
- ---
- ** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
- specifying URL types that should be converted to remote file names at
- the FFAP prompt.  The default is now '("ftp").
+ ** reStructuredText mode
  
- ---
- ** New Ibuffer `derived-mode' filter, bound to `/ M'.
The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
+ *** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
+ fontification, comment handling, and customization have all been revised
and improved.
  
- ---
- ** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
+ *** Support for `imenu' and `which-function-mode'.
  
- +++
- ** New option `mouse-avoidance-banish-position' specifies where the
- `banish' mouse avoidance setting moves the mouse.
+ *** The reStructuredText syntax is more closely covered.
+ Sphinx support has been improved.
  
- +++
- ** notifications.el supports now version 1.2 of the Notifications API.
- The function `notifications-get-capabilities' returns the supported
- server properties.
+ *** `rst-insert-list' inserts new list or continues existing lists.
  
- ---
- ** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
- closing brackets to be aligned with the line of the opening bracket.
+ *** A negative prefix argument always works for `rst-adjust'.
  
- ---
- ** In Proced mode, new command `proced-renice' renices marked processes.
+ *** The window configuration is reset after displaying a TOC.
  
- ---
- ** Python mode
+ *** The constant `rst-version' describes the rst.el package version.
  
- A new version of python.el, which provides several new features, including:
- per-buffer shells, better indentation, Python 3 support, and improved
- shell-interaction compatible with iPython (and virtually any other
- text based shell).
+ ** Shell Script mode
  
- *** Some user options have been replaced/renamed:
- Old defcustom:                | New defcustom:
- python-indent                 | python-indent-offset
- python-guess-indent           | python-indent-guess-indent-offset
- python-pdbtrack-do-tracking-p | python-pdbtrack-activate
- python-use-skeletons          | python-skeleton-autoinsert
+ *** Pairing of parens/quotes uses `electric-pair-mode' instead of skeleton-pair.
  
- *** Some user options have been removed:
+ *** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
  
- **** `python-indent-string-contents': Strings are never indented.
+ *** `sh-use-smie' lets you choose a new indentation and navigation code.
  
- **** `python-honour-comment-indentation':
- Comments are never considered as indentation markers themselves.
+ ** VHDL mode
  
- **** `python-continuation-offset': Indentation is automatically
- calculated in a pep8 compliant way depending on the context.
+ *** The free software compiler GHDL is supported (and now the default).
  
- **** `python-shell-prompt-alist', `python-shell-continuation-prompt-alist':
- Have no direct mapping as the shell interaction is completely different.
+ *** Support for the VHDL-AMS packages has been added/updated.
  
- **** `python-python-command', `python-jython-command':
- Replaced by `python-shell-interpreter'.
+ *** Updated to the 2002 revision of the VHDL standard.
  
- **** `inferior-python-filter-regexp', `python-remove-cwd-from-path',
- `python-pdbtrack-minor-mode-string', `python-source-modes':
- No longer relevant.
+ *** Accepts \r and \f as whitespace.
  
- *** Some commands have been replaced:
- Old command               | New command
- python-insert-class       | python-skeleton-class
- python-insert-def         | python-skeleton-def
- python-insert-for         | python-skeleton-for
- python-insert-if          | python-skeleton-if
- python-insert-try/except  | python-skeleton-try
- python-insert-try/finally | python-skeleton-try
- python-insert-while       | python-skeleton-while
- python-find-function      | python-nav-jump-to-defun
- python-next-statement     | python-nav-forward-sentence
- python-previous-statement | python-nav-backward-sentence
- python-beginning-of-defun-function  | python-nav-beginning-of-defun
- python-end-of-defun-function        | python-nav-end-of-defun
- python-send-buffer        | python-shell-send-buffer
- python-send-defun         | python-shell-send-defun
- python-send-region        | python-shell-send-region
- python-send-region-and-go | Emulate with python-shell-send-region and
-                             python-shell-switch-to-shell
- python-send-string        | python-shell-send-string
- python-switch-to-python   | python-shell-switch-to-shell
- python-describe-symbol    | python-eldoc-at-point
+ ** Apropos
  
- ---
- ** reStructuredText mode
+ *** The faces used by Apropos are now directly customizable.
+ These faces are named `apropos-symbol', `apropos-keybinding', and so on;
+ see the `apropos' Custom group for details.
  
- *** Keybindings (see `C-c C-h'), TAB indentation, filling and auto-filling,
- fontification, comment handling, and customization have all been revised
- and improved.
+ *** The old options whose values specified faces to use have been removed
+ (i.e. `apropos-symbol-face', `apropos-keybinding-face', etc.).
  
- *** Support for `imenu' and `which-function-mode'.
+ ** Buffer Menu
  
- *** The reStructuredText syntax is more closely covered.
- Sphinx support has been improved.
+ *** This package has been rewritten to use Tabulated List mode.
  
- *** `rst-insert-list' inserts new list or continues existing lists.
+ *** Option `Buffer-menu-buffer+size-width' is now obsolete.
+ Use `Buffer-menu-name-width' and `Buffer-menu-size-width' instead.
  
- *** A negative prefix argument always works for `rst-adjust'.
+ ** Calendar
  
- *** The window configuration is reset after displaying a TOC.
+ *** You can customize the header text that appears above each calendar month.
+ See the variable `calendar-month-header'.
  
- *** The constant `rst-version' describes the rst.el package version.
+ *** New LaTeX calendar style, produced by `cal-tex-cursor-week2-summary'.
  
- ---
- ** Shell Script mode
+ *** The calendars produced by cal-html include holidays.
+ Customize `cal-html-holidays' to change this.
  
- *** Pairing of parens/quotes uses electric-pair-mode instead of skeleton-pair.
+ ** Compile has a new option `compilation-always-kill'.
  
- *** `sh-electric-here-document-mode' now controls auto-insertion of here-docs.
+ ** Customize
  
- *** `sh-use-smie' lets you choose a new indentation and navigation code.
+ *** `custom-reset-button-menu' now defaults to t.
  
- +++
- ** New option `async-shell-command-buffer' specifies the buffer to use
- for a new asynchronous `shell-command' when the default output buffer
- `*Async Shell Command*' is already in use.
+ *** Non-option variables are never matched in `customize-apropos' and
+ `customize-apropos-options' (i.e., the prefix argument does nothing for
+ these commands now).
  
- ---
- ** SQL mode has a new option `sql-db2-escape-newlines'.
- If non-nil, newlines sent to the command interpreter will be escaped
- by a backslash.  The default does not escape the newlines and assumes
- that the sql statement will be terminated by a semicolon.
+ ** Term
  
- ** Tabulated List and packages derived from it
- +++
- *** New command `tabulated-list-sort', bound to `S', sorts the column
- at point, or the Nth column if a numeric prefix argument is given.
+ *** The variables `term-default-fg-color' and `term-default-bg-color'
+ are now deprecated in favor of the customizable face `term'.
  
- ** Term
- +++
- *** The variables `term-default-fg-color' and `term-default-bg-color' are
- now deprecated in favor of the customizable face `term'.
- +++
  *** You can customize how to display ANSI terminal colors and styles
  by customizing the corresponding `term-color-<COLOR>',
  `term-color-underline' and `term-color-bold' faces.
  
  ** Tramp
- +++
  *** The syntax has been extended in order to allow ad-hoc proxy definitions.
- See the manual for details.
- +++
- *** Remote processes are now supported also on remote Windows host.
  
- ** URL
- +++
- *** Structs made by `url-generic-parse-url' have nil `attributes' slot.
- Previously, this slot stored semicolon-separated attribute-value pairs
- appended to some imap URLs, but this is not compatible with RFC 3986.
- So now the `filename' slot stores the entire path and query components
- and the `attributes' slot is always nil.
- +++
- *** New function `url-encode-url' for encoding a URI string.
- The `url-retrieve' function now uses this to encode its URL argument,
- in case that is not properly encoded.
+ *** Remote processes are now also supported on remote MS-Windows hosts.
+ ** URL
+ *** Structs made by `url-generic-parse-url' have nil `attributes' slot.
+ Previously, this slot stored semicolon-separated attribute-value pairs
+ appended to some imap URLs, but this is not compatible with RFC 3986.
+ So now the `filename' slot stores the entire path and query components,
+ and the `attributes' slot is always nil.
+ *** New function `url-encode-url' for encoding a URI string.
+ The `url-retrieve' function now uses this to encode its URL argument,
+ in case that is not properly encoded.
+ ** notifications.el supports now version 1.2 of the Notifications API.
+ The function `notifications-get-capabilities' returns the supported
+ server properties.
+ ** Flymake uses fringe bitmaps to indicate errors and warnings.
+ See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
+ `flymake-warning-bitmap'.
+ ** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
+ specifying URL types that should be converted to remote file names at
+ the FFAP prompt.  The default is now '("ftp").
+ ** New Ibuffer `derived-mode' filter, bound to `/ M'.
+ The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
+ ** New option `mouse-avoidance-banish-position' specifies where the
+ `banish' mouse avoidance setting moves the mouse.
  
- ---
- ** VHDL mode
+ ** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
+ closing brackets to be aligned with the line of the opening bracket.
  
- *** The free software compiler GHDL is supported (and now the default).
+ ** In Proced mode, new command `proced-renice' renices marked processes.
  
- *** Support for the VHDL-AMS packages has been added/updated.
+ ** New option `async-shell-command-buffer' specifies the buffer to use
+ for a new asynchronous `shell-command' when the default output buffer
+ `*Async Shell Command*' is already in use.
  
- *** Updated to the 2002 revision of the VHDL standard.
+ ** SQL mode has a new option `sql-db2-escape-newlines'.
+ If non-nil, newlines sent to the command interpreter will be escaped
+ by a backslash.  The default does not escape the newlines and assumes
+ that the sql statement will be terminated by a semicolon.
  
- *** Accepts \r and \f as whitespace.
+ ** New command `tabulated-list-sort', bound to `S' in Tabulated List mode
+ (and modes that derive from it), sorts the column at point, or the Nth
+ column if a numeric prefix argument is given.
  
- +++
  ** `which-func-modes' now defaults to t, so Which Function mode, when
  enabled, applies to all applicable major modes.
  
- ---
- ** winner-mode-hook now runs when the mode is disabled, as well as when it is
- enabled.
+ ** `winner-mode-hook' now runs when the mode is disabled, as well as when
+ it is enabled.
+ ** Follow mode no longer works by using advice.
+ The option `follow-intercept-processes' has been removed.
+ ** `javascript-generic-mode' is now an obsolete alias for `js-mode'.
  
- +++
  ** Hooks renamed to avoid obsolete "-hooks" suffix:
  *** semantic-lex-reset-hooks -> semantic-lex-reset-functions
  *** semantic-change-hooks -> semantic-change-functions
  *** nndiary-request-accept-article-hooks -> nndiary-request-accept-article-functions
  *** gnus-subscribe-newsgroup-hooks -> gnus-subscribe-newsgroup-functions
  
- ** Obsolete packages:
- +++
+ ** Obsolete packages
  *** assoc.el
  In most cases, assoc+member+push+delq work just as well.
  And in any case it's just a terrible package: ugly semantics, terrible
  inefficiency, and not namespace-clean.
- ---
  *** bruce.el
- +++
  *** cust-print.el
- ---
  *** ledit.el
- ---
  *** mailpost.el
- +++
  *** mouse-sel.el
- ---
  *** patcomp.el
  
  \f
  * Incompatible Lisp Changes in Emacs 24.3
  
- +++
- ** set-buffer-multibyte now signals an error in narrowed buffers.
+ ** Docstrings starting with `*' no longer indicate user options.
+ Only variables defined using `defcustom' are considered user options.
+ The function `user-variable-p' is now an obsolete alias for
+ `custom-variable-p'.
  
- +++
- ** (random) by default now returns a different random sequence in
- every Emacs run.  Use (random S), where S is a string, to set the
+ ** The return values of `defalias', `defun' and `defmacro' have changed,
+ and are now undefined.  For backwards compatibility, `defun' and
+ `defmacro' currently return the name of the newly defined
+ function/macro, but this should not be relied upon.
+ ** `random' by default now returns a different random sequence in
+ every Emacs run.  Use `(random S)', where S is a string, to set the
  random seed to a value based on S, in order to get a repeatable
  sequence in later calls.
  
- ---
- ** The function `x-select-font' can return a font spec, instead of a
- font name as a string.  Whether it returns a font spec or a font name
- depends on the graphical library.
- +++
  ** If the NEWTEXT arg to `replace-match' contains a substring "\?",
  that substring is inserted literally even if the LITERAL arg is
  non-nil, instead of causing an error to be signaled.
  
- +++
  ** `select-window' now always makes the window's buffer current.
  It does so even if the window was selected before.
  
- +++
- ** Docstrings starting with `*' no longer indicate user options.
- Only variables defined using `defcustom' are considered user options.
- The function `user-variable-p' is now an obsolete alias for
- `custom-variable-p'.
- +++
- ** The return values of `defalias', `defun' and `defmacro' have changed,
- and are now undefined.  For backwards compatibility, `defun' and
- `defmacro' currently return the name of the newly defined
- function/macro, but this should not be relied upon.
+ ** The function `x-select-font' can return a font spec, instead of a
+ font name as a string.  Whether it returns a font spec or a font name
+ depends on the graphical library.
  
- ---
  ** `face-spec-set' no longer sets frame-specific attributes when the
  third argument is a frame (that usage was obsolete since Emacs 22.2).
  
- +++
- ** The arguments of `dbus-register-signal' are no longer just strings,
- but keywords or keyword-string pairs.  The old argument list will
- still be supported for Emacs 24.x.
+ ** `set-buffer-multibyte' now signals an error in narrowed buffers.
  
- +++
  ** The CL package's `get-setf-method' function no longer exists.
  Generalized variables are now part of core Emacs Lisp, and implemented
  differently to the way cl.el used to do it.  It is not possible to
  define a compatible replacement for `get-setf-method'.  See the file
  gv.el for internal details of the new implementation.
  
- ** Spelling changes.
- Some Lisp symbols have been renamed to avoid problems with spelling
that is incorrect or inconsistent with how Emacs normally spells a word.
+ ** The arguments of `dbus-register-signal' are no longer just strings,
+ but keywords or keyword-string pairs.  The old argument list will
still be supported for Emacs 24.x.
  
- ---
- *** Renamed functions
+ ** Miscellaneous name changes
+ Some Lisp symbols have been renamed to correct their spelling,
+ or to be more consistent with standard Emacs terminology.
  
+ *** Renamed functions
  **** hangul-input-method-inactivate -> hangul-input-method-deactivate
  **** inactivate-input-method -> deactivate-input-method
  **** quail-inactivate -> quail-deactivate
       viper-deactivate-input-method-action
  **** ucs-input-inactivate -> ucs-input-deactivate
  
- ---
  *** Renamed hooks
  The old hooks are still supported for backward compatibility, but they
  are deprecated and will be removed eventually.
  **** robin-inactivate-hook -> robin-deactivate-hook
  **** quail-inactivate-hook -> quail-deactivate-hook
  
- ---
- *** Renamed Lisp variables
+ *** Renamed variables
  **** follow-deactive-menu -> follow-inactive-menu
  **** inactivate-current-input-method-function ->
       deactivate-current-input-method-function
  
- +++
  ** Some obsolete functions, variables, and faces have been removed:
  *** `last-input-char', `last-command-char', `unread-command-char'
  *** `facemenu-unlisted-faces'
  \f
  * Lisp changes in Emacs 24.3
  
- ** New sampling-based Elisp profiler.
- Try M-x profiler-start, do some work, and then call M-x profiler-report.
- When finished, use M-x profiler-stop.  The sampling rate can be based on
- CPU time or memory allocations.
- +++
  ** CL-style generalized variables are now in core Elisp.
  `setf' is autoloaded; `push' and `pop' accept generalized variables.
  You can define your own generalized variables using `gv-define-simple-setter',
  `gv-define-setter', etc.
  
- +++
+ ** Emacs tries to macroexpand interpreted (non-compiled) files during load.
+ This can significantly speed up execution of non-byte-compiled code,
+ but can also bump into previously unnoticed cyclic dependencies.
+ These are generally harmless: they will simply cause the macro calls
+ to be left for later expansion (as before), but will result in a
+ warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
+ You may wish to restructure your code so this does not happen.
+ ** New sampling-based Elisp profiler.
+ Try M-x profiler-start, do some work, and then call M-x profiler-report.
+ When finished, use M-x profiler-stop.  The sampling rate can be based on
+ CPU time or memory allocations.
  ** `defun' also accepts a (declare DECLS) form, like `defmacro'.
  The interpretation of the DECLS is determined by `defun-declarations-alist'.
  
- ** Minibuffer
- +++
- *** `read-regexp' has a new argument HISTORY; the first argument PROMPT
+ ** New macros `setq-local' and `defvar-local'.
+ ** Face underlining can now use a wave.
+ ** `read-regexp' has a new argument HISTORY; the first argument PROMPT
  of `read-regexp' accepts a string ending with a colon and space, and its
- second argument DEFAULTS can be a list of strings accessible via M-n
+ second argument DEFAULTS can be a list of strings accessible via `M-n'
  in the minibuffer ahead of other hard-coded useful regexp-related values.
  More commands use `read-regexp' now to read their regexp arguments.
  
  *** New function `completion-table-with-quoting' to handle completion
  in the presence of quoting, such as file completion in shell buffers.
  
- +++
  *** New function `completion-table-subvert' to use an existing completion
  table, but with a different prefix.
  
- ** Debugger changes
+ ** Debugger
  
- +++
  *** New error type and new function `user-error'.
  These do not trigger the debugger.
  
- +++
  *** New option `debugger-bury-or-kill', saying what to do with the
  debugger buffer when exiting debug.
  
- +++
  *** Set `debug-on-message' to enter the debugger when a certain
  message is displayed in the echo area.  This can be useful when trying
  to work out which code is doing something.
- ---
  *** New var `inhibit-debugger', automatically set to prevent accidental
  recursive invocations.
  
- ** Window changes
- +++
- *** The functions get-lru-window, get-mru-window and get-largest-window
- now accept a third argument to avoid choosing the selected window.
- +++
- *** Additional values recognized for option `window-combination-limit'.
+ ** Window handling
+ *** New command `fit-frame-to-buffer' adjusts the frame height to
+ fit the contents.
+ *** The command `fit-window-to-buffer' can adjust the frame height
+ if the new option `fit-frame-to-buffer' is non-nil.
  
- +++
  *** New macro `with-temp-buffer-window', similar to
  `with-output-to-temp-buffer'.
  
- ---
  *** `temp-buffer-resize-mode' no longer resizes windows that have been
  reused.
  
- +++
- *** New command `fit-frame-to-buffer' adjusts the frame height to
- fit the contents.
+ *** New option `switch-to-buffer-preserve-window-point' to restore a
+ window's point when switching buffers.
  
- +++
- *** The command `fit-window-to-buffer' can adjust the frame height
- if the new option `fit-frame-to-buffer' is non-nil.
+ *** New display action alist entries `window-height' and `window-width'
+ specify the size of new windows created by `display-buffer'.
+ *** New display action alist entry `pop-up-frame-parameters', if
+ non-nil, specifies frame parameters to give any newly-created frame.
  
- +++
- *** New option switch-to-buffer-preserve-window-point to restore a
- window's point when switching buffers.
- +++
- *** New display action functions `display-buffer-below-selected',
- and `display-buffer-in-previous-window'.
- +++
  *** New display action alist entry `inhibit-switch-frame', if non-nil,
  tells display action functions to avoid changing which frame is
  selected.
- +++
- *** New display action alist entry `pop-up-frame-parameters', if
- non-nil, specifies frame parameters to give any newly-created frame.
- +++
  *** New display action alist entry `previous-window', if non-nil,
  specifies window to reuse in `display-buffer-in-previous-window'.
- +++
- *** New display action alist entries `window-height' and `window-width'
- to specify size of new window created by `display-buffer'.
+ *** New display action functions `display-buffer-below-selected',
+ and `display-buffer-in-previous-window'.
+ *** The functions `get-lru-window', `get-mru-window' and `get-largest-window'
+ now accept a third argument to avoid choosing the selected window.
+ *** Additional values recognized for option `window-combination-limit'.
  
  *** The following variables are obsolete, as they can be replaced by
  appropriate entries in the `display-buffer-alist' function introduced
  in Emacs 24.1:
- +++
+ **** `dired-shrink-to-fit'
  **** `display-buffer-reuse-frames'
- +++
- **** `special-display-regexps'
- +++
- **** `special-display-frame-alist'
- +++
+ **** `display-buffer-function'
  **** `special-display-buffer-names'
- +++
+ **** `special-display-frame-alist'
  **** `special-display-function'
- +++
- **** `display-buffer-function'
- ---
- **** `dired-shrink-to-fit'
+ **** `special-display-regexps'
  
  ** Time
- ---
  *** `current-time-string' no longer requires that its argument's year
  must be in the range 1000..9999.  It now works with any year supported
  by the underlying C implementation.
- +++
  *** `current-time' now returns extended-format time stamps
  (HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
  PSEC is typically a multiple of 1000 on current machines.  Other
- functions that use this format, such as file-attributes and
format-time-string, have been changed accordingly.  Old-format time
+ functions that use this format, such as `file-attributes' and
`format-time-string', have been changed accordingly.  Old-format time
  stamps are still accepted.
- ---
- *** The format of timers in timer-list and timer-idle-list is now
+ *** The format of timers in `timer-list' and `timer-idle-list' is now
  [TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
  The PSECS slot is new, and uses picosecond resolution.  It can be
- accessed via the new timer--psecs accessor.
- +++
+ accessed via the new `timer--psecs' accessor.
  *** Last-modified time stamps in undo lists now are of the form
  (t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
  
- +++
  ** Floating point functions now always return special values like NaN,
- instead of signaling errors, if given invalid args, e.g. (log -1.0).
+ instead of signaling errors, if given invalid args; e.g., (log -1.0).
  Previously, they returned NaNs on some platforms but signaled errors
  on others.  The affected functions are acos, asin, tan, exp, expt,
  log, log10, sqrt, and mod.
  
- +++
- ** Emacs tries to macroexpand interpreted (non-compiled) files during load.
- This can significantly speed up execution of non-byte-compiled code,
- but can also bump into previously unnoticed cyclic dependencies.
- These are generally harmless: they will simply cause the macro calls
- to be left for later expansion (as before), but will result in a
- warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
- You may wish to restructure your code so this does not happen.
+ ** New fringe bitmap `exclamation-mark'.
+ ** Miscellaneous changes to special forms and macros
+ *** `defun' and `defmacro' are now macros rather than special forms.
+ *** `kbd' is now a function rather than a macro.
+ ** Miscellaneous new functions
+ *** `set-temporary-overlay-map' sets up a temporary keymap that
+ takes precedence over most other maps for a short while (normally one key).
  
- ** Miscellaneous new functions:
- +++
  *** `autoloadp' tests if its argument is an autoloaded object.
- +++
  *** `autoload-do-load' performs the autoloading operation.
- +++
  *** `buffer-narrowed-p' tests if the buffer is narrowed.
- +++
  *** `file-name-base' returns a file name sans directory and extension.
- +++
  *** `function-get' fetches a function property, following aliases.
- +++
- *** `posnp' tests if an object is a `posn'.
- +++
- *** `set-temporary-overlay-map' sets up a temporary keymap that
- takes precedence over most other maps for a short while (normally one key).
- +++
- *** `system-users' returns the user names on the system.
- +++
- *** `system-groups' returns the group names on the system.
- +++
- *** `tty-top-frame' returns the topmost frame of a text terminal.
  
- +++
- ** New macros `setq-local' and `defvar-local'.
+ *** `posnp' tests if an object is a `posn'.
  
- ** Changes to special forms and macros
- +++
- *** `defun' and `defmacro' are now macros rather than special forms
- +++
- *** `kbd' is now a function rather than a macro.
+ *** `system-users' returns the user names on the system.
  
- +++
- ** New fringe bitmap `exclamation-mark'.
+ *** `system-groups' returns the group names on the system.
  
- +++
- ** Face underlining can now use a wave.
+ *** `tty-top-frame' returns the topmost frame of a text terminal.
  
  ** The following functions and variables are obsolete:
- ---
  *** `automount-dir-prefix' (use `directory-abbrev-alist')
- +++
  *** `buffer-has-markers-at'
- ---
  *** `macro-declaration-function' (use `macro-declarations-alist')
- ---
  *** `window-system-version' (provides no useful information)
- ---
  *** `dired-pop-to-buffer' (use `dired-mark-pop-up')
- ---
  *** `query-replace-interactive'
- ---
  *** `font-list-limit' (has had no effect since Emacs < 23)
  
  \f
  * Changes in Emacs 24.3 on non-free operating systems
  
- ---
  ** Cygwin builds can use the native MS Windows user interface.
- Pass --with-w32 to configure.  The default remains the X11 interface.
+ Pass `--with-w32' to configure.  The default remains the X11 interface.
  
- +++
  ** Two new functions are available in Cygwin builds:
  `cygwin-convert-file-name-from-windows' and
  `cygwin-convert-file-name-to-windows'.  These functions allow Lisp
  code to access the Cygwin file-name mapping machinery to convert
  between Cygwin and Windows-native file and directory names.
  
- ---
  ** When invoked with the -nw switch to run on the Windows text-mode terminal,
  Emacs now supports `mouse-highlight', help-echo (in the echo area), and
  `mouse-autoselect-window'.
  
- +++
  ** On MS Windows Vista and later Emacs now supports symbolic links.
  
- +++
- ** On MS Windows, you can pass --without-libxml2 to configure.bat to omit
+ ** On MS Windows, you can pass `--without-libxml2' to configure.bat to omit
  support for libxml2, even if its presence is detected.
  
- ---
  ** On Mac OS X, the Nextstep port requires OS X 10.4 or later.
  
- ---
- ** On Mac OS X, configure no longer automatically adds the Fink /sw
+ ** On Mac OS X, configure no longer automatically adds the Fink "/sw"
  directories to the search path.  You must add them yourself if you want them.
  
  \f
diff --combined lisp/ChangeLog
 -2012-12-29  Chong Yidong  <cyd@gnu.org>
+ 2012-12-30  Glenn Morris  <rgm@gnu.org>
+       * net/mairix.el (rmail, rmail-summary-displayed, rmail-summary):
+       Remove unnecessary/buggy autoloads (missing interactive).  (Bug#13294)
+       (rmail-summary-displayed, rmail-summary): Declare.
+       (mairix-rmail-display): Just require rmail.
 -2012-12-29  Matt Fidler  <matt.fidler@alcon.com>  (tiny change)
++2012-12-30  Chong Yidong  <cyd@gnu.org>
+       * emacs-lisp/package.el (package-untar-buffer): Improve integrity
+       check for the tarball contents.
 -2012-12-29  Mark Lillibridge  <mark.lillibridge@hp.com>
++2012-12-30  Matt Fidler  <matt.fidler@alcon.com>  (tiny change)
+       * emacs-lisp/package.el (package-untar-buffer): Handle problematic
+       tarfile content listings (Bug#13136).
 -2012-12-28  Michael Albinus  <michael.albinus@gmx.de>
++2012-12-30  Mark Lillibridge  <mark.lillibridge@hp.com>
+       * mail/rmailmm.el (rmail-insert-mime-forwarded-message): Insert
+       the undecoded text of the message being forwarded.  (Bug#9521)
 +2012-12-30  Michael Albinus  <michael.albinus@gmx.de>
  
 -2012-12-26  Dmitry Gutov  <dgutov@yandex.ru>
+       * net/tramp-sh.el (tramp-set-file-uid-gid): Convert UID and GID to
+       integers, if they are real numbers.  (Bug#13282)
 +      * net/tramp-sh.el (tramp-sh-handle-set-file-selinux-context):
 +      Return `t' on success.
 +
 +      * net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add
 +      handler for `set-file-selinux-context'.
 +
 +2012-12-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-sh-handle-file-acl): Suppress basic attributes.
 +      (tramp-sh-handle-set-file-acl): Return `t' on success.
 +
 +2012-12-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (backup-buffer-copy, basic-save-buffer-2): If
 +      set-file-extended-attributes fails, fall back on set-file-modes
 +      instead of signaling an error.  (Bug#13298)
 +      (basic-save-buffer): Likewise.
 +
 +2012-12-29  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +
 +      * progmodes/python.el: Support other commands triggering
 +      python-indent-line so indentation cycling continues to work.
 +      (python-indent-trigger-commands): New defcustom.
 +      (python-indent-line): Use it.
 +
 +2012-12-29  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +
 +      * progmodes/python.el (python-shell-send-region): Add blank lines
 +      for non sent code so backtraces remain correct.
 +
 +2012-12-29  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +
 +      * progmodes/python.el: Remove cl dependency.
 +      (python-syntax-count-quotes): Replace incf call.
 +      (python-fill-string): Replace setf call.
 +
 +2012-12-29  Damien Cassou  <damien.cassou@gmail.com>
 +
 +      * info.el (info-other-window): New arg, for consistency with info.
 +
 +2012-12-28  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * mail/rmail.el (rmail-maybe-display-summary): Rewrite
 +      (Bug#13066).
 +
 +2012-12-28  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * epg.el (epg--start): Modify process-environment locally.
 +
 +2012-12-28  Daiki Ueno  <ueno@gnu.org>
 +
 +      * epg.el: Support pinentry-curses.
 +      Suggested by Werner Koch in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00755.html>.
 +      (epg-agent-file, epg-agent-mtime): New variable.
 +      (epg--start): Record the modified time of gpg-agent socket file,
 +      to restore Emacs frame after pinentry-curses termination.
 +      (epg-wait-for-completion): Restore Emacs frame here.
 +
 +2012-12-27  Juri Linkov  <juri@jurta.org>
 +
 +      * info.el (Info-file-completions): New variable.
 +      (Info-read-node-name-1): Complete node names in the Info file
 +      when a file name is given.  Call `Info-build-node-completions'
 +      with a file name.
 +      (Info-build-node-completions): Add new arg `file'.  When it is
 +      non-nil, visit it in a temporary buffer and cache its completions in
 +      `Info-current-file-completions'.  Move most of the function body to
 +      `Info-build-node-completions-1'.
 +      (Info-build-node-completions-1): New function with the body from
 +      `Info-build-node-completions'.  (Bug#12456)
 +
 +2012-12-27  Juri Linkov  <juri@jurta.org>
 +
 +      * frame.el (frame-maximization-style): Remove user option.
 +      (cycle-frame-maximized): Remove function.
 +      (toggle-frame-maximized): Rewrite and bind to M-<f10>.
 +      (toggle-frame-fullscreen): New command bound to <f11> instead of
 +      `toggle-frame-maximized'.
 +      http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00703.html
 +
 +2012-12-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-file-accessible-directory-p): New defun.
 +
 +      * net/tramp-adb.el (tramp-adb-file-name-handler-alist):
 +      * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
 +      * net/tramp-sh.el (tramp-sh-file-name-handler-alist): Add handler
 +      for `file-accessible-directory-p'.  (Bug#13275)
 +
 +2012-12-27  Sam Steingold  <sds@gnu.org>
 +
 +      * progmodes/cperl-mode.el (cperl-calculate-indent): Do not stagger
 +      continuations, see <http://stackoverflow.com/questions/3582436>.
 +
 +2012-12-27  Dmitry Gutov  <dgutov@yandex.ru>
  
        * progmodes/ruby-mode.el (ruby-indent-beg-re): Only allow "class",
        "module" and "def" to have indentation before them.  Regression
 -      from 109911 (see the new test).
 -
 -2012-12-24  Dmitry Gutov  <dgutov@yandex.ru>
 +      from 2012-09-07T04:15:56Z!dgutov@yandex.ru (see the new test).
  
        * progmodes/ruby-mode.el: Bump the version to 1.2 (Bug#13200).
  
 -2012-12-23  Alan Mackenzie  <acm@muc.de>
 +2012-12-27  Alan Mackenzie  <acm@muc.de>
  
        Speed up fontification where there's large brace blocks.
        * progmodes/cc-fonts.el (c-font-lock-enclosing-decls): Add a limit
        to a call of c-beginning-of-decl-1.
  
 +2012-12-27  Vitalie Spinu  <spinuvit@gmail.com>  (tiny change)
 +
 +      * comint.el (comint-adjust-window-point): New function.
 +      (comint-postoutput-scroll-to-bottom): Call
 +      comint-adjust-window-point (Bug#13248).
 +
 +2012-12-26  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (auto-mode-alist): `purecopy' the
 +      Rakefile regexp.
 +      (auto-mode-alist): Associate .gemspec files with ruby-mode
 +      (https://bugs.ruby-lang.org/issues/5453).
 +
 +2012-12-26  JĂ¼rgen Hötzel  <juergen@archlinux.org>
 +
 +      * net/tramp-adb.el (tramp-adb-get-ls-command): New defun.  Suppress
 +      coloring, if possible (required for BusyBox based systems like
 +      CynagenMod).
 +      (tramp-adb-handle-file-attributes)
 +      (tramp-adb-handle-insert-directory)
 +      (tramp-adb-handle-file-name-all-completions): Use it.
 +      (tramp-adb-get-toolbox): New defun.  Check for remote shell
 +      implementation (BusyBox or Toolbox).
 +
 +2012-12-24  Constantin Kulikov <zxnotdead@gmail.com>  (tiny change)
 +
 +      * startup.el (initial-buffer-choice): Allow function as value
 +      (Bug#13251).
 +      (command-line-1): Handle case where initial-buffer-choice
 +      specifies a function.
 +      * server.el (server-execute): Handle case where
 +      initial-buffer-choice specifies a function.
 +
 +2012-12-24  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * mail/smtpmail.el (smtpmail-try-auth-method): Refactored out into
 +      its own function.
 +      (smtpmail-try-auth-methods): Forget the user name/password if the
 +      login is unsuccessful (bug#12424).
 +
 +2012-12-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * notifications.el (notifications-notify): Protect body with
 +      `with-demoted-errors'.
 +
 +      * net/tramp-adb.el (tramp-adb-maybe-open-connection): Check
 +      properties of remote device.  Restart connection, if there is a
 +      change.
 +
  2012-12-21  Chong Yidong  <cyd@gnu.org>
  
        * sort.el (sort-subr): Doc fix (Bug#13056).
  
 -2012-12-20  Bastien Guerry  <bzg@gnu.org>
 +2012-12-21  Bastien Guerry  <bzg@gnu.org>
  
        * progmodes/etags.el (tags-search): Fix typo.  Bug #13232.
  
 -2012-12-11  Alan Mackenzie  <acm@muc.de>
 +2012-12-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * simple.el (process-file): Overwrite stderr file, if exists.
 +
 +2012-12-21  Daiki Ueno  <ueno@gnu.org>
 +
 +      * epg.el (epg--start): Print GPG_AGENT_INFO in the debug buffer.
 +      (epg-error): Set `error-message' property.
 +
 +2012-12-21  Chong Yidong  <cyd@gnu.org>
 +
 +      * international/mule-cmds.el (read-char-by-name): Signal an error
 +      if the user does not supply a valid character (Bug#13177).
 +
 +      * simple.el (transpose-subr-1): Preserve marker positions by
 +      changing the insertion sequence (Bug#13122).
 +
 +2012-12-21  Kelly Dean  <kellydeanch@yahoo.com>  (tiny change)
 +
 +      * simple.el (kill-region): Deactivate mark even for empty regions
 +      (Bug#13169).
 +
 +2012-12-21  Chong Yidong  <cyd@gnu.org>
 +
 +      * help-fns.el (describe-variable): Make sure we get the right
 +      buffer name (Bug#13105).  Suggested by Kelly Dean.
 +
 +2012-12-20  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * comint.el (comint-redirect-previous-input-string): New variable.
 +      (comint-redirect-setup, comint-redirect-cleanup)
 +      (comint-redirect-preoutput-filter): Use it.  Fixes redirection bug.
 +      (comint-redirect-preoutput-filter): Fix verbose message.
 +
 +2012-12-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * progmodes/grep.el (rgrep): Escape command line.  Sometimes, it
 +      is too long for Tramp.  See discussion in
 +      <http://thread.gmane.org/gmane.emacs.tramp/8233/focus=8244>.
 +
 +      * progmodes/compile.el (compilation-start): Remove line escape
 +      template.
 +
 +2012-12-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * vc/ediff-ptch.el (ediff-map-patch-buffer): Use `point-min-marker'.
 +      Adjust comment.
 +
 +2012-12-19  Jonas Bernoulli  <jonas@bernoul.li>
 +
 +      * emacs-lisp/lisp-mnt.el (lm-section-end): Always end before the
 +      following non-comment text (bug#13207).
 +      (lm-header-multiline): Continuation lines need to be indented more than
 +      the first line.
 +      (lm-homepage): New function.
 +      (lm-with-file): Don't be confused if narrowing is in effect.
 +
 +      * vc/diff-mode.el (diff-post-command-hook): Don't ignore changes at the
 +      very beginning of a hunk (e.g. killing the first line).
 +
 +2012-12-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-sh-handle-file-acl): Delete empty lines
 +      and text properties from returned ACL string.
 +      (tramp-sh-handle-set-file-acl): Do not use additional parentheses
 +      for "setfacl" command.
 +
 +2012-12-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-error-with-buffer): Give a hint to use
 +      `tramp-cleanup-this-connection', when the process has died.
 +      (Bug#13151)
 +
 +2012-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * icomplete.el (icomplete-completions): Also use â€¦ to truncate prefix.
 +
 +2012-12-17  Kevin Ryde  <user42@zip.com.au>
 +
 +      * files.el (auto-save-file-name-p): Use \` and \' (bug#13186).
 +
 +2012-12-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Add support for preserving ACL entries of files.
 +
 +      * net/tramp.el (tramp-file-name-for-operation): Add `file-acl' and
 +      `set-file-acl' handlers.
 +
 +      * net/tramp-adb.el (tramp-adb-handle-copy-file):
 +      Handle PRESERVE-EXTENDED-ATTRIBUTES.
 +
 +      * net/tramp-compat.el (tramp-compat-copy-file):
 +      Handle PRESERVE-EXTENDED-ATTRIBUTES.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
 +      Add `file-acl' and `set-file-acl' handlers.
 +      (tramp-gvfs-handle-copy-file):
 +      Handle PRESERVE-EXTENDED-ATTRIBUTES.
 +      (tramp-gvfs-handle-file-acl, tramp-gvfs-handle-set-file-acl):
 +      New defuns.
 +
 +      * net/tramp-sh.el (tramp-sh-file-name-handler-alist):
 +      Add `file-acl' and `set-file-acl' handlers.
 +      (tramp-remote-acl-p, tramp-sh-handle-file-acl)
 +      (tramp-sh-handle-set-file-acl): New defuns.
 +      (tramp-sh-handle-copy-file, tramp-do-copy-or-rename-file):
 +      Handle PRESERVE-EXTENDED-ATTRIBUTES.
 +
 +      * net/tramp-smb.el (tramp-smb-file-name-handler-alist):
 +      Add `file-acl' and `set-file-acl' handlers.
 +      (tramp-smb-handle-copy-file): Handle PRESERVE-EXTENDED-ATTRIBUTES.
 +
 +2012-12-17  Kelly Dean  <kellydeanch@yahoo.com> (tiny change)
 +
 +      * help-macro.el (make-help-screen): Instead of switch-to-buffer
 +      use pop-to-buffer with NORECORD argument t.  As buffer name, use
 +      *Metahelp* with a leading space (Bug#13190).
 +
 +2012-12-16  Romain Francoise  <romain@orebokech.com>
 +
 +      * files.el (file-extended-attributes)
 +      (set-file-extended-attributes): New functions.
 +      (backup-buffer): Use them to handle both SELinux context and ACL
 +      entries.
 +      (backup-buffer-copy): Work with an alist of extended attributes,
 +      rather than an SELinux context.
 +      (basic-save-buffer-2): Ditto.
 +
 +2012-12-16  Timo Myyrä  <timo.myyra@gmail.com>
 +
 +      * battery.el (battery-bsd-apm): New function.
 +
 +2012-12-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-standard-date-formats): Adjust one of the
 +      standard date formats.
 +
 +2012-12-15  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-mode-map): Bind `C-x 8 RET' to
 +      `isearch-insert-char-by-name'.
 +      (with-isearch-suspended): New defmacro with body mostly from
 +      `isearch-edit-string' except the part that sets
 +      `isearch-new-string' and `isearch-new-message'.
 +      (isearch-edit-string): Use new macro `with-isearch-suspended' with
 +      body that sets `isearch-new-string' and `isearch-new-message'.
 +      (isearch-insert-char-by-name): New command.
 +      * international/mule-cmds.el (read-char-by-name): Let-bind
 +      `enable-recursive-minibuffers' to t.
 +      http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00234.html
 +
 +2012-12-15  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-delete-char, isearch-del-char): Doc fix.
 +      (Bug#13175)
 +
 +2012-12-15  Christopher Schmidt  <christopher@ch.ristopher.com>
 +
 +      * dired-x.el (dired-guess-shell-command): Put colon at the end of
 +      the prompt.  (Bug#13045)
 +
 +2012-12-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/macroexp.el (macroexp--warn-and-return):
 +      Try to include filename in non-bytecomp warning.  (Bug#13132)
 +
 +2012-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix permissions bugs with setgid directories etc. (Bug#13125)
 +      * files.el (backup-buffer): Don't rely on 9th output of
 +      file-attributes, as it's now a placeholder.  Instead, use the new
 +      optional arg of file-ownership-preserved-p.
 +      (file-ownership-preserved-p): New optional arg GROUP.
 +      Fix mishandling of setuid directories that would cause this
 +      function to return t when it should have returned nil.
 +      Document what happens if the file does not exist, and when
 +      it's not known whether the ownership will be preserved.
 +      * net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p):
 +      Likewise.
 +      (tramp-get-local-gid): Use group-gid for integer, as that's
 +      faster and more reliable.
 +
 +2012-12-14  Julien Danjou  <julien@danjou.info>
 +
 +      * progmodes/sql.el (sql-mode-postgres-font-lock-keywords):
 +      Update keywords list, data type and PL/pgSQL.
 +
 +2012-12-14  Dave Abrahams  <dave@boostpro.com>
 +
 +      * vc/ediff-util.el (ediff-buffer-type): New function.
 +      (ediff-clone-buffer-for-current-diff-comparison): Compute the buf-type
 +      rather than taking it as as argument.
 +      (ediff-inferior-compare-regions): Adjust calls accordingly (bug#11319).
 +
 +2012-12-14  Ryan Crum  <ryan.crum@eleostech.com>
 +
 +      * json.el: Add pretty-print option (bug#12634).
 +      (json-encoding-separator, json-encoding-default-indentation)
 +      (json--encoding-current-indentation, json-encoding-pretty-print)
 +      (json-encoding-lisp-style-closings): New vars.
 +      (json--with-indentation): New macro.
 +      (json-encode-hash-table, json-encode-alist, json-encode-plist)
 +      (json-encode-array): Use it to obey json-encoding-pretty-print.
 +      (json-pretty-print-buffer, json-pretty-print): New commands.
 +
 +2012-12-14  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-function):
 +      Extract `ruby-syntax-propertize-expansions'.
 +      (ruby-syntax-propertize-expansions): Only change syntax on
 +      certain string delimiters, to punctuation.  This way the common
 +      functions like forward-word and thing-at-point still work.
 +      (ruby-match-expression-expansion): Improve readability.
 +      (ruby-block-contains-point): New function.
 +      (ruby-add-log-current-method): Handle several edge cases.
 +
 +2012-12-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/edebug.el (edebug-unload-function): Make sure that
 +      unload-feature finishes even when aborting an ongoing edebug session.
 +      Also, do not worry about edebug-mode, unload-feature takes care of it.
 +
 +2012-12-13  Andreas Schwab  <schwab@suse.de>
 +
 +      * net/tls.el (tls-program): Update customize type.
 +
 +2012-12-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/edebug.el (edebug--require-cl-read): New function.
 +      (edebug-setup-hook, cl-read-load-hooks): Use it.
 +      (edebug-unload-function): New function.  (Bug#13163)
 +
 +2012-12-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-adb.el (tramp-adb-file-name-p): Make it a defsubst.
 +      Otherwise, there could be errors in autoloading.  (Bug#13151)
 +
 +2012-12-13  JĂ¼rgen Hötzel  <juergen@archlinux.org>
 +
 +      * net/tramp-adb.el (tramp-adb-wait-for-output): Remove spurious " ^H"
 +      sequences.
 +
 +2012-12-13  Alan Mackenzie  <acm@muc.de>
  
        Make CC Mode not hang when _some_ lines end in CRLF.  Bug #11841.
        * progmodes/cc-engine.el (c-backward-comments): Add code to work
        around `forward-comment' not recognizing ^M as whitespace.
  
 -2012-12-11  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +2012-12-13  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
  
        * progmodes/python.el (python-skeleton-class)
        (python-skeleton-def): Do not add space after defun name.
  
 -2012-12-09  Chong Yidong  <cyd@gnu.org>
 +2012-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/cl.el (letf): Make it an alias of cl-letf.
 +      (cl--symbol-function): Remove (now that funbound is like nil).
 +
 +2012-12-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * button.el (button--area-button-p): Fix typo.
 +
 +2012-12-12  Sam Steingold  <sds@gnu.org>
 +
 +      * frame.el (frame-maximization-style): New user option.
 +      (toggle-frame-maximized): Toggle frame maximization according to
 +      `frame-maximization-style', bound to <f11>.
 +      (cycle-frame-maximized): Cycle between all maximization styles and
 +      non-maximized frame, bound to shift-<f11>.
 +
 +2012-12-12  David CadĂ©  <codename68@gmail.com>
 +
 +      * mpc.el (mpc-format): Use truncate-string-to-width (bug#13143).
 +
 +2012-12-12  Jonas Bernoulli  <jonas@bernoul.li>
 +
 +      * lisp/emacs-lisp/eieio.el: Prettier object pretty-printing (bug#13115).
 +      (eieio-override-prin1): Don't quote kewords and booleans.
 +      (object-write) <eieio-default-superclass>: Don't put closing parens
 +      on new line, avoid needless empty lines, align values that are objects
 +      with the slot keyword (instead of beginning on the same line).
 +      (eieio-list-prin1): Align value with slot keyword; increase
 +      eieio-print-depth before printing members of the list.
 +
 +2012-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * mail/emacsbug.el (report-emacs-bug): Move the intangible text to
 +      a display text-property.
 +      (report-emacs-bug-hook): Don't bother deleting it any more.
 +
 +      * hilit-chg.el (highlight-save-buffer-state): Delete.
 +      Use with-silent-modifications instead.
 +      (hilit-chg-set-face-on-change): Only fixup the text that's modified.
  
 -      * simple.el (set-mark-default-inactive): Mark as obsolete, for
 -      removal after 24.3.
 +      * button.el: Handle buttons in display text-properties.
 +      (button--area-button-p, button--area-button-string):
 +      Use (STRING . STRING-POS) representation instead of just STRING.
  
 -2012-12-08  Dani Moncayo <dmoncayo@gmail.com>
 +2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (compile4-SH): Fix a typo that caused term
 +      subdirectory be skipped.
 +
 +2012-12-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * net/rcirc.el (rcirc-urls, rcirc-condition-filter): Doc fixes.
 +
 +      * progmodes/f90.el (f90-line-continued, f90-indent-region):
 +      Treat preprocessor lines embedded in continuations like comments.
 +      (f90-indent-line): Special-case preprocessor lines.  (Bug#13138)
 +
 +2012-12-11  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-standard-date-formats):  Add more date
 +      formats.
 +      * calc/calc-forms.el (math-parse-iso-date): New function.
 +      (math-parse-date): Use `math-parse-iso-date' when appropriate.
 +      (math-parse-iso-date-validate): Add extra error checking.
 +      (calc-date-notation): Add ability to access new date formats.
 +
 +2012-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * hi-lock.el (hi-lock--regexps-at-point): Fix boundary case for
 +      font-lock as well as when there's no text-property.
 +
 +2012-12-10  Jambunathan K  <kjambunathan@gmail.com>
 +
 +      * hi-lock.el: Refine the choice of default face.
 +      (hi-lock-keyword->face): New function.  Use it wherever we used
 +      cadadadr instead.
 +      (hi-lock--regexps-at-point): Ignore faces that can't come from hi-lock.
 +      (hi-lock--last-face): Remove var.
 +      (hi-lock--unused-faces): New var to replace it.
 +      (hi-lock-read-face-name): Use/maintain it.
 +      (hi-lock-unface-buffer): Maintain it.  Fix error for the C-u case.
 +      (hi-lock-set-pattern): Ignore new rule if it has the same regexp even
 +      if it has another face.
 +
 +2012-12-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * subr.el (w32notify-handle-event): New function.
 +      (inotify-handle-event): Doc fix.
 +
 +2012-12-10  RĂ¼diger Sonderfeld  <ruediger@c-plusplus.de>
 +
 +      * subr.el (inotify-event-p, inotify-handle-event): New functions.
 +
 +2012-12-10  Dani Moncayo <dmoncayo@gmail.com>
  
        * simple.el (just-one-space): Doc fix.
  
 -2012-12-07  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-10  Eli Zaretskii  <eliz@gnu.org>
  
 -      * textmodes/texinfo.el (texinfo-enable-quote-envs): Add
 -      "smallexample".
 +      * textmodes/texinfo.el (texinfo-enable-quote-envs): Add "smallexample".
  
 -2012-12-07  Le Wang  <l26wang@gmail.com>
 +2012-12-10  Le Wang  <l26wang@gmail.com>
  
        * hilit-chg.el (hilit-chg-set-face-on-change): Don't burp in
        narrowed buffer (bug#12361).
  
 -2012-12-07  Michael Heerdegen  <michael_heerdegen@web.de>
 -
 -      * emacs-lisp/debug.el (debug): Fix hard-coded frame counts (bug#10025).
 -      Virtually backported from trunk.
 -
 -2012-12-07  Juanma Barranquero  <lekktu@gmail.com>
 +2012-12-10  Juanma Barranquero  <lekktu@gmail.com>
  
        * vc/vc-hooks.el (vc-state): Doc fix.
  
 -2012-12-06  Glenn Morris  <rgm@gnu.org>
 +2012-12-10  Glenn Morris  <rgm@gnu.org>
  
        * mail/rmail.el (rmail-maybe-display-summary):
        Preserve buffer, in case select-window changes it.  (Bug#13066)
  
 -2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/cl.el, emacs-lisp/cl-lib.el: Move cl-unload-function and
        cl-load-hook where they belong.
  
 +2012-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/cl-lib.el (cl-declaim): Paren typo.
 +
 +2012-12-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Parallelize byte compilation on MS-Windows.
 +      * makefile.w32-in (WINS_BASIC1, WINS_BASIC2, WINS_BASIC3)
 +      (WINS_BASIC4): New variables, subdivide subdirectories into 4 parts.
 +      (WINS_BASIC): Define as concatenation of the above.
 +      (compile): Subdivide into 4 separate and independent jobs that can
 +      be run in parallel.
 +      (compile0-CMD, compile0-SH): New targets for compiling
 +      COMPILE_FIRST files, which are prerequisites for the rest of the
 +      byte-compilation.
 +      (compile1-CMD, compile2-CMD, compile3-CMD, compile4-CMD):
 +      New targets for parallel compilation with cmd.exe.
 +      (compile1-SH, compile2-SH, compile3-SH, compile4-SH): Ditto for
 +      compiling under a Unixy shell.
 +
 +2012-12-09  Chong Yidong  <cyd@gnu.org>
 +
 +      * simple.el (set-mark-default-inactive): Delete this
 +      accidentally-introduced option.
 +      (set-mark-command, exchange-point-and-mark): Remove calls.
 +
 +2012-12-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/lisp-mode.el (eval-defun-1): Doc fix.
 +      Respect a defcustom's :set function, if appropriate.  (Bug#109)
 +      (eval-defun): Doc fix.
 +
 +2012-12-08  Juri Linkov  <juri@jurta.org>
 +
 +      * info.el (Info-copy-current-node-name, Info-breadcrumbs)
 +      (Info-fontify-node, Info-bookmark-make-record): Remove the
 +      file extension from Info-current-file (Bug#13016).
 +
 +2012-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * hi-lock.el (hi-lock-unface-buffer): If there's no matching regexp at
 +      point, still provide some default.
 +      (hi-lock--regexps-at-point): Don't enforce a "hi-lock-" prefix on face
 +      names, since we don't use it right now.  Actually return the list.
 +      (hi-lock-file-patterns, hi-lock-interactive-patterns): Use defvar-local.
 +
 +2012-12-07  Chong Yidong  <cyd@gnu.org>
 +
 +      * novice.el (disabled-command-function): Remove a spurious help
 +      xref (Bug#13043).  Suggested by Kelly Dean.
 +
 +      * subr.el (text-clone-maintain): Fix clone overlay deletion when a
 +      syntax is specified (Bug#13025).
 +
 +      * info.el (Info-set-mode-line): Remove the file extension from
 +      Info-current-file if there is one (Bug#13016).
 +
 +2012-12-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/rmail.el (rmail-mime-decoded): New permanent local.
 +      (rmail-show-message-1): Set rmail-mime-decoded when appropriate.
 +      * mail/rmailedit.el (rmail-cease-edit): Respect rmail-mbox-format
 +      and rmail-mime-decoded.  (Bug#9841)
 +
 +      * mail/unrmail.el (unrmail-mbox-format): New option.  (Bug#6574)
 +      (batch-unrmail, unrmail): Doc fixes.
 +      (unrmail): Respect unrmail-mbox-format.
 +      * mail/rmail.el (rmail-mbox-format): New option.
 +      (rmail-show-message-1): Respect rmail-mbox-format.
 +
 +2012-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/cl-macs.el (cl-tagbody): New macro.
 +
 +2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Further cleanup of the "cl-" namespace.  Fit CL in 80 columns.
 +      * emacs-lisp/cl-macs.el (cl--pop2, cl--optimize-safety)
 +      (cl--optimize-speed, cl--not-toplevel, cl--parse-loop-clause)
 +      (cl--expand-do-loop, cl--proclaim-history, cl--declare-stack)
 +      (cl--do-proclaim, cl--proclaims-deferred): Rename from the "cl-" prefix.
 +      (cl-progv): Don't rely on dynamic scoping to find the body.
 +      * emacs-lisp/cl-lib.el (cl--optimize-speed, cl--optimize-safety)
 +      (cl--proclaims-deferred): Rename from the "cl-" prefix.
 +      (cl-declaim): Use backquotes.
 +      * emacs-lisp/cl-extra.el (cl-make-random-state, cl-random-state-p):
 +      Use "cl--" prefix for the object's tag.
 +
 +      * ses.el: Use advice-add/remove.
 +      (ses--advice-copy-region-as-kill, ses--advice-yank): New functions.
 +      (copy-region-as-kill, yank): Use advice-add.
 +      (ses-unload-function): Use advice-remove.
 +
 +2012-12-06  Jonas Bernoulli  <jonas@bernoul.li>
 +
 +      * button.el: Make them work in header-lines (bug#12817).
 +      (button-map): Add bindings for header-line and mode-line use.
 +      (button-get, button-put, button-label): `button' may now be a string.
 +      (button-activate): Don't make it a defsubst.
 +      (button--area-button-p, button--area-button-string): New functions.
 +      (make-text-button): Fix the return value when `beg' was a string.
 +      (push-button): Handle the mode-line case.
 +
 +2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/sql.el: Use cl-lib and lexical-binding; various cleanup.
 +      (sql-signum): Remove.  Use `cl-signum' instead.
 +      (sql-read-passwd): Remove; use read-passwd instread.
 +      (sql-get-login-ext): Use read-string.
 +      (sql-get-login): Use dolist and pcase.
 +      (sql--completion-table): Rename from sql-try-completion.
 +      Use complete-with-action.
 +      (sql-mode): Don't change abbrev-all-caps globally.
 +      (sql-connect): Don't rely on dynamic scoping for `new-name'.
 +      (sql-postgres-completion-object): Initialize vars in their `let'.
 +      (sql-comint-sybase, sql-comint-sqlite, sql-comint-mysql)
 +      (sql-comint-solid, sql-comint-ms, sql-comint-postgres)
 +      (sql-comint-interbase): Use a single append, without setq.
 +      (sql-comint-linter): Same, and unwind-protect the LINTER_MBX var.
 +
 +      * hi-lock.el: Rework the default face and the serialize regexp code.
 +      (hi-lock--auto-select-face-defaults): Remove.
 +      (hi-lock-string-serialize-serial): Remove.
 +      (hi-lock--hashcons-hash): Rename from hi-lock-string-serialize-hash;
 +      make weak.
 +      (hi-lock--hashcons): Rename from hi-lock-string-serialize, return an
 +      equal string.
 +      (hi-lock-set-pattern): Adjust accordingly.
 +      (hi-lock--regexps-at-point): Simplify accordingly.
 +      (hi-lock--auto-select-face-defaults): Remove.
 +      (hi-lock--last-face): New var to replace it.
 +      (hi-lock-read-face-name): Rewrite (bug#11095).
 +      (hi-lock-unface-buffer): Arrange for the face to be the next default.
 +
 +2012-12-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-replace-environment-variables):
 +      Hide compiler warning.
 +      (tramp-file-name-for-operation): Remove `executable-find',
 +      `start-process', `call-process' and `call-process-region'.
 +
 +      * net/tramp-compat.el (top): Don't require 'tramp-util and 'tramp-vc.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-dbus-event-error): Ensure backward
 +      compatibility.
 +
 +      * net/tramp-sh.el (top): Remove `tramp-sh-handle-call-process-region'.
 +
  2012-12-06  Chong Yidong  <cyd@gnu.org>
  
        * ffap.el (ffap-replace-file-component): Fix typo.
  
 -2012-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * progmodes/octave-mod.el (octave-mark-block): Move out of tokens and
        fix open-paren-like token test (bug#12785).
  
 -2012-12-04  Glenn Morris  <rgm@gnu.org>
 +2012-12-06  Glenn Morris  <rgm@gnu.org>
  
        * mail/rmailsum.el (rmail-new-summary): Tweak for
        rmail-maybe-display-summary changing buffer.  (Bug#13066)
  
 -2012-12-03  Juri Linkov  <juri@jurta.org>
 +2012-12-06  Juri Linkov  <juri@jurta.org>
  
        * info.el (Info-fontify-node): Don't hide the last newline.
        (Bug#12272)
  
 -2012-12-01  Leo Liu  <sdl.web@gmail.com>
 +2012-12-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/mailabbrev.el (mail-abbrev-expand-wrapper): Work in minibuffer
 +      so as to enable message-read-from-minibuffer to expand mail aliases.
 +
 +2012-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuf-eldef.el (minibuf-eldef-update-minibuffer): Don't mess with
 +      the `intangible' property.
 +      Suggested by Christopher Schmidt <christopher@ch.ristopher.com>
 +
 +2012-12-05  Deniz Dogan  <deniz@dogan.se>
 +
 +      * net/rcirc.el (rcirc-urls): Update documentation.
 +      (rcirc-condition-filter): New function.
 +      (rcirc-browse-url, rcirc-markup-urls): Use only URLs before point
 +      and exclude consecutive duplicate URLs (Bug#6082).
 +
 +2012-12-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
 +      Check return code of copy command.
 +
 +      * net/tramp-adb.el (tramp-adb-sdk-dir, tramp-adb-prompt):
 +      Use group `tramp'.  Add version.
 +
 +2012-12-05  Chong Yidong  <cyd@gnu.org>
 +
 +      * ffap.el (ffap-url-regexp): Don't require matching at front of
 +      string (Bug#4952).
 +      (ffap-url-p): If only a substring matches, return that.
 +      (ffap-url-at-point): Use the return value of ffap-url-p.
 +      (ffap-read-file-or-url, ffap-read-file-or-url-internal)
 +      (find-file-at-point, dired-at-point, dired-at-point-prompter)
 +      (ffap-guess-file-name-at-point): Likewise.
 +      (ffap-replace-file-component): Fix typo.
 +
 +      * info.el (info-display-manual): Add existing Info buffers, whose
 +      files may not be in Info-directory-list, to the completion.
 +      (info--manual-names): New helper function.
 +
 +2012-12-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-hg.el (vc-hg-resolve-when-done, vc-hg-find-file-hook):
 +      New functions, for detecting and resolving conflicts.  (Bug#10709)
 +
 +2012-12-04  Jambunathan K  <kjambunathan@gmail.com>
 +
 +      * hi-lock.el (hi-lock-auto-select-face): New user variable.
 +      (hi-lock-auto-select-face-defaults): New buffer local variable.
 +      (hi-lock-read-face-name): Honor `hi-lock-auto-select-face'.
 +      (hi-lock-unface-buffer): Prompt user with useful defaults.
 +      With prefix arg, unhighlight all hi-lock patterns in buffer.
 +
 +2012-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * obsolete/terminal.el, obsolete/longlines.el: Add obsolecence info.
 +
 +2012-12-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * Makefile.in (TRAMP_SRC):
 +      * makefile.w32-in (TRAMP_SRC): Add tramp-adb.el.
 +
 +2012-12-04  Juergen Hoetzel  <juergen@archlinux.org>
 +
 +      * net/tramp-adb.el: New package.
 +
 +2012-12-04  Chong Yidong  <cyd@gnu.org>
 +
 +      * terminal.el: Move to obsolete/.
 +
 +      * longlines.el: Move to obsolete/.
 +
 +      * vc/ediff-diff.el (ediff-extract-diffs, ediff-extract-diffs3):
 +      Remove code referring to longlines mode.
 +
 +2012-12-03  Juri Linkov  <juri@jurta.org>
 +
 +      * sort.el (delete-duplicate-lines): New command.  (Bug#13032)
 +
 +2012-12-03  AgustĂ­n MartĂ­n Domingo  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process)
 +      (ispell-start-process, ispell-internal-change-dictionary):
 +      Make sure personal dictionary name is expanded after initial
 +      `default-directory' value. Use expanded strings for
 +      keep/restart checks and for value (Bug#13019).
 +
 +2012-12-03  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-forms.el (math-date-to-iso-dt): Fix weekday number.
 +
 +2012-12-03  Leo Liu  <sdl.web@gmail.com>
  
        * files.el (dir-locals-read-from-file): Check file non-empty
        before reading.  (Bug#13038)
  
 -2012-11-28  Glenn Morris  <rgm@gnu.org>
 +2012-12-03  Glenn Morris  <rgm@gnu.org>
  
        * jka-cmpr-hook.el (jka-compr-get-compression-info):
        Remove any version extension before checking filename.  (Bug#13006)
        (jka-compr-compression-info-list): Belated :version bump.
  
 -2012-11-28  Chong Yidong  <cyd@gnu.org>
 +2012-12-03  Chong Yidong  <cyd@gnu.org>
  
        * simple.el (transient-mark-mode): Doc fix (Bug#11523).
  
        * buff-menu.el (Buffer-menu-delete-backwards, Buffer-menu-mode)
        (buffer-menu): Doc fix (Bug#12294).
  
 -2012-11-27  Roland Winkler  <winkler@gnu.org>
 +2012-12-03  Roland Winkler  <winkler@gnu.org>
  
        * calendar/diary-lib.el (diary-header-line-format): Use keybinding
        of diary-show-all-entries in the diary buffer (Bug#12994).
  
 -2012-11-27  Michael Albinus  <michael.albinus@gmx.de>
 +2012-12-03  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp-sh.el (tramp-perl-encode): Use "read STDIN" instead of
        "<STDIN>".  This is binary safe.
  
 +2012-12-03  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-forms.el (math-absolute-from-iso-dt)
 +      (math-date-to-iso-dt, math-parse-iso-date-validate)
 +      (math-iso-dt-to-date): New functions.
 +      (math-fd-iso-dt, math-fd-isoyear, math-fd-isoweek)
 +      (math-fd-isoweekday): New variables.
 +      (calc-date-notation, math-parse-standard-date, math-format-date)
 +      (math-format-date-part): Add support for more formatting codes.
 +
 +2012-12-02  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * vc/vc.el (vc-delete-file, vc-rename-file): Default to the
 +      current buffer's file name when called interactively (Bug#12488).
 +
 +2012-12-02  Juri Linkov  <juri@jurta.org>
 +
 +      * info.el (info-display-manual): Don't clobber an existing Info
 +      buffer (Bug#10770).  Add completion (Bug#10771).
 +
 +2012-12-01  Yuya Nishihara  <yuya@tcha.org>  (tiny change)
 +
 +      * vc/vc-hooks.el (vc-find-file-hook): Expand buffer-file-truename
 +      before using it for comparison (Bug#5297).
 +
 +2012-12-01  Jari Aalto  <jari.aalto@cante.net>
 +
 +      * textmodes/css-mode.el (css-current-defun-name): New function.
 +      (css-mode): Use it.
 +
 +      * textmodes/sgml-mode.el (html-current-defun-name): New function.
 +      (html-mode): Use it.
 +
 +2012-12-01  Chong Yidong  <cyd@gnu.org>
 +
 +      Modularize add-log-current-defun (Bug#2224).
 +      Suggested by Jari Aalto.
 +
 +      * vc/add-log.el (add-log-current-defun-function): Doc fix.
 +      (add-log-current-defun): Move mode-specific code to other files.
 +      (add-log-lisp-like-modes, add-log-c-like-modes)
 +      (add-log-tex-like-modes): Variables deleted.
 +
 +      * emacs-lisp/lisp-mode.el (lisp-current-defun-name): New.
 +      (lisp-mode-variables): Use it.
 +
 +      * progmodes/cc-mode.el (c-common-init):
 +      * progmodes/cperl-mode.el (cperl-mode): Set a value for
 +      add-log-current-defun-function.
 +
 +      * progmodes/m4-mode.el (m4-current-defun-name): New function.
 +      (m4-mode): Use it.
 +
 +      * progmodes/perl-mode.el (perl-current-defun-name): New.
 +      (perl-mode): Use it.
 +
 +      * progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
 +      Use lisp-current-defun-name.
 +
 +      * textmodes/tex-mode.el (tex-current-defun-name): New.
 +      (tex-common-initialization): Use it.
 +
 +      * textmodes/texinfo.el (texinfo-current-defun-name): New.
 +      (texinfo-mode): Use it.
 +
 +2012-12-01  Chong Yidong  <cyd@gnu.org>
 +
 +      * emacs-lisp/lisp-mode.el (lisp-mode-variables, lisp-mode):
 +      * progmodes/autoconf.el (autoconf-mode):
 +      * progmodes/js.el (js-mode):
 +      * progmodes/make-mode.el (makefile-mode, makefile-makepp-mode)
 +      (makefile-bsdmake-mode, makefile-imake-mode, makefile-browse):
 +      * progmodes/perl-mode.el (perl-mode):
 +      * progmodes/sh-script.el (sh-mode, sh-set-shell):
 +      * textmodes/css-mode.el (css-mode):
 +      * textmodes/sgml-mode.el (html-mode, sgml-mode)
 +      (sgml-tags-invisible, sgml-guess-indent):
 +      * textmodes/tex-mode.el (tex-common-initialization)
 +      (latex-complete-bibtex-keys, tex-shell, tex-main-file)
 +      (doctex-mode, plain-tex-mode, latex-mode):
 +      * textmodes/texinfo.el (texinfo-mode): Use setq-local.
 +
 +2012-12-01  Kirk Kelsey  <kirk.kelsey@0x4b.net>
 +
 +      * vc/vc-hg.el (vc-hg-next-revision):
 +      Ensure use of default "tip" output format.  (Bug#6968)
 +
 +2012-12-01  Kim F. Storm  <storm@cua.dk>
 +
 +      * startup.el (fancy-startup-tail): Add a clickable link
 +      (Bug#2176).
 +
 +2012-12-01  Chong Yidong  <cyd@gnu.org>
 +
 +      * startup.el (fancy-startup-tail): Improve the message about
 +      auto-save files (Bug#2176).
 +
 +      * files.el (recover-session): Improve the descriptive message, and
 +      use substitute-command-keys.
 +
 +2012-12-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * ido.el (ido-file-internal):
 +      Handle other-window, other-frame for dired.  (Bug#13036)
 +
 +2012-11-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * icomplete.el (icomplete-separator): Fix :version.
 +
 +2012-11-30  Chong Yidong  <cyd@gnu.org>
 +
 +      * shell.el (shell): For C-u M-x shell, use an inactive shell
 +      buffer as the default (Bug#1975).
 +      (shell-apply-ansi-color, shell-reapply-ansi-color): New functions.
 +      (shell-mode): Use them to reapply ansi colorization if Shell mode
 +      is re-enabled.
 +
 +2012-11-30  Yuriy Vostrikov  <delamonpansie@gmail.com>  (tiny change)
 +
 +      * vc/vc-git.el (vc-git-command): Disable the pager (Bug#6137).
 +
 +2012-11-30  Samuel Bronson  <naesten@gmail.com>
 +
 +      * progmodes/grep.el (grep-compute-defaults): Do not pass the -e
 +      flag to xargs, for compatibility with BSD xargs (Bug#11703).
 +
 +2012-11-30  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 +
 +      * textmodes/fill.el (fill-region-as-paragraph): Handle overshoot
 +      by move-to-column (Bug#3234).
 +
 +2012-11-30  Chong Yidong  <cyd@gnu.org>
 +
 +      * longlines.el (longlines-wrap-line, longlines-encode-region):
 +      Preserve text properties (Bug#1425).
 +
 +2012-11-30  OKAZAKI Tetsurou  <okazaki.tetsurou@gmail.com>  (tiny change)
 +
 +      * vc/vc.el (vc-register): Allow registering a file which is
 +      already registered with a different backend (Bug#10589).
 +
 +2012-11-29  Jambunathan K  <kjambunathan@gmail.com>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * icomplete.el: Change separator; add ido-style commands.
 +      (icomplete-show-key-bindings): Remove custom var.
 +      (icomplete-get-keys): Remove function.
 +      (icomplete-forward-completions, icomplete-backward-completions):
 +      New commands.
 +      (icomplete-minibuffer-map): New var.
 +      (icomplete-minibuffer-setup): Use it.
 +      (icomplete-exhibit): Don't delay if the list of completions is known.
 +      (icomplete-separator): New custom.
 +      (icomplete-completions): Use it.
 +      * minibuffer.el (completion-all-sorted-completions): Delete duplicates.
 +      (minibuffer-force-complete-and-exit): New command.
 +      (minibuffer--complete-and-exit): New function extracted from
 +      minibuffer-complete-and-exit.
 +      (minibuffer-complete-and-exit): Use it.
 +
 +      * progmodes/etags.el (visit-tags-table-buffer): Give a more precise
 +      error message when the file doesn't exist (bug#12974).
 +
 +2012-11-29  Kelly Dean  <kellydeanch@yahoo.com>  (tiny change)
 +
 +      * simple.el (activate-mark): Run activate-mark-hook (bug#13027).
 +
 +2012-11-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.el (hack-dir-local-variables): Warn if try to set
 +      coding via dir-locals, since it doesn't work.  (Bug#7169)
 +
 +      Add desktop support for restoring vc-dir buffers.  (Bug#10606)
 +      * vc/vc-dir.el (vc-dir-mode): Autoload it (for desktop restore).
 +      Set buffer-local value of desktop-save-buffer.
 +      (vc-dir-desktop-buffer-misc-data, vc-dir-restore-desktop-buffer):
 +      New functions.
 +      (desktop-buffer-mode-handlers): Add vc-dir-mode entry.
 +      * desktop.el (desktop-save-buffer-p): Treat vc-dir like dired.
 +
 +      * files.el (inhibit-local-variables-ignore-case): New.  (Bug#10610)
 +      (inhibit-local-variables-p): Use inhibit-local-variables-ignore-case.
 +      Doc fix.
 +      (inhibit-local-variables-regexps, inhibit-local-variables-suffixes):
 +      Doc fixes.
 +
 +2012-11-28  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-forms.el (calc-date-notation): Fix regexp
 +      used to find time codes.  Fix symbol for seconds.
 +
 +2012-11-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/derived.el (derived-mode-make-docstring):
 +      Don't mention "abbrev" or "syntax" if nil.  (Bug#11277)
 +
  2012-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * textmodes/table.el (table-insert): Don't use `symbol-name' on
        lexically scoped variables (bug#13005).
  
 -2012-11-26  Glenn Morris  <rgm@gnu.org>
 +2012-11-27  Glenn Morris  <rgm@gnu.org>
  
        * vc/vc-hooks.el (vc-mistrust-permissions):
        Default to t, to avoid data-loss.  (Bug#11490)
  
 -2012-11-26  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +2012-11-27  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
  
        * progmodes/python.el (python-indent-guess-indent-offset):
        If indentation is guessed make python-indent-offset buffer-local.
        Fix forward movement when statement(s) separates point from defun.
        (python-imenu-prev-index-position): New function.
  
 -2012-11-26  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-27  Eli Zaretskii  <eliz@gnu.org>
  
        * subr.el (buffer-file-type): Declare with defvar-local.  Doc fix.
  
        * dos-w32.el (find-file-not-found-set-buffer-file-coding-system):
        Don't set buffer-file-type.  Return nil.  (Bug#12989)
  
 -2012-11-26  Glenn Morris  <rgm@gnu.org>
 +2012-11-27  Glenn Morris  <rgm@gnu.org>
  
        * hippie-exp.el (hippie-expand-try-functions-list):
        Re-autoload it.  (Bug#12982)
  
 -2012-11-25  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-27  Eli Zaretskii  <eliz@gnu.org>
  
        * descr-text.el (describe-char-padded-string):
        Call internal-char-font only on GUI frames.  (Bug#11964)
  
 -2012-11-24  Andreas Schwab  <schwab@linux-m68k.org>
 +2012-11-27  Andreas Schwab  <schwab@linux-m68k.org>
  
        * buff-menu.el (Buffer-menu-buffer+size-width): Fix customize type
        and obsoletion message.
  
 -2012-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/cl-macs.el (cl--transform-lambda): Add back `declare' in
        the constructs to keep outside of the `cl-block' (bug#12977).
  
 -2012-11-24  Chong Yidong  <cyd@gnu.org>
 +2012-11-27  Chong Yidong  <cyd@gnu.org>
  
        * mouse.el (mouse-drag-line): Even if the line is not draggable,
        keep reading until we get the up-event anyway, in order to process
        the up-event for mouse-1-click-follows-link (Bug#12971).
  
 -2012-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el (ad-should-compile): Don't compile advice if the
 +      base function is not yet defined (bug#12965).
 +      (ad-activate-advised-definition): Use ad-compile-function.
 +      (ad-activate): Use cond.
 +
 +2012-11-25  Leo Liu  <sdl.web@gmail.com>
 +
 +      * textmodes/sgml-mode.el (sgml-tag): Fix indentation for closing tag.
 +      (Bug#12979)
 +
 +2012-11-24  Vincent BelaĂ¯che  <vincentb1@users.sourceforge.net>
 +
 +      * textmodes/reftex-parse.el (reftex-parse-from-file): Use variable
 +      reftex-section-info-function in order to be compatible with
 +      Texinfo integration.
 +
 +      * textmodes/reftex.el (reftex-section-pre-regexp)
 +      (reftex-section-post-regexp, reftex-section-info-function):
 +      New variable.
 +      (reftex-compile-variables): Use variables reftex-section-pre-regexp,
 +      reftex-section-post-regexp, and reftex-section-info-function in order
 +      to be compatible with Texinfo integration.
 +
 +      * textmodes/reftex-toc.el (reftex-toc-promote-action):
 +      use reftex-section-pre-regexp variable in order to be compatible with
 +      Texinfo integration.
 +
 +2012-11-25  Chong Yidong  <cyd@gnu.org>
 +
 +      * faces.el: Make face-spec-set more analogous to setq.
 +      (face-spec-set): Change the third arg to specify whether this
 +      function is being called via defface, customize, or a third party.
 +      Set the appropriate symbol properties.  Clear the override spec if
 +      setting via Custom.  Initialize face if necessary.  (Bug#4988)
 +      (face-spec-recalc): Allow theme faces to completely replace the
 +      defface spec, in the same way as custom faces (Bug#8454).
 +
 +      * cus-face.el (custom-declare-face): Move face initialization to
 +      face-spec-set.
 +      (custom-theme-set-faces): Don't initialize the face name here, as
 +      that is now done in face-spec-set.
 +
 +      * cus-edit.el (custom-face-set, custom-face-mark-to-save)
 +      (custom-face-reset-saved, custom-face-mark-to-reset-standard):
 +      Simplify by using the new arg to face-spec-set.
 +
 +      * emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
 +      reset face-override-spec too, and use custom-declare-face.
 +
 +2012-11-24  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-initialize-window-system): Move creation of
 +      fontsets here (Bug#11964).
 +
 +2012-11-24  Vincent BelaĂ¯che  <vincentb1@users.sourceforge.net>
 +
 +      * ses.el (ses-rename-cell): Correct bug on mode-line update after
 +      cell renaming.
 +
 +2012-11-24  Chong Yidong  <cyd@gnu.org>
 +
 +      * woman.el (woman-default-faces, woman-monochrome-faces): Mark as
 +      obsolete.
 +
 +      * custom.el (custom-theme-set-variables): Use a topological sort
 +      for ordering by custom dependencies (Bug#12952).
 +      (custom--sort-vars, custom--sort-vars-1): New functions.
 +
 +2012-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/bytecomp.el (byte-compile-file): Setup default value for
        lexical-binding (bug#12938).
  
 -2012-11-23  Wolfgang Jenkner  <wjenkner@inode.at>
 +2012-11-24  Wolfgang Jenkner  <wjenkner@inode.at>
  
        * image-mode.el (image-transform-check-size): Use assertions only
        for images of type imagemagick.
        Otherwise no error, image-transform-fit-to-{width,height} is
        silently ignored, as before.  Doc fix.
  
 -2012-11-23  Chong Yidong  <cyd@gnu.org>
 +2012-11-24  Chong Yidong  <cyd@gnu.org>
  
        * faces.el (color-defined-p): Doc fix (Bug#12853).
  
 -2012-11-23  Juri Linkov  <juri@jurta.org>
 +2012-11-24  Juri Linkov  <juri@jurta.org>
  
        * dired.el (dired-mark): Add optional arg `interactive'.
        Check for `use-region-p' if `interactive' is non-nil.
        `interactive'.  Call `dired-mark' with the arg `interactive'.
        (Bug#10624)
  
 -2012-11-23  Juri Linkov  <juri@jurta.org>
 -
        * wdired.el: Revert 2012-10-17 change partly and replace it with
        Patch by Christopher Schmidt <christopher@ch.ristopher.com>.
        (wdired-finish-edit): Add marks for new file names to
        (wdired-do-renames): Remove calls to `dired-remove-file',
        `dired-add-file', `dired-add-entry'.  (Bug#11795)
  
 -2012-11-21  Alan Mackenzie  <acm@muc.de>
 +2012-11-24  Alan Mackenzie  <acm@muc.de>
  
        * progmodes/cc-defs.el (c-version): Bump to 5.32.4.
  
        Call c-invalidate-state-cache from `c-before-change' instead of
        `c-after-change'.
  
 -2012-11-20  Daniel Colascione  <dancol@dancol.org>
 +2012-11-23  Chong Yidong  <cyd@gnu.org>
  
 -      * term/w32-win.el (cygwin-convert-path-from-windows):
 -      Accomodate rename of cygwin_convert_path* to cygwin_convert_file_name*.
 -      This change is a backport from trunk.
 +      * find-cmd.el (find-constituents): Add executable, ipath,
 +      readable, samefile, writable, daystart, regextype (Bug#12856).
  
 -2012-11-20  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * simple.el (line-move): Don't call line-move-partial if
 -      scroll-conservatively is in effect.  (Bug#12927)
 +      * emacs-lisp/ert.el, emacs-lisp/ert-x.el: Use cl-lib and lexical-binding.
  
 -2012-11-20  Michael Albinus  <michael.albinus@gmx.de>
 +2012-11-22  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * net/trampver.el (tramp-version): Downgrade to 2.2.6-24.3, in
 -      order to distinguish from trunk.
 +      * calc/calc.el (calc-gregorian-switch): Move to after calc-refresh
 +      definition.  This fixes a bootstrap failure.
 +      (calc-gregorian-switch): In menu, put dates before regions.
 +      This is easier to follow, lines up better in the menu, and lets us
 +      coalesce regions that switch at the same time.  Give country
 +      names, not "Vatican", as that's better for non-expert users.
 +      Use names that are stable between the date of switch and now, e.g.,
 +      Bohemia and Moravia (which existed then and now) and not
 +      Czechoslovakia (which didn't exist then and doesn't exist now).
 +      What is now the U.S. mostly did not switch at the same time as
 +      Britain, so omit the U.S.  Correct spelling of "Britain".
 +      Catholic Switzerland was too much of a mess, so omit it.
  
 -2012-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-22  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-gregorian-switch): Refresh the Calc buffer
 +      after the variable is changed.
 +
 +2012-11-21  Daniel Colascione  <dancol@dancol.org>
 +
 +      * progmodes/sql.el (sql-mode-font-lock-object-name): Support IF NOT EXISTS
 +      in SQL declarations for font-lock.
 +      (sql-imenu-generic-expression): Teach imenu about IF NOT EXISTS.
 +
 +2012-11-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * faces.el (face-underline-p, face-inverse-video-p, face-bold-p)
 +      (face-italic-p): Add optional argument "inherit".
  
 -      * emacs-lisp/byte-run.el (defun-declarations-alist): Don't accept
 -      non-symbols for compiler macros (yet).
 +      * faces.el (set-face-inverse-video, set-face-bold, set-face-italic):
 +      Remove -p suffix from names, for consistency with other set-face-*.
 +      (set-face-inverse-video): Fix interactive spec.
 +      * play/gamegrid.el (gamegrid-make-mono-tty-face):
 +      * textmodes/table.el (table--update-cell-face):
 +      Use set-face-inverse-video rather than now obsolete alias.
 +
 +2012-11-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (line-move): Don't call line-move-partial if
 +      scroll-conservatively is in effect.  (Bug#12927)
 +
 +2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * eshell/em-cmpl.el (eshell-pcomplete): Refine fix for bug#12838:
        Fallback on completion-at-point rather than
  
        * emacs-lisp/ert.el (ert--expand-should-1): Adapt to cl-lib.
  
 -2012-11-19  Michael Albinus  <michael.albinus@gmx.de>
 +2012-11-21  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp-sh.el (tramp-do-copy-or-rename-file): If both files
        are remote, check out-of-band property for both.
  
 -2012-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * window.el (switch-to-buffer): Re-add the warning that was lost in the
        code rewrite.
  
 -2012-11-18  Paul Eggert  <eggert@cs.ucla.edu>
 +2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
  
        More minor time fixes.
        * calendar/time-date.el: Commentary fix.
        * ps-bdf.el (bdf-file-newer-than-time):
        Process four-integers time stamps, not two.  Doc fixes.
  
 +2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * uniquify.el (uniquify-managed): Use defvar-local.
 +      (rename-buffer, create-file-buffer): Advise with advice-add.
 +      (uniquify-unload-function): Unadvise accordingly.
 +
 +      * emacs-lisp/trace.el: Rewrite, use nadvice and lexical-binding.
 +      (trace-buffer): Don't purecopy.
 +      (trace-entry-message, trace-exit-message): Add `context' arg.
 +      (trace--timer): New var.
 +      (trace-make-advice): Adjust for use in nadvice.
 +      Add `context' argument.  Delay `display-buffer' via a timer.
 +      (trace-function-internal): Use advice-add.
 +      (trace--read-args): New function.
 +      (trace-function-foreground, trace-function-background): Use it.
 +      (trace-function): Rename to trace-function-foreground and redefine as
 +      an alias to that new name.
 +      (untrace-function, untrace-all): Adjust to the use of nadvice.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile): Fix handling of closures.
 +
 +      * emacs-lisp/byte-run.el (defun-declarations-alist): Fix last change.
 +
 +      * subr.el (called-interactively-p-functions): New var.
 +      (internal--called-interactively-p--get-frame): New macro.
 +      (called-interactively-p, interactive-p): Rewrite in Lisp.
 +      * emacs-lisp/nadvice.el (advice--called-interactively-skip): New fun.
 +      (called-interactively-p-functions): Use it.
 +      * emacs-lisp/edebug.el (edebug--called-interactively-skip): New fun.
 +      (called-interactively-p-functions): Use it.
 +      * allout.el (allout-called-interactively-p): Don't assume
 +      called-interactively-p is a subr.
 +
 +2012-11-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * profiler.el (profiler-report-mode-map): Add a menu.
 +      No need to bind `q' because we derive from special-mode.
 +      (profiler-report-find-entry): Handle calls from the menu-bar.
 +
 +2012-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/byte-run.el (defun-declarations-alist):
 +      Allow a compiler-macro to be a lambda expression.
 +
 +      * progmodes/python.el: Use cl-lib.  Move var declarations outside of
 +      eval-when-compile.
 +      (python-syntax-context): Add compiler-macro.
 +      (python-font-lock-keywords): Simplify with De Morgan.
 +
 +      * vc/diff-mode.el (diff-hunk): Don't make useless timers.
 +
 +      * files.el (load-file): Require match in minibuffer selection, as was
 +      the case in Emacs-20 before we changed the spec to allow .elc files
 +      (bug#12935).
 +
 +      * json.el: Don't require cl since we don't use it.
 +      * color.el: Don't require cl.
 +      (color-complement): `caddr' -> `nth 2'.
 +
 +      * calendar/time-date.el (time-to-seconds): De-obsolete.
 +
 +2012-11-19  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-forms.el (math-leap-year-p):  Fix formula for negative
 +      year numbers.
 +      (math-date-to-julian-dt): Adjust the initial approximation for the
 +      year to deal with the new definition of the DATE.
 +
 +2012-11-19  Daniel Colascione  <dancol@dancol.org>
 +
 +      * term/w32-win.el (cygwin-convert-path-from-windows):
 +      Accomodate rename of cygwin_convert_path* to cygwin_convert_file_name*.
 +
 +2012-11-18  Chong Yidong  <cyd@gnu.org>
 +
 +      * filecache.el (file-cache--read-list): New function.
 +      (file-cache-add-directory-list, file-cache-add-file-list)
 +      (file-cache-delete-file-list, file-cache-delete-directory-list):
 +      Use it to read a list of files or directories (Bug#12846).
 +      (file-cache-add-file, file-cache-add-directory)
 +      (file-cache-delete-file-list, file-cache-delete-file-regexp)
 +      (file-cache-delete-directory): Print an message.
 +
 +2012-11-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-forms.el (math-date-to-dt): Use integer date when
 +      calling `math-date-to-julian-dt' and 'math-date-to-gregorian-dt'.
 +
  2012-11-18  Glenn Morris  <rgm@gnu.org>
  
        * image.el (insert-image, insert-sliced-image): Doc fix.
  
 -2012-11-17  Chong Yidong  <cyd@gnu.org>
 +2012-11-18  Chong Yidong  <cyd@gnu.org>
  
        * emacs-lisp/syntax.el (syntax-propertize-function): Doc fix
        (Bug#12810).
  
 -2012-11-17  OKAZAKI Tetsurou  <okazaki.tetsurou@gmail.com>  (tiny change)
 +2012-11-18  OKAZAKI Tetsurou  <okazaki.tetsurou@gmail.com>  (tiny change)
  
        * vc/vc-svn.el (vc-svn-merge-news): Properly parse the merge
        response when the target file is in a subdirectory (Bug#12757).
  
 -2012-11-17  Chong Yidong  <cyd@gnu.org>
 +2012-11-18  Chong Yidong  <cyd@gnu.org>
  
        * filecache.el (file-cache-add-file-list): Doc fix (Bug#12694).
  
 -2012-11-17  Glenn Morris  <rgm@gnu.org>
 +2012-11-18  Glenn Morris  <rgm@gnu.org>
  
 -      * woman.el (woman-non-underline-faces):
        * emacs-lisp/cl-lib.el (face-underline-p):
        Use set-face-underline rather than the alias set-face-underline-p.
  
        * subr.el (with-output-to-temp-buffer):
        Add doc xref to with-temp-buffer-window.
  
 +2012-11-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * woman.el (woman-non-underline-faces): Use `set-face-underline'.
 +      * calc/calc.el (math-format-date-cache): Declare.
 +
 +2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Calc by default uses the Gregorian calendar for all dates (Bug#12633).
 +      It also uses January 1, 1 AD as its day number 1.
 +      * calc/calc-forms.el (math-julian-date-beginning)
 +      (math-julian-date-beginning-int): Implement this.
 +
 +2012-11-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * descr-text.el (quail-find-key):
 +      * dired.el (desktop-file-name):
 +      * dirtrack.el (shell-prefixed-directory-name, shell-process-cd):
 +      * generic-x.el (comint-mode, comint-exec):
 +      * image-dired.el (widget-forward):
 +      * info.el (speedbar-add-expansion-list, speedbar-center-buffer-smartly)
 +      (speedbar-change-expand-button-char)
 +      (speedbar-change-initial-expansion-list, speedbar-delete-subblock)
 +      (speedbar-make-specialized-keymap, speedbar-make-tag-line):
 +      * printing.el (easy-menu-add-item, easy-menu-remove-item)
 +      (widget-field-action, widget-value-set):
 +      * speedbar.el (imenu--make-index-alist):
 +      * term.el (ring-empty-p, ring-ref, ring-insert-at-beginning)
 +      (ring-length, ring-insert):
 +      * vcursor.el (compare-windows-skip-whitespace):
 +      * woman.el (dired-get-filename):
 +      Declare functions.
 +
 +      * term/w32-win.el (cygwin-convert-path-from-windows): Fix declaration.
 +
 +2012-11-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-gregorian-switch): New variable.
 +
 +      * calc/calc-forms.el (math-day-in-year, math-dt-before-p)
 +      (math-absolute-from-gregorian-dt, math-absolute-from-julian-dt)
 +      (math-date-to-julian-dt, math-date-to-gregorian-dt): New functions.
 +      (math-leap-year-p): Add option to distinguish between Julian
 +      and Gregorian calendars.
 +      (math-day-number): Use `math-day-in-year' to do the computations.
 +      (math-absolute-from-dt): Rename from `math-absolute-from-date'.
 +      Use `math-absolute-from-gregorian' and `math-absolute-from-julian'
 +      to do the computations.
 +      (math-date-to-dt): Use `math-date-to-julian-dt' and
 +      `math-date-to-gregorian-dt' to do the computations.
 +      (calcFunc-weekday, math-format-date-part): Use the new version of
 +      the DATE to determine the weekday.
 +      (calcFunc-newmonth, calcFunc-newyear): Use `calc-gregorian-switch'
 +      when necessary.
 +
 +2012-11-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term/w32-win.el (w32-handle-dropped-file): Use 'file://' only on
 +      Cygwin; otherwise use 'file:'.  (Bug#12914)
 +      (cygwin-convert-path-from-windows): Declare, to avoid
 +      byte-compiler warnings.
 +
 +2012-11-17  Andreas Politz  <politza@fh-trier.de>
 +
 +      * ibuffer.el (ibuffer-mark-forward, ibuffer-unmark-forward)
 +      (ibuffer-unmark-backward, ibuffer-mark-interactive): Support plain
 +      prefix and negative numeric prefix args (Bug#12795).
 +
 +2012-11-17  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * play/gamegrid.el (gamegrid-add-score-with-update-game-score-1):
 +      Don't signal an error with a score that is too low to add to the
 +      list of top scores. (Bug#12779)
 +
 +2012-11-17  Chong Yidong  <cyd@gnu.org>
 +
 +      * help-mode.el (help-xref-interned): End on point-min (Bug#12737).
 +
 +      * filecache.el (file-cache-add-file): Handle relative file name in
 +      the argument (Bug#12694).
 +
 +2012-11-16  JĂ¼rgen Hötzel  <juergen@archlinux.org>  (tiny change)
 +
 +      * eshell/em-unix.el (eshell/mkdir): Handle "--parents" (bug#12897).
 +
  2012-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 +      * emacs-lisp/advice.el (ad-make-advised-definition): Improve last fix.
 +
        * emacs-lisp/cl-lib.el: Set more meaningful version number.
  
  2012-11-16  Martin Rudalics  <rudalics@gmx.at>
  
        * faces.el (face-underline-p): Use face-attribute-specified-or.
  
 -2012-11-15  Juanma Barranquero  <lekktu@gmail.com>
 +2012-11-16  Juanma Barranquero  <lekktu@gmail.com>
  
        * emacs-lisp/cl-macs.el (cl-loop, cl-do, cl-do*): Doc fixes.
  
 -2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/cl-macs.el (cl-flet, cl-flet*): Fix docstring (bug#12895).
  
 -2012-11-15  Glenn Morris  <rgm@gnu.org>
 +2012-11-16  Glenn Morris  <rgm@gnu.org>
  
        * eshell/em-cmpl.el (eshell-pcomplete): New command.  (Bug#12838)
        (eshell-cmpl-initialize): Bind eshell-pcomplete to TAB, C-i.
        * term.el (ansi-term): Don't let C-x escape-char binding
        clobber the more standard C-c binding.  (Bug#12842)
  
 -2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * emacs-lisp/gv.el (setf): Fix debug spec for multiple assignments
 -      (bug#12879).
 -
 -2012-11-14  Glenn Morris  <rgm@gnu.org>
 -
        * subr.el (set-temporary-overlay-map): Doc fix.
  
 -2012-11-13  Martin Rudalics  <rudalics@gmx.at>
 +2012-11-16  Martin Rudalics  <rudalics@gmx.at>
  
        * window.el (record-window-buffer)
        (display-buffer-record-window): When copying the markers to
        window-point preserve window-point-insertion-type. (Bug#12588)
  
 -2012-11-13  Glenn Morris  <rgm@gnu.org>
 +2012-11-16  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke):
        * net/tramp-gvfs.el (tramp-gvfs-dbus-event-error):
        Use new names for hooks rather than obsolete aliases.
  
 -2012-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-15  Daniel Colascione  <dancol@dancol.org>
 +
 +      * term/w32-win.el (w32-handle-dropped-file): Use a "file://"
 +      prefix instead of "file:" so that when FILE-NAME begins with "//",
 +      as it does when the target file is on a network share, url-handler
 +      isn't confused.
 +
 +2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el (ad-definition-type): Make sure we don't use
 +      a preactivated advice from an old advice.el; they're not compatible!
 +
 +2012-11-15  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * emacs-lisp/nadvice.el (advice--make-interactive-form):
 +      Fix string-spec case.
 +
 +      * emacs-lisp/advice.el (ad-make-advised-definition): Fix undefined case.
 +
 +2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/nadvice.el: Add buffer-local support to add-function.
 +      (advice--buffer-local-function-sample): New var.
 +      (advice--set-buffer-local, advice--buffer-local): New functions.
 +      (add-function, remove-function): Use them.
 +
 +2012-11-15  Drew Adams  <drew.adams@oracle.com>
 +
 +      * imenu.el (imenu--split-submenus): Use imenu--subalist-p (bug#12717).
 +
 +2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/cl-macs.el (cl--transform-lambda): Defend against
 +      potential binding of print-gensym to t, and prettify (back)quotes in
 +      case they appear in args's default values (bug#12884).
 +
 +2012-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/nadvice.el: Add around advice for interactive specs.
 +      (advice-eval-interactive-spec): New function.
 +      (advice--make-interactive-form): Support around advice (bug#12844).
 +
 +2012-11-14  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (ruby-expr-beg): Make heredoc detection
 +      more strict.  Add docstring.
 +      (ruby-expression-expansion-re): Extract from
 +      `ruby-match-expression-expansion'.
 +      (ruby-syntax-propertize-function): After everything else, search
 +      for expansions in string literals, mark their insides as
 +      whitespace syntax and save match data for font-lock.
 +      (ruby-font-lock-keywords): Use the 2nd group from expression
 +      expansion matches.
 +      (ruby-match-expression-expansion): Use the match data saved to the
 +      text property in ruby-syntax-propertize-function.
 +
 +2012-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/gv.el (setf): Fix debug spec for multiple assignments
 +      (bug#12879).
 +
 +2012-11-13  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (ruby-move-to-block): Looks for a block
 +      start/end keyword a bit harder.  Works with different values of N.
 +      Add more comments.
 +      (ruby-end-of-block): Update accordingly.
 +
 +2012-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * woman.el (woman-file-name): Don't mess with unread-command-events
 +      (bug#12861).
 +
 +      * emacs-lisp/advice.el: Layer on top of nadvice.el.
 +      Remove out of date self-require hack.
 +      (ad-do-advised-functions): Use simple `dolist'.
 +      (ad-advice-name, ad-advice-protected, ad-advice-enabled)
 +      (ad-advice-definition): Redefine as functions.
 +      (ad-advice-classes): Move before first use.
 +      (ad-make-origname, ad-set-orig-definition, ad-clear-orig-definition)
 +      (ad-make-mapped-call, ad-make-advised-docstring,ad-make-plain-docstring)
 +      (ad--defalias-fset): Remove functions.
 +      (ad-make-advicefunname, ad-clear-advicefunname-definition): New funs.
 +      (ad-get-orig-definition): Rewrite.
 +      (ad-make-advised-definition-docstring): Change base docstring.
 +      (ad-real-orig-definition): Rewrite.
 +      (ad-map-arglists): Change name of called function.
 +      (ad--make-advised-docstring): Redirect `function' from ad-Advice-...
 +      (ad-make-advised-definition): Simplify.
 +      (ad-assemble-advised-definition): Tweak for new calling context.
 +      (ad-activate-advised-definition): Setup ad-Advice-* i.s.o ad-Orig-*.
 +      (ad--defalias-fset): Rename from ad-handle-definition.  Make it set the
 +      function and call ad-activate if needed.
 +      (ad-activate, ad-deactivate): Don't call ad-handle-definition any more.
 +      (ad-recover): Clear ad-Advice-* instead of ad-Orig-*.
 +      (ad-compile-function): Compile ad-Advice-*.
 +      (ad-activate-on-top-level, ad-with-auto-activation-disabled): Remove.
 +      (ad-start-advice, ad-stop-advice): Remove.
 +
 +2012-11-13  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (ruby-add-log-current-method): Print the
 +      period before class method names, not after.  Remove handling of
 +      one impossible case.  Add comments.
 +
 +2012-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el: Remove support for freezing.
 +      (ad-make-freeze-docstring, ad-make-freeze-definition): Remove functions.
 +      (ad-make-single-advice-docstring, ad-defadvice-flags, defadvice):
 +      Remove support for `freeze'.
 +
 +      * emacs-lisp/cl.el (dolist, dotimes, declare): Use advice-add to
 +      override the default.
 +      * emacs-lisp/cl-macs.el (cl-dolist, cl-dotimes): Rewrite without using
 +      cl--dotimes/dolist.
 +      * subr.el (dolist, dotimes, declare): Redefine them normally, even when
 +      `cl' is loaded.
 +
 +      * emacs-lisp/nadvice.el (advice--normalize): New function, extracted
 +      from add-advice.
 +      (advice--strip-macro): New function.
 +      (advice--defalias-fset): Use them to handle macros.
 +      (advice-add): Use them.
 +      (advice-member-p): Correctly handle macros.
 +
 +2012-11-13  Dmitry Gutov  <dgutov@yandex.ru>
 +
 +      * progmodes/ruby-mode.el (ruby-font-lock-keywords):
 +      Never font-lock the beginning of singleton class as heredoc.
 +
 +2012-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/gv.el (gv-define-simple-setter): One more fix (bug#12871).
  
 -2012-11-12  Wolfgang Jenkner  <wjenkner@inode.at>
 +2012-11-13  Wolfgang Jenkner  <wjenkner@inode.at>
  
        * ansi-color.el (ansi-color-apply-sequence): Implement SGR codes
 -      39 and 49.  This fixes bug#12792.  Also, treat unimplemented
 -      parameters as 0, thereby restoring the behavior of revisions prior
 -      to 2012-08-15T03:33:55Z!monnier@iro.umontreal.ca.
 +      39 and 49 (bug#12792).  Also, treat unimplemented parameters as 0,
 +      thereby restoring the behavior of revisions prior to 2012-08-15T03:33:55Z!monnier@iro.umontreal.ca.
  
 -2012-11-12  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
 +2012-11-13  FabiĂ¡n Ezequiel Gallina  <fgallina@cuca>
  
        Fix end-of-defun misbehavior.
        * progmodes/python.el (python-nav-beginning-of-defun): Rename from
        with new fixed python-nav-{end,beginning}-of-defun.  Stop scanning
        parent defuns as soon as possible.
  
 -2012-11-12  Glenn Morris  <rgm@gnu.org>
 +2012-11-13  Glenn Morris  <rgm@gnu.org>
  
        * progmodes/flymake.el (flymake-error-bitmap)
        (flymake-warning-bitmap, flymake-fringe-indicator-position): Doc fixes.
        (flymake-error-bitmap, flymake-warning-bitmap): Fix :types.
  
 -2012-11-12  Dmitry Gutov  <dgutov@yandex.ru>
 +2012-11-13  Dmitry Gutov  <dgutov@yandex.ru>
  
        * progmodes/ruby-mode.el (ruby-move-to-block): When moving
        backward, always stop at indentation.  Reverts the change from
        2012-08-12T22:06:56Z!monnier@iro.umontreal.ca (Bug#12851).
  
 -2012-11-11  Glenn Morris  <rgm@gnu.org>
 +2012-11-13  Glenn Morris  <rgm@gnu.org>
  
        * ibuffer.el (ibuffer-mode-map, ibuffer-mode):
        Add ibuffer-filter-by-derived-mode.
        * window.el (fit-frame-to-buffer, fit-frame-to-buffer-bottom-margin):
        * emacs-lisp/debug.el (debugger-bury-or-kill): Fix :version.
  
 -2012-11-10  Leo Liu  <sdl.web@gmail.com>
 +2012-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * ido.el (ido-set-matches-1): Fix split-string args to avoid
 -      performance issue.  (Bug#12796)
 +      * emacs-lisp/nadvice.el: New package.
 +      * subr.el (special-form-p): New function.
 +      * emacs-lisp/elp.el: Use lexical-binding and advice-add.
 +      (elp-all-instrumented-list): Remove var.
 +      (elp-not-profilable): Remove elp-wrapper.
 +      (elp-profilable-p): Use autoloadp and special-form-p.
 +      (elp--advice-name): New const.
 +      (elp-instrument-function): Use advice-add.
 +      (elp--instrumented-p): New predicate.
 +      (elp-restore-function): Use advice-remove.
 +      (elp-restore-all, elp-reset-all): Use mapatoms.
 +      (elp-set-master): Use elp--instrumented-p.
 +      (elp--make-wrapper): Rename from elp-wrapper, return a function
 +      suitable for advice-add.  Use cl-inf.
 +      (elp-results): Use mapatoms+elp--instrumented-p.
 +      * emacs-lisp/debug.el: Use lexical-binding and advice-add.
 +      (debug-function-list): Remove var.
 +      (debug): Rename arg, and then let-bind it explicitly inside.
 +      (debugger-setup-buffer): Rename arg.
 +      (debugger-setup-buffer): Adjust counts to new debug-on-entry setup.
 +      (debugger-frame-number): Adjust to new debug-on-entry setup.
 +      (debug--implement-debug-on-entry): Rename from
 +      implement-debug-on-entry, add argument.
 +      (debugger-special-form-p): Remove, use special-form-p instead.
 +      (debug-on-entry): Use advice-add.
 +      (debug--function-list): New function.
 +      (cancel-debug-on-entry): Use it, along with advice-remove.
 +      (debug-arglist, debug-convert-byte-code, debug-on-entry-1): Remove.
 +      (debugger-list-functions): Use debug--function-list instead of
 +      debug-function-list.
 +      * emacs-lisp/advice.el (ad-save-real-definition): Remove, unused.
 +      (ad-special-form-p): Remove, use special-form-p instead.
 +      (ad-set-advice-info): Use add-function and remove-function.
 +      (ad--defalias-fset): Adjust accordingly.
  
  2012-11-10  Glenn Morris  <rgm@gnu.org>
  
 +      * mail/emacsbug.el (report-emacs-bug-tracker-url)
 +      (report-emacs-bug-bug-alist, report-emacs-bug-choice-widget)
 +      (report-emacs-bug-create-existing-bugs-buffer)
 +      (report-emacs-bug-parse-query-results)
 +      (report-emacs-bug-query-existing-bugs): Remove.  (Bug#7449)
 +
        * term.el (term-default-fg-color, term-default-bg-color):
        Make obsolete, rather than just saying "deprecated" in the doc.
  
        (term-default-fg-color, term-default-bg-color, term-ansi-reset):
        Update all users.
  
 -2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * server.el (server-create-window-system-frame): Improve comment.
 -
 -2012-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +2012-11-10  Jan Djärv  <jan.h.d@swipnet.se>
  
        * server.el (server-create-window-system-frame): Handle Nextstep
        specially (Bug#12780).
  
 -2012-11-08  Glenn Morris  <rgm@gnu.org>
 +2012-11-10  Glenn Morris  <rgm@gnu.org>
  
        * mail/emacsbug.el (report-emacs-bug-query-existing-bugs):
        Unautoload, and make obsolete.  (Bug#7449)
  
 -2012-11-08  Chong Yidong  <cyd@gnu.org>
 +2012-11-10  Chong Yidong  <cyd@gnu.org>
  
        * vc/diff-mode.el (diff-delete-trailing-whitespace): Rewrite, and
        rename from diff-remove-trailing-whitespace (Bug#12831).
  
 -2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/advice.el: Require `cl-lib' at run-time to fix
        miscompilation of trace.el.
  
 -2012-11-08  Glenn Morris  <rgm@gnu.org>
 +2012-11-10  Glenn Morris  <rgm@gnu.org>
  
        * vc/diff-mode.el (diff-remove-trailing-whitespace): Doc fix.
  
 -2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/gv.el (gv-define-simple-setter): Fix last change
        (bug#12812).
  
 -2012-11-07  Chong Yidong  <cyd@gnu.org>
 +2012-11-10  Chong Yidong  <cyd@gnu.org>
  
        * minibuf-eldef.el (minibuffer-eldef-shorten-default): Convert to
        a defcustom with an appropriate :set function.
        (minibuffer-default--in-prompt-regexps): New function.
  
 -2012-11-07  Glenn Morris  <rgm@gnu.org>
 +2012-11-10  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/cl.el (define-setf-expander, defsetf)
        (define-modify-macro): Doc fixes.
        * emacs-lisp/gv.el (gv-letplace): Fix doc typo.
        (gv-define-simple-setter): Update doc of `fix-return'.
  
 -2012-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/gv.el (gv-define-simple-setter): Don't evaluate `val'
        twice when `fix-return' is set (bug#12813).
        * emacs-lisp/cl.el (defsetf): Pass the third arg to
        gv-define-simple-setter (bug#12812).
  
 -2012-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
        * woman.el (woman-decode-region): Disable adaptive-fill when rendering
        (bug#12756).
  
 -2012-11-06  Glenn Morris  <rgm@gnu.org>
 +2012-11-10  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/gv.el (gv-define-setter): Fix doc typo.
  
 -2012-11-05  Glenn Morris  <rgm@gnu.org>
 -
        * emacs-lisp/cl-extra.el (cl-prettyexpand):
        * emacs-lisp/cl-lib.el (cl-proclaim, cl-declaim):
        * emacs-lisp/cl-macs.el (cl-destructuring-bind, cl-locally)
  
        * emacs-lisp/cl-extra.el (cl-maplist, cl-mapcan): Doc fix.
  
 +2012-11-10  Leo Liu  <sdl.web@gmail.com>
 +
 +      * ido.el (ido-set-matches-1): Improve flex matching performance by
 +      removing backtracking in the regexp (suggested by Stefan).  (Bug#12796)
 +
 +2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el (ad-set-advice-info): Set defalias-fset-function.
 +      (ad--defalias-fset): New function.
 +      (ad-safe-fset): Remove.
 +      (ad-make-freeze-definition): Use cl-letf*.
 +
 +2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (dolist): Don't bind VAR in RESULT.
 +
 +      * emacs-lisp/advice.el: Miscellaneous cleanup.  Use lexical-binding.
 +      (fset, documentation): Don't save real def since we don't advise.
 +      (ad-do-advised-functions): Remove problematic `result-form'.
 +      (ad-safe-fset): `ad-real-fset' => `fset'.
 +      (ad-read-advised-function): Don't assume that ad-do-advised-functions
 +      uses CL's dolist internally.
 +      (ad-arglist): Remove unused arg `name'.
 +      (ad-docstring, ad-make-advised-docstring):
 +      `ad-real-documentation' => `documentation'.
 +      (warning-suppress-types): Declare.
 +      (ad-set-arguments): Simple CSE.
 +      (ad-recover-normality): Sanity check.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-out-toplevel): Don't turn
 +      (funcall '(lambda ..) ..) into ((lambda ..) ..).
 +
 +2012-11-09  Vincent BelaĂ¯che  <vincentb1@users.sourceforge.net>
 +
 +      * ses.el: symbol to coordinate mapping is made by symbol property
 +      `ses-cell'.  This means that the same mapping is done for all SES
 +      sheets.  That is good enough for cells with standard A1 names, but
 +      not for named cell.  So a hash map is added for the latter.
 +      (defconst ses-localvars): Add local variable ses--named-cell-hashmap
 +      (ses-sym-rowcol): Use hashmap for named cell.
 +      (ses-is-cell-sym-p): New defun.
 +      (ses-decode-cell-symbol): New defun.
 +      (ses-create-cell-variable): Add cell to hashmap when name is not
 +      A1-like.
 +      (ses-rename-cell): Check that cell new name is not already in
 +      spreadsheet with the use of ses-is-cell-sym-p
 +      (ses-rename-cell): Use hash map for named cells, but accept also
 +      renaming back to A1-like.
 +
 +2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el: Use new dynamic docstrings.
 +      (ad-make-advised-definition-docstring, ad-advised-definition-p):
 +      Use dynamic-docstring-function instead of ad-advice-info.
 +      (ad--make-advised-docstring): New function extracted from
 +      ad-make-advised-docstring.
 +      (ad-make-advised-docstring): Use it.
 +      * progmodes/sql.el (sql--make-help-docstring): New function, extracted
 +      from sql-help.
 +      (sql-help): Use it with dynamic-docstring-function.
 +
 +      * env.el (env--substitute-vars-regexp): Don't use rx (for bootstrap).
 +
 +2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (hack-one-local-variable--obsolete): New function.
 +      (hack-one-local-variable): Use it for obsolete settings.
 +
 +      * subr.el (locate-user-emacs-file): If both old and new name exist, use
 +      the new name.
 +
 +      * progmodes/js.el (js--filling-paragraph): New var.
 +      (c-forward-sws, c-backward-sws, c-beginning-of-macro): Advise.
 +      (js-c-fill-paragraph): Prefer advice to cl-letf so the rebinding is
 +      less sneaky.
 +
 +2012-11-08  Julien Danjou  <julien@danjou.info>
 +
 +      * progmodes/ruby-mode.el (auto-mode-alist): Add Rakefile in
 +      `auto-mode-alist' (Bug#12835).
 +
 +2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/perl-mode.el (perl-prettify-symbols): New defcustom.
 +      (perl--prettify-symbols-alist): New const.
 +      (perl--font-lock-compose-symbol, perl--font-lock-symbols-keywords):
 +      New functions.
 +      (perl-font-lock-keywords-2): Use them.
 +      (perl-electric-noindent-p): New function.
 +      (perl-mode): Use it to set up electric-indent-mode.
 +      (perl-electric-terminator, perl-indent-command): Mark obsolete.
 +      (perl-mode-map): Remove bindings for them.
 +      (perl-imenu-generic-expression, perl-outline-level):
 +      Match functions&packages in column>0.
 +
 +      * env.el (env--substitute-vars-regexp): New const.
 +      (substitute-env-vars): Use it.  Add `only-defined' arg.
 +      * net/tramp.el (tramp-replace-environment-variables): Use it.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
 +      Byte-compile *before* eval in eval-and-compile.
 +      (byte-compile-log-warning): Remove redundant inhibit-read-only.
 +      (byte-compile-file-form-autoload): Don't hide actual definition.
 +      (byte-compile-maybe-guarded): Accept `functionp' as well.
 +
 +      * emacs-lisp/gv.el (gv-ref, gv-deref): New function and macro.
 +
 +2012-11-07  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * notifications.el (notifications-get-server-information-method):
 +      New defconst.
 +      (notifications-get-capabilities): Fix docstring.
 +      (notifications-get-server-information): New defun.
 +
 +2012-11-06  AgustĂ­n MartĂ­n Domingo  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-region): Standard re-indent for better
 +      readability.
 +
 +      * textmodes/ispell.el: Experimental support for support debugging.
 +      (ispell-create-debug-buffer): Create a `ispell-debug-buffer' debug
 +      buffer for ispell.
 +      (ispell-print-if-debug): New function to print stuff to
 +      `ispell-debug-buffer' if debugging is enabled.
 +      (ispell-region, ispell-process-line): Use `ispell-print-if-debug' to
 +      show some debugging info.
 +      (ispell-buffer-with-debug): New function that creates a debugging
 +      buffer and calls `ispell-buffer' with debugging enabled.
 +
 +      * textmodes/ispell.el (ispell-region): Do not prefix sent string by
 +      comment in autoconf mode. (Bug#12768)
 +
 +2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * emacs-lisp/byte-opt.el (toplevel): Add compare-window-configurations,
 +      frame-first-window, frame-root-window, frame-selected-window,
 +      minibuffer-selected-window, minibuffer-window,
 +      window-absolute-pixel-edges, window-at, window-body-height,
 +      window-body-width, window-display-table, window-combination-limit,
 +      window-frame, window-fringes, window-inside-absolute-pixel-edges,
 +      window-inside-edges, window-inside-pixel-edges, window-left-child,
 +      window-left-column, window-margins, window-next-buffers,
 +      window-next-sibling, window-new-normal, window-new-total,
 +      window-normal-size, window-parameter, window-parameters, window-parent,
 +      window-pixel-edges, window-point, window-prev-buffers,
 +      window-prev-sibling, window-redisplay-end-trigger, window-scroll-bars,
 +      window-start, window-text-height, window-top-child, window-top-line,
 +      window-total-height, window-total-width and window-use-time to the list
 +      of functions without side-effects.
 +      (toplevel): Add window-valid-p to the list of error-free functions
 +      without side-effects.
 +
 +2012-11-05  AgustĂ­n MartĂ­n Domingo  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-program-name):
 +      Update spellchecker parameters when customized.
 +
 +2012-11-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-state-heuristic): Avoid calling svn.  (Bug#7850)
 +
 +2012-11-04  Chong Yidong  <cyd@gnu.org>
 +
 +      * bookmark.el (bookmark-bmenu-switch-other-window): Avoid binding
 +      same-window-* variables.
 +
 +2012-11-04  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-help-for-help, isearch-describe-bindings)
 +      (isearch-describe-key, isearch-describe-mode): Use a display
 +      action instead of binding same-window-* variables (Bug#10040).
 +
  2012-11-03  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/cl-macs.el (cl-parse-loop-clause):
        * window.el (switch-to-visible-buffer)
        (switch-to-buffer-preserve-window-point): Fix doc-strings.
  
 +2012-11-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/cl-lib.el (cl--random-time):
 +      Rename from cl-random-time.  (Bug#12773)
 +      (cl--gensym-counter, cl--random-state): Update callers.
 +      * emacs-lisp/cl-extra.el (cl-make-random-state): Update callers.
 +
 +2012-11-03  Chong Yidong  <cyd@gnu.org>
 +
 +      * cus-start.el: Make cursor-type customizable (Bug#11633).
 +
 +2012-11-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * filecache.el: No need to load find-lisp when compiling.
 +      (find-lisp-find-files): Autoload it.
 +      (file-cache-add-directory-recursively): Don't require find-lisp.
 +
 +      * image.el (image-type-from-file-name): Trivial simplification.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-eval):
 +      Decouple "noruntime" and "cl-functions" warnings.
 +
  2012-11-01  Stephen Berman  <stephen.berman@gmx.net>
  
        * play/gomoku.el (gomoku-display-statistics): Update mode line
  2012-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * minibuffer.el (minibuffer-force-complete): Make the next completion use
 -      the same completion-field (bug@12221).
 +      the same completion-field (bug#12221).
  
  2012-10-19  Martin Rudalics  <rudalics@gmx.at>
  
        * dynamic-setting.el (font-setting-change-default-font): Don't
        change the default face if SET-FONT argument is non-nil (Bug#9982).
  
 -2012-01-29  Samuel Bronson  <naesten@gmail.com>  (tiny change)
 +2012-01-29  Samuel Bronson  <naesten@gmail.com>
  
        * custom.el (defcustom): Add doc link to Lisp manual (Bug#10635).
  
diff --combined lisp/net/tramp-sh.el
@@@ -935,7 -935,6 +935,7 @@@ This is used to map a mode number to a 
      (file-name-nondirectory . tramp-handle-file-name-nondirectory)
      (file-truename . tramp-sh-handle-file-truename)
      (file-exists-p . tramp-sh-handle-file-exists-p)
 +    (file-accessible-directory-p . tramp-handle-file-accessible-directory-p)
      (file-directory-p . tramp-sh-handle-file-directory-p)
      (file-executable-p . tramp-sh-handle-file-executable-p)
      (file-readable-p . tramp-sh-handle-file-readable-p)
      (verify-visited-file-modtime . tramp-sh-handle-verify-visited-file-modtime)
      (file-selinux-context . tramp-sh-handle-file-selinux-context)
      (set-file-selinux-context . tramp-sh-handle-set-file-selinux-context)
 +    (file-acl . tramp-sh-handle-file-acl)
 +    (set-file-acl . tramp-sh-handle-set-file-acl)
      (vc-registered . tramp-sh-handle-vc-registered))
    "Alist of handler functions.
  Operations not mentioned here will be handled by the normal Emacs functions.")
@@@ -1458,7 -1455,9 +1458,9 @@@ and gid of the corresponding user is ta
    ;; working with su(do)? when it is needed, so it shall succeed in
    ;; the majority of cases.
    ;; Don't modify `last-coding-system-used' by accident.
-   (let ((last-coding-system-used last-coding-system-used))
+   (let ((last-coding-system-used last-coding-system-used)
+       (uid (and (numberp uid) (round uid)))
+       (gid (and (numberp gid) (round gid))))
      (if (file-remote-p filename)
        (with-parsed-tramp-file-name filename nil
          (if (and (zerop (user-uid)) (tramp-local-host-p v))
                        (if (stringp (nth 3 context))
                            (format "--range=%s" (nth 3 context)) "")
                        (tramp-shell-quote-argument localname))))
 -      (tramp-set-file-property v localname "file-selinux-context" context)
 -      (tramp-set-file-property v localname "file-selinux-context" 'undef)))
 -  ;; We always return nil.
 -  nil)
 +      (progn
 +        (tramp-set-file-property v localname "file-selinux-context" context)
 +        t)
 +      (tramp-set-file-property v localname "file-selinux-context" 'undef)
 +      nil)))
 +
 +(defun tramp-remote-acl-p (vec)
 +  "Check, whether ACL is enabled on the remote host."
 +  (with-tramp-connection-property (tramp-get-connection-process vec) "acl-p"
 +    (tramp-send-command-and-check vec "getfacl /")))
 +
 +(defun tramp-sh-handle-file-acl (filename)
 +  "Like `file-acl' for Tramp files."
 +  (with-parsed-tramp-file-name filename nil
 +    (with-tramp-file-property v localname "file-acl"
 +      (when (and (tramp-remote-acl-p v)
 +               (tramp-send-command-and-check
 +                v (format
 +                   "getfacl -acs %s 2>/dev/null"
 +                   (tramp-shell-quote-argument localname))))
 +      (with-current-buffer (tramp-get-connection-buffer v)
 +        (goto-char (point-max))
 +        (delete-blank-lines)
 +        (when (> (point-max) (point-min))
 +          (substring-no-properties (buffer-string))))))))
 +
 +(defun tramp-sh-handle-set-file-acl (filename acl-string)
 +  "Like `set-file-acl' for Tramp files."
 +  (with-parsed-tramp-file-name filename nil
 +    (when (tramp-remote-acl-p v)
 +      (condition-case nil
 +        (when (stringp acl-string)
 +          (tramp-set-file-property v localname "file-acl" acl-string)
 +          (dolist (line (split-string acl-string nil t) t)
 +            (unless (tramp-send-command-and-check
 +                     v (format
 +                        "setfacl -m %s %s"
 +                        line (tramp-shell-quote-argument localname)))
 +              (error))))
 +      ;; In case of errors, we return `nil'.
 +      (error
 +       (tramp-set-file-property v localname "file-acl" 'undef)
 +       nil)))))
  
  ;; Simple functions using the `test' command.
  
        (and (tramp-run-test "-d" (file-name-directory filename))
             (tramp-run-test "-w" (file-name-directory filename)))))))
  
 -(defun tramp-sh-handle-file-ownership-preserved-p (filename)
 +(defun tramp-sh-handle-file-ownership-preserved-p (filename &optional group)
    "Like `file-ownership-preserved-p' for Tramp files."
    (with-parsed-tramp-file-name filename nil
      (with-tramp-file-property v localname "file-ownership-preserved-p"
        ;; Return t if the file doesn't exist, since it's true that no
        ;; information would be lost by an (attempted) delete and create.
        (or (null attributes)
 -          (= (nth 2 attributes) (tramp-get-remote-uid v 'integer)))))))
 +          (and
 +           (= (nth 2 attributes) (tramp-get-remote-uid v 'integer))
 +           (or (not group)
 +               (= (nth 3 attributes) (tramp-get-remote-gid v 'integer)))))))))
  
  ;; Directory listings.
  
@@@ -1925,7 -1882,7 +1927,7 @@@ tramp-sh-handle-file-name-all-completio
  
  (defun tramp-sh-handle-copy-file
    (filename newname &optional ok-if-already-exists keep-date
 -          preserve-uid-gid preserve-selinux-context)
 +          preserve-uid-gid preserve-extended-attributes)
    "Like `copy-file' for Tramp files."
    (setq filename (expand-file-name filename))
    (setq newname (expand-file-name newname))
        (tramp-tramp-file-p newname))
      (tramp-do-copy-or-rename-file
       'copy filename newname ok-if-already-exists keep-date
 -     preserve-uid-gid preserve-selinux-context))
 +     preserve-uid-gid preserve-extended-attributes))
     ;; Compat section.
 -   (preserve-selinux-context
 +   (preserve-extended-attributes
      (tramp-run-real-handler
       'copy-file
       (list filename newname ok-if-already-exists keep-date
 -         preserve-uid-gid preserve-selinux-context)))
 +         preserve-uid-gid preserve-extended-attributes)))
     (preserve-uid-gid
      (tramp-run-real-handler
       'copy-file
  
  (defun tramp-do-copy-or-rename-file
    (op filename newname &optional ok-if-already-exists keep-date
 -      preserve-uid-gid preserve-selinux-context)
 +      preserve-uid-gid preserve-extended-attributes)
    "Copy or rename a remote file.
  OP must be `copy' or `rename' and indicates the operation to perform.
  FILENAME specifies the file to copy or rename, NEWNAME is the name of
@@@ -2013,7 -1970,7 +2015,7 @@@ OK-IF-ALREADY-EXISTS means don't barf i
  KEEP-DATE means to make sure that NEWNAME has the same timestamp
  as FILENAME.  PRESERVE-UID-GID, when non-nil, instructs to keep
  the uid and gid if both files are on the same host.
 -PRESERVE-SELINUX-CONTEXT activates selinux commands.
 +PRESERVE-EXTENDED-ATTRIBUTES activates selinux and acl commands.
  
  This function is invoked by `tramp-sh-handle-copy-file' and
  `tramp-sh-handle-rename-file'.  It is an error if OP is neither
@@@ -2024,8 -1981,8 +2026,8 @@@ file names.
    (let ((t1 (tramp-tramp-file-p filename))
        (t2 (tramp-tramp-file-p newname))
        (length (nth 7 (file-attributes (file-truename filename))))
 -      (context (and preserve-selinux-context
 -                    (apply 'file-selinux-context (list filename))))
 +      (attributes (and preserve-extended-attributes
 +                       (apply 'file-extended-attributes (list filename))))
        pr tm)
  
      (with-parsed-tramp-file-name (if t1 filename newname) nil
          ;; One of them must be a Tramp file.
          (error "Tramp implementation says this cannot happen")))
  
 -      ;; Handle `preserve-selinux-context'.
 -      (when context (apply 'set-file-selinux-context (list newname context)))
 +      ;; Handle `preserve-extended-attributes'.
 +      (when attributes
 +        (apply 'set-file-extended-attributes (list newname attributes)))
  
        ;; In case of `rename', we must flush the cache of the source file.
        (when (and t1 (eq op 'rename))
@@@ -2425,38 -2381,17 +2427,38 @@@ The method used must be an out-of-band 
                ;; last longer than 60 secs.
                (let ((p (let ((default-directory
                                 (tramp-compat-temporary-file-directory)))
 -                         (apply 'start-process
 +                         (apply 'start-process-shell-command
                                  (tramp-get-connection-name v)
                                  (tramp-get-connection-buffer v)
                                  copy-program
 -                                (append copy-args (list source target))))))
 +                                (append
 +                                 copy-args
 +                                 (list
 +                                  (shell-quote-argument source)
 +                                  (shell-quote-argument target)
 +                                  "&&" "echo" "tramp_exit_status" "0"
 +                                  "||" "echo" "tramp_exit_status" "1"))))))
                  (tramp-message
                   orig-vec 6 "%s"
                   (mapconcat 'identity (process-command p) " "))
                  (tramp-compat-set-process-query-on-exit-flag p nil)
                  (tramp-process-actions
 -                 p v nil tramp-actions-copy-out-of-band)))
 +                 p v nil tramp-actions-copy-out-of-band)
 +
 +                ;; Check the return code.
 +                (goto-char (point-max))
 +                (unless
 +                    (re-search-backward "tramp_exit_status [0-9]+" nil t)
 +                  (tramp-error
 +                   orig-vec 'file-error
 +                   "Couldn't find exit status of `%s'" (process-command p)))
 +                (skip-chars-forward "^ ")
 +                (unless (zerop (read (current-buffer)))
 +                  (forward-line -1)
 +                  (tramp-error
 +                   orig-vec 'file-error
 +                   "Error copying: `%s'"
 +                   (buffer-substring (point-min) (point-at-eol))))))
  
            ;; Reset the transfer process properties.
            (tramp-message orig-vec 6 "\n%s" (buffer-string))
@@@ -2978,6 -2913,16 +2980,6 @@@ the result will be a local, non-Tramp, 
          (keyboard-quit)
        ret))))
  
 -(defun tramp-sh-handle-call-process-region
 -  (start end program &optional delete buffer display &rest args)
 -  "Like `call-process-region' for Tramp files."
 -  (let ((tmpfile (tramp-compat-make-temp-file "")))
 -    (write-region start end tmpfile)
 -    (when delete (delete-region start end))
 -    (unwind-protect
 -      (apply 'call-process program tmpfile buffer display args)
 -      (delete-file tmpfile))))
 -
  (defun tramp-sh-handle-file-local-copy (filename)
    "Like `file-local-copy' for Tramp files."
    (with-parsed-tramp-file-name filename nil
@@@ -5067,9 -5012,7 +5069,9 @@@ This is used internally by `tramp-file-
    (if (equal id-format 'integer) (user-uid) (user-login-name)))
  
  (defun tramp-get-local-gid (id-format)
 -  (nth 3 (tramp-compat-file-attributes "~/" id-format)))
 +  (if (and (fboundp 'group-gid) (equal id-format 'integer))
 +      (tramp-compat-funcall 'group-gid)
 +    (nth 3 (tramp-compat-file-attributes "~/" id-format))))
  
  ;; Some predefined connection properties.
  (defun tramp-get-inline-compress (vec prop size)
diff --combined lisp/org/ChangeLog
@@@ -1,13 -1,4 +1,13 @@@
 -2012-12-12  Bastien Guerry  <bzg@gnu.org>
 +2012-12-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * ob.el (org-babel-temp-file): Fix setting of
 +      `temporary-file-directory' on remote hosts.
 +
 +      * ob-eval.el (org-babel-shell-command-on-region): Use
 +      `process-file' instead of `call-process-region'.  The latter one
 +      does not work on remote hosts.
 +
 +2012-12-13  Bastien Guerry  <bzg@gnu.org>
  
        * org-latex.el (org-export-latex-links): Escape raw path when
        exporting links to files.
@@@ -33,8 -24,8 +33,8 @@@
  
        * org-timer.el (org-timer-stop): Add message.
  
 -      * org-agenda.el (org-agenda-schedule, org-agenda-deadline): Fix
 -      redundant messages.
 +      * org-agenda.el (org-agenda-schedule, org-agenda-deadline):
 +      Fix redundant messages.
  
        * org-agenda.el (org-agenda-finalize): Fix clock highlighting.
  
  
        * org-install.el: Enhance warning.
  
 -2012-12-12  Erik Hetzner  <egh@e6h.org>  (tiny change)
 +2012-12-13  Erik Hetzner  <egh@e6h.org>  (tiny change)
  
        * org.el (org-log-into-drawer): Honor the nil value for the
        :LOG_INTO_DRAWER: property.
  
 -2012-12-12  Le Wang  <l26wang@gmail.com>  (tiny change)
 +2012-12-13  Le Wang  <l26wang@gmail.com>  (tiny change)
  
        * org-src.el (org-edit-src-exit): Fix editing source section with
        blank lines.
  
 -2012-12-12  Le Wang  <le.wang@agworld.com.au>
 +2012-12-13  Le Wang  <le.wang@agworld.com.au>
  
        * org-src.el (org-edit-src-code): Use marker with insertion type
        t to track end and remove hack requiring delete from beg to (1- end).
  
 -2012-12-12  Nicolas Goaziou  <n.goaziou@gmail.com>
 +2012-12-13  Nicolas Goaziou  <n.goaziou@gmail.com>
  
        * org-element.el (org-element-context): When point is between two
        objects, be sure to return the second one.
@@@ -73,7 -64,7 +73,7 @@@
        delegate motion to `end-of-line' instead of `move-end-of-line' in
        order to stay on the current line.
  
 -2012-12-12  Rafael Laboissiere  <rafael@laboissiere.net>  (tiny change)
 +2012-12-13  Rafael Laboissiere  <rafael@laboissiere.net>  (tiny change)
  
        * org-bibtex.el: In the documentation section of the file, fix the
        broken URL to Andrew Roberts' document on BibTeX entries.
        commented lines in the Remember temporary buffer with the
        appropriate characters.
  
 -2012-12-12  Toby S. Cubitt  <tsc25@cantab.net>
 +2012-12-13  Toby S. Cubitt  <tsc25@cantab.net>
  
        * org.el (org-beginning-of-line): Check `visual-line-mode' instead
 -      of `line-visual-mode' to determine whether to move by visual
 -      lines.
 +      of `line-visual-mode' to determine whether to move by visual lines.
  
        * org.el (org-kill-line): Use the `org-bound-and-true-p' macro.
  
 +2012-12-04  Chong Yidong  <cyd@gnu.org>
 +
 +      * org-bibtex.el (org-bibtex-ask): Use visual-line-mode instead of
 +      longlines-mode.
 +
  2012-10-26  Achim Gratz  <stromeko@stromeko.de>
  
        * ob-ditaa.el: Needs to (require 'org-compat) for
        (org-set-autofill-regexps): Add previous function to
        `fill-nobreak-predicate'.
  
- 2012-04-01  Vitalie Spinu  <spinuvit@gmail.com>
-       * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation
-       visibility regardless of local user customization.
- 2012-04-01  Vitalie Spinu  <spinuvit@gmail.com>
+ 2012-04-01  Vitalie Spinu  <spinuvit@gmail.com>  (tiny change)
  
        * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation
        visibility regardless of local user customization.
diff --combined msdos/ChangeLog
@@@ -1,12 -1,13 +1,17 @@@
 -2012-12-01  Eli Zaretskii  <eliz@gnu.org>
+ 2012-12-30  Eli Zaretskii  <eliz@gnu.org>
+       * sed1v2.inp (TEMACS_LDFLAGS2): Remove editing.
+       (LIBS_GNUSTEP): Edit to empty.
 +2012-12-03  Eli Zaretskii  <eliz@gnu.org>
  
        * sed1v2.inp: Dump emacs.exe and copy to b-emacs.exe before
        generating leim-list.el.
  
 +2012-11-24  Ken Brown  <kbrown@cornell.edu>
 +
 +      * sed2v2.inp (HAVE_MOUSE): Remove.
 +
  2012-11-03  Eli Zaretskii  <eliz@gnu.org>
  
        * sedlibmk.inp: Sync with changes in lib/Makefile.in.
diff --combined src/ChangeLog
@@@ -1,25 -1,22 +1,38 @@@
 -2012-12-29  Andreas Schwab  <schwab@linux-m68k.org>
++2012-12-30  Andreas Schwab  <schwab@linux-m68k.org>
+       * src/Makefile.in (TEMACS_LDFLAGS2): Remove.
+       (LIBS_GNUSTEP): Define.
+       (LIBES): Add $(LIBS_GNUSTEP).
+       (temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
 -2012-12-27  Eli Zaretskii  <eliz@gnu.org>
++2012-12-30  Eli Zaretskii  <eliz@gnu.org>
+       * xdisp.c (set_cursor_from_row): Don't confuse a truncation or
+       continuation glyph on a TTY with an indication of an empty line.
+       (Bug#13277)
 +2012-12-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
 +      file's SELinux context or ACLs successfully set, nil otherwise.
 +      (Bug#13298)
 +      (Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
 +
 +      * w32proc.c (reader_thread): Avoid passing NULL handles to
 +      SetEvent and WaitForSingleObject.
 +
 +2012-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port EXTERNALLY_VISIBLE to Clang 3.2.
 +      * conf_post.h (__has_attribute): New macro.
 +      (EXTERNALLY_VISIBLE): Use it.  This ports to Clang 3.2.
 +
  2012-12-27  Glenn Morris  <rgm@gnu.org>
  
        * cygw32.c (Fcygwin_convert_file_name_to_windows)
        (Fcygwin_convert_file_name_from_windows): Doc fixes.
  
 -2012-12-24  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-27  Eli Zaretskii  <eliz@gnu.org>
  
        * fileio.c (file_name_as_directory, directory_file_name): Accept
        an additional argument MULTIBYTE to indicate whether the input C
        input strings are multibyte, decode strings obtained from C
        library functions.
  
 +2012-12-26  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (toplevel): Add two notices to the comment about
 +      defining a new Lisp data type.
 +      * print.c (print_object): If Lisp_Save_Value object's pointer
 +      is the address of a memory area containing Lisp_Objects, try
 +      to print them.
 +      * alloc.c (valid_lisp_object_p): Adjust comment.
 +
 +2012-12-26  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * keyboard.c (record_asynch_buffer_change): Initialize an event
 +      only if it's really needed.
 +      * frame.h (enum output_method): Remove output_mac member since
 +      it's a leftover from the deleted code.
 +      * frame.c (Fframep): Adjust user here ...
 +      * terminal.c (Fterminal_live_p): ... and here.
 +      * coding.c (Qmac): Now here because it's only used to denote
 +      end-of-line encoding type.
 +      (syms_of_coding): DEFSYM it.
 +      * frame.h (Qmac): Remove duplicated declaration.
 +
 +2012-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * window.c (select_window_1): Now static, since it's used only here.
 +
 +2012-12-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * window.c (window_body_cols): Subtract display margins from the
 +      window body width on TTYs as well.  See
 +      http://lists.gnu.org/archive/html/help-gnu-emacs/2012-12/msg00317.html
 +      for the original report.
 +
 +2012-12-25  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xdisp.c (redisplay_window): Remove inner local variable
 +      because the outer shadowed one has the same meaning.
 +      * xterm.h (struct x_output): Remove toolbar_detached member since it's
 +      set but never used.
 +      * gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
 +      (xg_create_tool_bar): Adjust users.
 +
 +2012-12-24  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * buffer.h (BUF_COMPACT): New macro to follow the common style.
 +      * buffer.c (Fget_buffer_create): Use it to set compact field of
 +      struct buffer_text to avoid accessing an uninitialized value
 +      when compact_buffer is called for the first time.
 +      (compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
 +      (Fset_buffer_modified_p): Use buffer_window_count to check
 +      whether the buffer is displayed in some window.
 +      * xdisp.c (message_dolog): Likewise.
 +
 +2012-12-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (acl_set_file): If setting the file security descriptor
 +      fails, and the new DACL is identical to the existing one, silently
 +      return success.  This fixes problems for users backing up their
 +      own files without having the necessary privileges for setting
 +      security descriptors.
 +
 +      * w32proc.c (reader_thread): Do not index fd_info[] with negative
 +      values.
 +      (reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
 +      after WaitForSingleObject returns normally.  This expedites reader
 +      thread shutdown when delete_child triggers it.
 +      (reap_subprocess): More accurate commentary for why we call
 +      delete_child only when cp->fd is negative.
 +
 +      * w32.c (sys_close): Do not call delete_child on a subprocess
 +      whose handle is not yet closed.  Instead, set its file descriptor
 +      to a negative value, so that reap_subprocess will call
 +      delete_child on that subprocess when its SIGCHLD arrives.  This
 +      avoids closing handles used for communications between sys_select
 +      and reader_thread, which doesn't give sys_select a chance to
 +      notice that the process exited and invoke the SIGCHLD handler for
 +      it.
 +
 +2012-12-23  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (Fns_do_applescript): Run event loop until script has
 +      been executed (Bug#12969).
 +      (ns_run_ascript): Chech as_script for nil, set to nil after
 +      executing script.
 +
  2012-12-22  Martin Rudalics  <rudalics@gmx.at>
  
        * window.c (Fselect_window): Reword doc-string (Bug#13248).
  
 +2012-12-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32term.c (w32fullscreen_hook): New function.
 +      (w32_create_terminal): Plug it into the terminal's fullscreen_hook.
 +
  2012-12-21  Eli Zaretskii  <eliz@gnu.org>
  
        * fileio.c (Finsert_file_contents): Doc fix.
  
        * buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
  
 -2012-12-15  Chong Yidong  <cyd@gnu.org>
 -
        * fns.c (Fcompare_strings): Doc fix (Bug#13081).
  
 -2012-12-14  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-21  Eli Zaretskii  <eliz@gnu.org>
  
        * w32.c (get_name_and_id): Always pass NULL as the first argument
        of lookup_account_sid.  Avoids crashes with UNC file names that
        (get_file_owner_and_group): Remove now unused argument FNAME; all
        callers changed.
  
 -2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-21  Chong Yidong  <cyd@gnu.org>
 +
 +      * editfns.c (Finsert_char): Since read-char-by-name now signals an
 +      error for invalid chars, don't check for a nil return value.
 +
 +2012-12-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid calls to CHAR_TO_BYTE if byte position is known.
 +      * editfns.c (make_buffer_string_both): Use move_gap_both.
 +      (Fbuffer_string): Use make_buffer_string_both.
 +      * marker.c (buf_charpos_to_bytepos): Convert to eassert.
 +      Adjust comment.
 +      (buf_bytepos_to_charpos): Likewise.
 +      (charpos_to_bytepos): Remove.
 +      * fileio.c (Finsert_file_contents): Use move_gap_both.
 +      * search.c (Freplace_match): Likewise.
 +      * process.c (process_send_region): Likewise.  Use convenient
 +      names for byte positions.
 +      * lisp.h (charpos_to_bytepos): Remove prototype.
 +      * indent.c (scan_for_column): Use CHAR_TO_BYTE.
 +      * insdel.c (move_gap): Likewise.
 +
 +2012-12-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xdisp.c (redisplay_internal): Remove now-unused local.
 +
 +2012-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
 +      (redisplay_internal): Don't bother selecting the frame to get the
 +      proper value of frame-local variables.
 +
 +2012-12-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * textprop.c (set_text_properties_1): Do not allow NULL interval.
 +      Rename 4th argument since it may be buffer or string.  Adjust comment.
 +      * intervals.c (graft_intervals_info_buffer): Find an interval here.
 +
 +2012-12-19  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * coding.c (Fdetect_coding_region): Do not check start and end with
 +      CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
 +      (code_convert_region): Likewise.
 +
 +2012-12-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (acl_get_file, acl_set_file): Run the file name through
 +      map_w32_filename, and resolve any symlinks in the file name, like
 +      Posix platforms do.
 +      (acl_set_file): Call revert_to_self, if any privileges were
 +      enabled.
 +
 +2012-12-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
 +      ($(BLD)/w32.$(O)): Update dependencies.
 +
 +2012-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (select_frame_for_redisplay): Use select_window_1 to
 +      propagate redisplay's scrolling (if any) to the right window.
 +      (redisplay_internal): Use ensure_selected_frame.
 +      (display_mode_lines): Complete last fix.
 +      * window.c (select_window_1): New func, extracted from select_window.
 +      (select_window): Use it.
 +      * window.h (select_window_1): Declare.
 +
 +2012-12-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Emulate Posix ACL APIs on MS-Windows.
 +      * w32.c: Include sddl.h and sys/acl.h.
 +      (SDDL_REVISION_1): Define if not already defined.
 +      (g_b_init_get_security_descriptor_dacl)
 +      (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
 +      (g_b_init_is_valid_security_descriptor)
 +      (g_b_init_set_file_security): New static flags.
 +      (globals_of_w32): Initialize them to zero.
 +      (SetFileSecurity_Name): New string constant.
 +      (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
 +      (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
 +      (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
 +      (IsValidSecurityDescriptor_Proc): New typedefs.
 +      (get_file_security, get_security_descriptor_owner)
 +      (get_security_descriptor_group): Set errno to ENOTSUP.
 +      (set_file_security, get_security_descriptor_dacl)
 +      (is_valid_security_descriptor, convert_sd_to_sddl)
 +      (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
 +      (acl_free, acl_get_file, acl_set_file): New functions.
 +
 +      * fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
 +
 +2012-12-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Don't reraise SIGCHLD, as that can now lose (Bug#13192).
 +      With the 2012-12-03 fix for Bug#12980 in place, an old workaround
 +      for some of that bug's symptoms can now cause Emacs to abort.
 +      Remove the workaround.
 +      * process.c (wait_reading_process_output): Don't reraise SIGCHLD.
 +      The bug that caused SIGCHLD to get lost has been fixed, and the
 +      workaround for it can now cause Emacs to abort.
 +
 +2012-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (emacs_abort): Bump backtrace size to 40.
 +      Companion to the 2012-09-30 patch.  Suggested by Eli Zaretskii in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00796.html>.
 +
 +2012-12-16  Romain Francoise  <romain@orebokech.com>
 +
 +      * fileio.c (Ffile_acl, Fset_file_acl): New functions.
 +      (Fcopy_file): Change last arg to `preserve_extended_attributes'
 +      and copy ACL entries of file in addition to SELinux context if set.
 +      (syms_of_fileio): Add `file-acl' and `set-file-acl'.
 +
 +      * Makefile.in (LIBACL_LIBS): New macro.
 +      (LIBES): Use it.
 +
 +2012-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fileio.c (internal_delete_file): Use bool for boolean.
 +
 +2012-12-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix bug #13079 on MS-Windows with temp files not being deleted.
 +      * w32.h (_child_process): New members input_file and
 +      pending_deletion.
 +      (register_child): First argument is now pid_t.
 +      (record_infile, record_pending_deletion): New prototypes.
 +
 +      * w32proc.c (new_child): Initialize input_file and
 +      pending_deletion members of the child.
 +      (delete_child): Delete the child's temporary input file, if any,
 +      that is pending deletion.
 +      (register_child): First argument is now pid_t.
 +      (record_infile, record_pending_deletion): New functions.
 +      (reap_subprocess): Fix a typo in DebPrint string.
 +      (sys_spawnve, sys_kill): Use pid_t for PID arguments.
 +
 +      * fileio.c (internal_delete_file): Return an int again: non-zero
 +      if delete-file succeeds, zero otherwise.
 +
 +      * lisp.h (internal_delete_file): Adjust prototype.
 +
 +      * callproc.c (Fcall_process): Don't overwrite infile with result
 +      of DECODE_FILE.
 +      [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
 +      asynchronous subprocess, record the name of the input file name,
 +      if any.
 +      (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
 +      delete the file, record it as pending deletion when the subprocess
 +      exits.
 +
 +2012-12-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * editfns.c [HAVE_PWD_H]: Include grp.h.
 +
 +      * makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
 +
 +2012-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix permissions bugs with setgid directories etc. (Bug#13125)
 +      * dired.c (Ffile_attributes): Return t as the 9th attribute,
 +      to mark it as a placeholder.  The old value was often wrong.
 +      The only user of this attribute has been changed to use
 +      file-ownership-preserved-p instead, with its new group arg.
 +      * editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
 +
 +2012-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (select_frame_for_redisplay, display_mode_lines):
 +      Keep selected_window and selected_frame in sync.
 +
 +2012-12-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
 +      try to get accurate owner and group information from NT file
 +      security APIs.  This is to make most callers of 'stat' and
 +      'lstat', which don't need that information, much faster.
 +
 +      * dired.c (Ffile_attributes) [WINDOWSNT]:
 +      Set w32_stat_get_owner_group to a non-zero value, to request accurate
 +      owner and group information from 'lstat'.
 +
 +2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fileio.c (Finsert_file_contents): Don't put tail into head area,
 +      as that confuses set-auto-coding, so insist on the head-read
 +      returning the full 1024 bytes.  Let lseek compute the tail offset;
 +      less work for us.  Do not ignore I/O errors when reading the tail.
 +
 +      * xdisp.c: Minor style fixes.
 +      (init_iterator): Hoist assignment out of if-expression.
 +      (markpos_of_region): Callers now test for sign, not for -1.
 +
 +2012-12-13  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Minor redisplay optimization when the region length is zero.
 +      * xdisp.c (markpos_of_region): New function.
 +      (init_iterator): Do not highlight the region of zero length.
 +      (redisplay_window): Check whether the region is of non-zero length.
 +      (try_cursor_movement): Allow if the region length is zero.
 +      (try_window_reusing_current_matrix, try_window_id): Likewise.
 +
 +2012-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * search.c (search_buffer): Check the inverse translations of each
        character in pattern when the buffer being searched is unibyte.
        (Bug#13084)
  
 -2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 +2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
  
        * fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
        files, fixing a regression from 24.2.
        (Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
  
 -2012-12-08  Jan Djärv  <jan.h.d@swipnet.se>
 +2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
 +      fstat shouldn't fail, and if it does fail copy-file should not proceed.
 +      Remove unnecessary S_ISLNK test, as (contra the comments) this
 +      function can't copy symlinks.  Improve quality of error message
 +      when attempting to copy files that are neither regular files nor
 +      directories.
 +
 +2012-12-12  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
 +      * gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
 +      * window.c (Frecenter):
 +      * xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
 +      * xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
 +
 +2012-12-12  Daniel Colascione  <dancol@dancol.org>
 +
 +      * unexcw.c (fixup_executable): Use posix_fallocate to ensure that
 +      the dumped Emacs is not a sparse file, greatly improving Cygwin
 +      "make bootstrap" performance.
 +
 +2012-12-11  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * inotify.c (inotify_callback): Generate an Emacs event for every
 +      incoming inotify event.
 +
 +2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (handle_face_prop): Fix logic of computing
 +      it->start_of_box_run_p.
 +      (append_space_for_newline): If the glyph row is R2L, reset the
 +      iterator's end_of_box_run_p flag before prepending the space glyph.
 +      (extend_face_to_end_of_line): If the glyph row is R2L, reset the
 +      iterator's start_of_box_run_p flag before prepending the stretch.
 +      (append_glyph, produce_image_glyph, append_composite_glyph)
 +      (append_stretch_glyph, append_glyphless_glyph): Reverse the
 +      left_box_line_p and right_box_line_p flags of the glyph for R2L
 +      glyph rows.  (Bug#13011)
 +
 +2012-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * buffer.c (Fset_buffer_multibyte): Do not force redisplay
 +      if changed buffer is not shown in a window.
 +      * insdel.c (prepare_to_modify_buffer): Likewise.
 +      * window.c (replace_buffer_in_windows_safely): Do nothing
 +      if buffer is not shown in a window.
 +      (Fforce_window_update): Likewise if string or buffer argument
 +      is passed.
 +
 +2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * inotify.c (Finotify_add_watch): Rename decoded_file_name to
 +      encoded_file_name, which is what it is.
 +
 +2012-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Consistently use marker_position and marker_byte_position.
 +      * fringe.c (Ffringe_bitmaps_at_pos):
 +      * indent.c (Fvertical_motion):
 +      * insdel.c (prepare_to_modify_buffer):
 +      * keyboard.c (make_lispy_position):
 +      * window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
 +      (window_scroll_pixel_based, displayed_window_lines)
 +      (Fset_window_configuration):
 +      * xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
 +      (mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
 +      Replace direct access to marker fields with calls
 +      to marker_position and/or marker_byte_position.
 +
 +2012-12-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (SIG2STR_H): New macro.
 +      (SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
 +      ($(BLD)/w32notify.$(O)): Update dependencies.
 +
 +2012-12-10  Daniel Colascione  <dancol@dancol.org>
 +
 +      * w32term.c, keyboard.c: Fix build break in cygw32 by omitting
 +      Windows file notification functionality unless WINDOWSNT.
 +
 +      * w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
 +      declarations.
 +
 +      * w32fns.c (cache_system_info): Initialize the global hinst
 +      variable here so various initialization calls DTRT.
 +
 +      * unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
 +      (hinst): Remove unneeded extern declaration.
 +      (_start): Remove initialization of above variables; remove
 +      initialization of hinst, as cache_system_info now does that.
 +
 +      * emacs.c (main): Call cache_system_info early in startup; we
 +      previously weren't calling it in Cygwin builds.
 +
 +      * Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
 +      Teach the autoconf build system how to compile a Windows resource file
 +      and link it to Emacs.
 +
 +2012-12-10  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Per-buffer window counters.
 +      * buffer.h (struct buffer): New member window_count.
 +      (buffer_window_count): New function.
 +      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 +      Initialize window_count.
 +      (Fkill_buffer): Verify window_count for the buffer being killed.
 +      (modify_overlay): Do not force redisplay if buffer is not shown
 +      in any window.
 +      (init_buffer_once): Initialize window_count for buffer_defaults
 +      and buffer_local_symbols.
 +      * window.h (buffer_shared): Remove declaration.
 +      (wset_buffer): Convert from inline ...
 +      * window.c (wset_buffer): ... to an ordinary function.
 +      (adjust_window_count): New function.
 +      (make_parent_window): Use it.
 +      * xdisp.c (buffer_shared): Remove.
 +      (redisplay_internal, redisplay_window): Adjust users.
 +      (buffer_shared_and_changed): Use per-buffer window counter.
 +
 +2012-12-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Support for filesystem notifications on MS-Windows.
 +      * w32proc.c (sys_select): If drain_message_queue returns non-zero,
 +      and this is a TTY frame, signal the caller that keyboard input is
 +      available.
 +
 +      * w32xfns.c (drain_message_queue): Now returns an int: an
 +      indication whether any WM_EMACS_FILENOTIFY messages were found in
 +      the queue.
 +
 +      * w32inevt.c (handle_file_notifications): New function.
 +      (w32_console_read_socket): Call it to process file notifications.
 +
 +      * w32console.c (initialize_w32_display): Record the main thread ID
 +      in dwMainThreadId.
 +
 +      * deps.mk (inotify.o): New dependency list.
 +
 +      * Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
 +
 +      * w32term.h (WM_EMACS_FILENOTIFY): New custom message.
 +      (WM_EMACS_END): Bump value by 1.
 +      (notification_buffer_in_use, file_notifications)
 +      (notifications_size, notifications_desc): Declare.
 +      (w32_get_watch_object, lispy_file_action, globals_of_w32notify):
 +      Add prototypes.
 +
 +      * w32term.c (lispy_file_action, queue_notifications): New functions.
 +      (syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
 +      <Qrenamed_to>: New symbols.
 +      (w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
 +
 +      * w32notify.c: New file, implements file event notifications for
 +      MS-Windows.
 +
 +      * w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
 +      by posting it to the w32_read_socket queue.
 +
 +      * termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
 +
 +      * makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
 +      (GLOBAL_SOURCES): Add w32notify.c
 +      ($(BLD)/w32notify.$(O)): New set of dependencies.
 +
 +      * lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
 +
 +      * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
 +      Handle FILE_NOTIFY_EVENT.
 +      (syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
 +      (keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
 +      w32notify-handle-event by default.
 +
 +      * emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
 +      syms_of_w32notify.
 +
 +2012-12-10  RĂ¼diger Sonderfeld  <ruediger@c-plusplus.de>
 +
 +      Support for filesystem notifications on GNU/Linux via inotify.
 +      * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
 +
 +      * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
 +
 +      * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
 +      (syms_of_keyboard): DEFSYM it.
 +      (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
 +      (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
 +      Qfile_inotify events.
 +      (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
 +      special-event-map to inotify-handle-event.
 +
 +      * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
 +
 +      * Makefile.in (base_obj): Add inotify.o.
 +
 +      * inotify.c: New file.
 +
 +2012-12-10  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
  
 -2012-12-08  Fabrice Popineau  <fabrice.popineau@gmail.com>
 +2012-12-10  Fabrice Popineau  <fabrice.popineau@gmail.com>
  
        * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
        DWORD_PTR, for compatibility with 64-bit builds.
        (system_process_attributes): Use SIZE_T rather than DWORD, for
        compatibility with 64-bit builds.
  
 -2012-12-08  Christopher Schmidt  <christopher@ch.ristopher.com>
 +2012-12-10  Christopher Schmidt  <christopher@ch.ristopher.com>
  
        * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
  
 -2012-12-07  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-10  Eli Zaretskii  <eliz@gnu.org>
  
        * indent.c (Fvertical_motion): If a display string will be
        displayed on the left or the right margin, don't consider it as a
        factor in cursor positioning.  (Bug#13108)
  
 -2012-12-07  Martin Rudalics  <rudalics@gmx.at>
 +2012-12-10  Martin Rudalics  <rudalics@gmx.at>
  
        * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
  
 -2012-12-05  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
 +      for string length.
 +
 +2012-12-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (unsetenv): Return 0 if the input string is too long.
 +
 +2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
 +      * alloc.c (xputenv): New function.
 +      * dbusbind.c (Fdbus_init_bus):
 +      * emacs.c (main):
 +      * xterm.c (x_term_init):
 +      Use xputenv instead of setenv or putenv, to detect memory exhaustion.
 +      * editfns.c (initial_tz): Move static var decl up.
 +      (tzvalbuf_in_environ): New static var.
 +      (init_editfns): Initialize these two static vars.
 +      (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
 +      Save old TZ value on stack, if it's small.
 +      (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
 +      instead, use xputenv+unsetenv to set and restore TZ.
 +      (environbuf): Remove static var.  All uses removed.
 +      (Fset_time_zone_rule): Do not save TZ and environ;
 +      no longer needed here.
 +      (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
 +      Move to inside set_time_zone_rule; they don't need file scope any more.
 +      (set_time_zone_rule): Maintain the TZ=value string separately.
 +      (syms_of_editfns): Don't initialize initial_tz;
 +      init_editfns now does it.
 +      * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
 +      * lisp.h (xputenv): New decl.
 +
 +2012-12-08  Fabrice Popineau  <fabrice.popineau@gmail.com>
 +
 +      * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
 +
 +2012-12-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (unsetenv, sys_putenv): New functions.
 +
 +2012-12-08  Chong Yidong  <cyd@gnu.org>
 +
 +      * editfns.c (Finsert_char): Make the error message more
 +      informative (Bug#12992).
 +
 +2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Simplify get_lim_data.
 +      * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
 +      Remove USG and vlimit methods; no longer used these days.
 +      Add #error catchall just in case.
 +
 +      Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
 +      Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
 +      SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
 +      * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
 +      (deleted_pid_list, Fdelete_process, create_process)
 +      (record_child_status_change, handle_child_signal, deliver_child_signal)
 +      (init_process_emacs, syms_of_process):
 +      Assume SIGCHLD is defined.
 +      (parse_signal): Remove.  All uses removed.
 +      (abbr_to_signal): New static function.
 +      (Fsignal_process): Use it to convert signal names to ints.
 +      * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
 +      kill (getpgrp (), ...).
 +      (emacs_sigaction_init): Assume SIGCHLD is defined.
 +      (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
 +      SIGPIPE, and SIGQUIT are defined.  Do not worry about SIGCLD any more.
 +      * syssignal.h (EMACS_KILLPG): Remove.
 +      All uses replaced by 'kill' with a negative pid.
 +      (SIGCHLD): Remove definition, as we now assume SIGCHLD.
 +      * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
 +
 +2012-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
 +      This will cause a production Emacs to dump core instead of
 +      infinite-looping.
 +
 +2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.c (make_frame): Do not set window's buffer to t.
 +      * window.c (Fsplit_window_internal): Likewise.  Previously it was
 +      used to indicate that the window is being set up.  Now we use
 +      set_window_buffer for all new windows, so the condition in ...
 +      (Fset_window_buffer): ... is always true and can be removed.
 +
 +2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Convenient macro to check whether the buffer is hidden.
 +      * buffer.h (BUFFER_HIDDEN_P): New macro.
 +      * frame.c (make_frame): Use it.  Adjust comment.
 +      * buffer.c (candidate_buffer): New function.
 +      (Fother_buffer, other_buffer_safely): Use it.
 +
 +2012-12-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
 +      if the child process is still running.  Instead, exit the wait
 +      loop and return zero.  (Bug#13086)
 +
 +2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.h (x_char_width, x_char_height): Remove prototypes.
 +      * w32term.h (x_char_width, x_char_height): Likewise.
 +      * xfns.c (x_char_width, x_char_height): Remove.
 +      * w32fns.c (x_char_width, x_char_height): Likewise.
 +      * nsfns.c (x_char_width, x_char_height): Likewise.
 +      * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
 +      all window frames.
 +      (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
 +      * keyboard.c (command_loop_1): Remove prototype.
 +      (command_loop_2, top_level_1): Add static to match prototype.
 +
 +2012-12-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix a recently-introduced delete-process race condition.
 +      * callproc.c, process.h (record_kill_process):
 +      New function, containing part of the old call_process_kill.
 +      (call_process_kill): Use it.
 +      This does not change call_process_kill's behavior.
 +      * process.c (Fdelete_process): Use record_kill_process to fix a
 +      race condition that could cause Emacs to lose track of a child.
 +
 +2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid code duplication between prev_frame and next_frame.
 +      * frame.c (candidate_frame): New function.  Add comment.
 +      (prev_frame, next_frame): Use it.  Adjust comment.
 +
 +2012-12-06  Eli Zaretskii  <eliz@gnu.org>
  
        * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
        fails, signal an error instead of continuing with an empty
        Encode expanded temp file pattern before passing it to mkstemp or
        mktemp.
  
 -2012-12-04  Eli Zaretskii  <eliz@gnu.org>
 -
        * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
        Encode the file name before passing it to dostounix_filename, in
        case it will downcase it (under w32-downcase-file-names).
        (Bug#12933)
  
 -2012-12-01  Chong Yidong  <cyd@gnu.org>
 +2012-12-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor call-process cleanups.
 +      * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
 +      at the same time as other platforms, to simplify analysis.
 +      No need for fd0_volatile since we have synch_process_fd.
 +      Avoid needless emacs_close; arg is always negative.
 +
 +2012-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
 +      processes.
 +
 +2012-12-04  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
 +      member.  Adjust users.  Convert mouse_face_past_end, mouse_face_defer
 +      and mouse_face_hidden members to a bitfields.
 +      * frame.h (struct frame): Remove set-but-not-used space_width member.
 +      (FRAME_SPACE_WIDTH): Remove.
 +      * nsterm.m, w32term.c, xterm.c: Adjust users.
 +      * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
 +      member.  Adjust users.  Convert term_initted, delete_in_insert_mode,
 +      costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
 +      members to a bitfields.
 +
 +2012-12-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Don't let call-process be a zombie factory (Bug#12980).
 +      Fixing this bug required some cleanup of the signal-handling code.
 +      As a side effect, this change also fixes a longstanding rare race
 +      condition whereby Emacs could mistakenly kill unrelated processes,
 +      and it fixes a bug where a second C-g does not kill a recalcitrant
 +      synchronous process in GNU/Linux and similar platforms.
 +      The patch should also fix the last vestiges of Bug#9488,
 +      a bug which has mostly been fixed on the trunk by other changes.
 +      * callproc.c, process.h (synch_process_alive, synch_process_death)
 +      (synch_process_termsig, sync_process_retcode):
 +      Remove.  All uses removed, to simplify analysis and so that
 +      less consing is done inside critical sections.
 +      * callproc.c (call_process_exited): Remove.  All uses replaced
 +      with !synch_process_pid.
 +      * callproc.c (synch_process_pid, synch_process_fd): New static vars.
 +      These take the role of what used to be in unwind-protect arg.
 +      All uses changed.
 +      (block_child_signal, unblock_child_signal):
 +      New functions, to avoid races that could kill innocent-victim processes.
 +      (call_process_kill, call_process_cleanup, Fcall_process): Use them.
 +      (call_process_kill): Record killed processes as deleted, so that
 +      zombies do not clutter up the system.  Do this inside a critical
 +      section, to avoid a race that would allow the clutter.
 +      (call_process_cleanup): Fix code so that the second C-g works again
 +      on common platforms such as GNU/Linux.
 +      (Fcall_process): Create the child process in a critical section,
 +      to fix a race condition.  If creating an asynchronous process,
 +      record it as deleted so that zombies do not clutter up the system.
 +      Do unwind-protect for WINDOWSNT too, as that's simpler in the
 +      light of these changes.  Omit unnecessary call to emacs_close
 +      before failure, as the unwind-protect code does that.
 +      * callproc.c (call_process_cleanup):
 +      * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
 +      * process.c (record_deleted_pid): New function, containing
 +      code refactored out of Fdelete_process.
 +      (Fdelete_process): Use it.
 +      (process_status_retrieved): Remove.  All callers changed to use
 +      child_status_change.
 +      (record_child_status_change): Remove, folding its contents into ...
 +      (handle_child_signal): ... this signal handler.  Now, this
 +      function is purely a handler for SIGCHLD, and is not called after
 +      a synchronous waitpid returns; the synchronous code is moved to
 +      wait_for_termination.  There is no need to worry about reaping
 +      more than one child now.
 +      * sysdep.c (get_child_status, child_status_changed): New functions.
 +      (wait_for_termination): Now takes int * status and bool
 +      interruptible arguments, too.  Do not record child status change;
 +      that's now the caller's responsibility.  All callers changed.
 +      Reimplement in terms of get_child_status.
 +      (wait_for_termination_1, interruptible_wait_for_termination):
 +      Remove.  All callers changed to use wait_for_termination.
 +      * syswait.h: Include <stdbool.h>, for bool.
 +      (record_child_status_change, interruptible_wait_for_termination):
 +      Remove decls.
 +      (record_deleted_pid, child_status_changed): New decls.
 +      (wait_for_termination): Adjust to API changes noted above.
 +
 +      * bytecode.c, lisp.h (Qbytecode): Remove.
 +      No longer needed after 2012-11-20 interactive-p changes.
 +
 +2012-12-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (redisplay_window): If the cursor is visible, but inside
 +      the scroll margin, move point outside the margin.  (Bug#13055)
 +
 +2012-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (my_log_handler): New function.
 +      (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
 +
 +2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (modify_region): Rename to...
 +      (modify_region_1): ...new prototype.
 +      * textprop.c (modify_region): Now static.  Adjust users.
 +      * insdel.c (modify_region): Rename to...
 +      (modify_region_1): ...new function to work with current buffer.
 +      Adjust comment and users.  Use true and false for booleans.
 +
 +2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * alloc.c (free_save_value): New function.
 +      (safe_alloca_unwind): Use it.
 +      * lisp.h (free_save_value): New prototype.
 +      * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
 +      Add comment.
 +      (save_excursion_restore): Adjust to match saved data structure.
 +      Use free_save_value to offload some work from GC.  Drop obsolete
 +      #if 0 code.
 +
 +2012-12-03  Chong Yidong  <cyd@gnu.org>
  
        * fileio.c (Vauto_save_list_file_name): Doc fix.
  
 -2012-11-30  Fabrice Popineau  <fabrice.popineau@gmail.com>
 +2012-12-03  Fabrice Popineau  <fabrice.popineau@gmail.com>
  
        * w32fns.c: Remove prototype of atof.
 -      (syspage_mask): Declared DWORD_PTR, for compatibility with 64-bit
 +      (syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
        builds.
 -      (file_dialog_callback): Declared UINT_PTR.
 +      (file_dialog_callback): Make it UINT_PTR.
  
        * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
        with 64-bit builds.
        (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
        defined.
  
 -2012-11-27  Glenn Morris  <rgm@gnu.org>
 +2012-12-03  Glenn Morris  <rgm@gnu.org>
  
        * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
  
 -2012-11-26  Eli Zaretskii  <eliz@gnu.org>
 +2012-12-02  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
 -      (Bug#11964)
 +      Fix xpalloc confusion after memory is exhausted.
 +      * alloc.c (xpalloc): Comment fix.
 +      * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
 +      and signals an error, do not clear charset_table_size, as
 +      charset_table is still valid.
 +      * doprnt.c (evxprintf): Clear *BUF after freeing it.
  
 -2012-11-24  Paul Eggert  <eggert@cs.ucla.edu>
 +      Use execve to avoid need to munge environ (Bug#13054).
 +      * callproc.c (Fcall_process):
 +      * process.c (create_process):
 +      Don't save and restore environ; no longer needed.
 +      * callproc.c (child_setup):
 +      Use execve, not execvp, to preserve environ.
  
 -      Revert recent change for Bug#8855.
 -      As reported by Harald Hanche-Olsen in
 -      <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00445.html>
 -      the change introduces a further bug, of creating lots of zombie
 -      processes in some cases.  Further work is needed to come up with a
 -      better fix for Bug#8855.
 +2012-12-01  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2012-11-24  Eli Zaretskii  <eliz@gnu.org>
 +      * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
 +
 +2012-12-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
 +      display for sliced images (Bug#10500).
 +
 +      * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
 +
 +2012-11-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * doc.c (Fdocumentation): Re-add handling of function-documentation,
 +      accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
 +
 +2012-11-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xdisp.c (window_outdated): Remove eassert since it hits
 +      some suspicious corner cases (see Bug#13007 and Bug#13012).
 +      (mode_line_update_needed): New function.
 +      (redisplay_internal, redisplay_window): Use it.
 +      (ensure_selected_frame): New function.
 +      (redisplay_internal, unwind_redisplay): Use it.
 +      (redisplay_internal): Move comment about buffer_shared...
 +      (buffer_shared_and_changed): ...near to its real use.
 +
 +2012-11-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * callproc.c (Fcall_process): Don't misreport vfork failure.
 +
 +2012-11-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * callproc.c (Fcall_process): Fix vfork portability problems.
 +      Do not assume that fd[0], count, filefd, and save_environ survive
 +      vfork.  Fix bug whereby wrong errno value could be reported for
 +      pipe failure.  Some minor cleanups, too, as follows.  Move buf and
 +      bufsize to the context where they're needed.  Change new_argv to
 +      be of type char **, as this is more convenient and avoids casts.
 +      (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
 +      Now local constants, not macros.
 +
 +2012-11-18  Kenichi Handa  <handa@gnu.org>
 +
 +      * font.c (font_unparse_xlfd): Fix previous change.  Keep "const"
 +      for the variable "f".
 +
 +2012-11-13  Kenichi Handa  <handa@gnu.org>
 +
 +      * font.c (font_unparse_xlfd): Exclude special characters from the
 +      generating XLFD name.
 +
 +2012-11-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
 +      * dired.c (stat_uname, stat_gname):
 +      * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
 +
 +      Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
 +      * dired.c (directory_files_internal, file_name_completion):
 +      Assume EAGAIN and EINTR are defined.
 +
 +      * fileio.c (Fcopy_file): Assume EISDIR is defined.
 +      * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
 +      * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
 +      * lread.c (readbyte_from_file): Assume EINTR is defined.
 +      * process.c (wait_reading_process_output, send_process) [subprocesses]:
 +      Assume EIO and EAGAIN are defined.
 +      * unexcoff.c (write_segment): Assume EFAULT is defined.
 +
 +2012-11-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
 +      (Bug#11964)
  
        * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
        highlighting on the frame was cleared.  Prevents assertion
        violations when repeatedly clicking on the "Top" link of the
        "bread-crumbs" in Info buffers.
  
 -2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 -          Eli Zaretskii  <eliz@gnu.org>
 -
 -      Fix a race condition with glib (Bug#8855).
 -      The symptom is a diagnostic "GLib-WARNING **: In call to
 -      g_spawn_sync(), exit status of a child process was requested but
 -      SIGCHLD action was set to SIG_IGN and ECHILD was received by
 -      waitpid(), so exit status can't be returned."  The diagnostic
 -      is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
 -      The real bug is a race condition between Emacs and glib: Emacs
 -      does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
 -      so that glib can't find it.  Work around the bug by invoking
 -      waitpid only on subprocesses that Emacs itself creates.
 -
 -      This is a backport from the trunk, consisting of:
 +2012-11-25  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * w32proc.c (create_child): Don't clip the PID of the child
 -      process to fit into an Emacs integer, as this is no longer a
 -      restriction.
 -      (waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
 -      reaping only the process specified by PID argument, if that is
 -      positive.  Use PID instead of dead_child to know which process to
 -      reap.  Wait for the child to die only if WNOHANG is not in
 -      OPTIONS.
 -      (sys_select): Don't set dead_child.
 +      * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
  
 -      * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
 -      as it is no longer needed.
 +2012-11-24  Ken Brown  <kbrown@cornell.edu>
  
 -      * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
 -      no longer needed.
 -      (create_process, record_child_status_change): Don't use special
 -      value -1 in pid field, as the caller now must know the pid rather
 -      than having the callee infer it.  The inference was sometimes
 -      incorrect anyway, due to another race.
 -      (create_process): Set new 'alive' member if child is created.
 -      (process_status_retrieved): New function.
 -      (record_child_status_change): Use it.
 -      Accept negative 1st argument, which means to wait for the
 -      processes that Emacs already knows about.  Move special-case code
 -      for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
 -      processes that have already been waited for, by testing and
 -      clearing new 'alive' member. Remove the setting of
 -      record_at_most_one_child for the !WNOHANG case.
 -      (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
 -      now does this internally.
 -      (handle_child_signal): Let record_child_status_change do all
 -      the work, since we do not want to reap all exited child processes,
 -      only the child processes that Emacs itself created.
 -      * process.h (Lisp_Process): New boolean member 'alive'.
 +      * keyboard.c (HAVE_MOUSE):
 +      * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
 +      were always defined.
  
 -2012-11-23  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-24  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
        between bpos_covered and bpos_max.  This fixes cursor display when
        pointer to string data, rather than the value of the string object
        itself (which barfs under CHECK_LISP_OBJECT_TYPE).
  
 -2012-11-21  Eli Zaretskii  <eliz@gnu.org>
 -
        * indent.c (Fvertical_motion): If the starting position is covered
        by a display string, return to one position before that, to avoid
        overshooting it inside move_it_to.  (Bug#12930)
  
 -2012-11-20  Daniel Colascione  <dancol@dancol.org>
 +2012-11-23  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.h (struct frame): Remove display_preempted member
 +      since all users are dead long ago.
 +      * nsterm.h (struct x_output): Use the only dummy member.
 +      * w32menu.c (pending_menu_activation): Remove since not
 +      really used.
 +      (set_frame_menubar): Adjust user.
 +      * w32term.h (struct x_output): Drop outdated #if 0 code.
 +      (struct w32_output): Use bitfields for explicit_parent,
 +      asked_for_visible and menubar_active members.
 +      Drop unused pending_menu_activation member.
 +      * xterm.h (struct x_output): Drop outdated #if 0 code.
 +      Use bitfields for explicit_parent, asked_for_visible,
 +      has_been_visible and net_wm_state_hidden_seen members.
  
 -      * w32fns.c (Fx_file_dialog):
 -      (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
 -      cygwin_convert_file_name*.
 +2012-11-23  Eli Zaretskii  <eliz@gnu.org>
  
 -      * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
 -      Rename cygwin_convert_path* to cygwin_convert_file_name*.
 +      * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
 +      of a literal "/".  (Bug#12955)
 +      (gl-stamp): Invoke fc.exe directly, not through cmd.
 +
 +2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
 +      * dired.c: Assume HAVE_DIRENT_H.
 +      (NAMLEN): Remove, replacing with ...
 +      (dirent_namelen): New function.  All uses changed.  Use the GNU macro
 +      _D_EXACT_NAMELEN if available, as it's faster than strlen.
 +      (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
 +      (DIRENTRY_NONEMPTY): Remove.  All callers now assume it's nonzero.
 +      * makefile.w32-in (DIR_H): Remove.  All uses replaced with
 +      $(NT_INC)/dirent.h.
 +      ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
 +      * ndir.h: Rename to ../nt/inc/dirent.h.
 +      * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
 +      Do not include <dirent.h>; no longer needed.
 +      * w32.c: Include <dirent.h> rather than "ndir.h".
 +
 +2012-11-23  Chong Yidong  <cyd@gnu.org>
 +
 +      * xftfont.c (xftfont_open): Remove duplicate assignment.
 +
 +2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * alloc.c (Fgarbage_collect): Unblock input after clearing
 +      gc_in_progress to avoid note_mouse_highlight glitch with GC.
 +      * frame.h (FRAME_MOUSE_UPDATE): New macro.
 +      * msdos.c (IT_frame_up_to_date): Use it here...
 +      * w32term.c (w32_frame_up_to_date): ...here...
 +      * xterm.c (XTframe_up_to_date): ...and here...
 +      * nsterm.m (ns_frame_up_to_date): ...but not here.
 +      * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
 +      Adjust users.
 +      * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
 +      Do not check whether GC is in progress.
 +
 +2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xdisp.c (window_buffer_changed): New function.
 +      (update_menu_bar, update_tool_bar): Use it to
 +      simplify large 'if' statements.
 +      (redisplay_internal): Generalize commonly used
 +      'tail' and 'frame' local variables.
 +
 +2012-11-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
 +      with Windows system header.
 +
 +2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
 +      * alloc.c: Assume unistd.h exists.
 +      * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
 +      * sysdep.c (get_current_dir_name): Assume getcwd exists.
 +      (getwd) [USG]: Remove; no longer needed.
 +      (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
 +      * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
 +      * w32.h (getcwd): Remove decl.
 +
 +2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2012-11-20  Ken Brown  <kbrown@cornell.edu>
 +      * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
 +      Make it set selected_window as well.
 +      (update_tool_bar): Use it.
 +
 +2012-11-21  Ken Brown  <kbrown@cornell.edu>
  
        * emacs.c (main): Set the G_SLICE environment variable for all
        Cygwin builds, not just GTK builds.  See
        https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
  
 -2012-11-19  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (start_hourglass) [HAVE_NTGUI]: Don't mix declaration of
 -      w32_note_current_window with code.  (Backport from trunk.)
 +2012-11-21  Eli Zaretskii  <eliz@gnu.org>
  
        * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
        (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
        Define for the MSVC compiler.
  
 -      * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing
 -      semi-colon.
 -
 -2012-11-18  Eli Zaretskii  <eliz@gnu.org>
 +      * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
  
        * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
        (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
        dostounix_filename.  Prevents crashes down the road, because
 -      dostounix_filename assumes it gets a unibyte string.  Reported by
 -      Michel de Ruiter <michel@sentient.nl>, see
 +      dostounix_filename assumes it gets a unibyte string.
 +      Reported by Michel de Ruiter <michel@sentient.nl>, see
        http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
  
 -2012-11-17  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Conflate Qnil and Qunbound for `symbol-function'.
 +      * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
 +      * lread.c (init_obarray): Set `function' fields to Qnil.
 +      * eval.c (Fcommandp): Ignore Qunbound.
 +      (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
 +      * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
 +      Test NILP rather than Qunbound.
 +      (Ffmakunbound): Set to Qnil.
 +      (Fsymbol_function): Never signal an error.
 +      (Finteractive_form): Ignore Qunbound.
 +
 +2012-11-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * eval.c (interactive_p): Remove no-longer-used decl.
 +
 +2012-11-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xdisp.c (buffer_shared): Adjust comment.
 +      (buffer_shared_and_changed): New function.
 +      (prepare_menu_bars, redisplay_internal): Use it to
 +      decide whether all windows or frames should be updated.
 +      (window_outdated): New function.
 +      (text_outside_line_unchanged_p, redisplay_window): Use it.
 +      (redisplay_internal): Likewise.  Fix indentation.
 +
 +2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
 +      (syms_of_eval): Remove corresponding defsubr.
 +      * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
 +
 +2012-11-19  Daniel Colascione  <dancol@dancol.org>
 +
 +      * w32fns.c (Fx_file_dialog):
 +      (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
 +      cygwin_convert_file_name*.
 +
 +      * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
 +      Rename cygwin_convert_path* to cygwin_convert_file_name*.
 +
 +2012-11-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
 +
 +2012-11-18  Eli Zaretskii  <eliz@gnu.org>
  
        * w32select.c: Include w32common.h before w32term.h, so that
        windows.h gets included before w32term.h uses some of its
        features, see below.
  
 -      * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: New
 -      typedefs.
 -      (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: New
 -      prototypes.
 +      * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
 +      New typedefs.
 +      (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
 +      New prototypes.
        (EnumSystemLocales) [_MSC_VER]: Define if undefined.  (Bug#12878)
  
 -2012-11-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2012-11-18  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
        (ns_select): Return at once if events are held (Bug#12834).
  
 -2012-11-16  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +2012-11-18  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
  
        * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
        Needed following 2012-10-20 change.  (Bug#12902)
  
 +2012-11-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32proc.c (waitpid): Remove unused label get_result.
 +
 +2012-11-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (SYSWAIT_H): New macro.
 +      ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
 +      ($(BLD)/sysdep.$(O)): Update dependencies.
 +
 +2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
 +      * callproc.c (relocate_fd): Assume F_DUPFD.
 +      * emacs.c, term.c (O_RDWR): Remove.
 +      * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
 +      O_NDELAY, since O_NONBLOCK is the standard name for this flag.
 +      * nsterm.m: Assume <fcntl.h> exists.
 +      * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
 +      (create_pty, Fmake_network_process, server_accept_connection)
 +      (wait_reading_process_output, init_process_emacs):
 +      Assume O_NONBLOCK.
 +      (wait_reading_process_output): Put in a special case for WINDOWSNT
 +      to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
 +      It's not clear this is needed, but it's a more-conservative change.
 +      (create_process): Assume FD_CLOEXEC.
 +      (create_process, create_pty): Assume O_NOCTTY.
 +      * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
 +      (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
 +      Omit if not DOS_NT, since F_GETFL is not defined there.
 +      (serial_open): Assume O_NONBLOCK and O_NOCTTY.
 +      * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
 +      (O_NOCTTY): Remove.
 +      (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
 +      lack it, since gnulib guarantees this.
 +      * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
 +
 +2012-11-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (faccessat): Pretend that directories have the execute bit
 +      set.  Emacs expects that, e.g., in files.el:cd-absolute.
 +
 +      * w32proc.c (create_child): Don't clip the PID of the child
 +      process to fit into an Emacs integer, as this is no longer a
 +      restriction.
 +      (waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
 +      reaping only the process specified by PID argument, if that is
 +      positive.  Use PID instead of dead_child to know which process to
 +      reap.  Wait for the child to die only if WNOHANG is not in
 +      OPTIONS.
 +      (sys_select): Don't set dead_child.
 +
 +      * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
 +      as it is no longer needed.
 +
 +      * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
 +      no longer needed.
 +      (record_child_status_change): Remove the setting of
 +      record_at_most_one_child for the !WNOHANG case.
 +
 +2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix problems in ns port found by static checking.
 +      * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
 +      (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
 +      not to process group.
 +      (ns_select): Use emacs_write, not write, as that's more robust
 +      in the presence of signals.
 +      (fd_handler:): Check for read errors.
 +
  2012-11-16  Glenn Morris  <rgm@gnu.org>
  
        * editfns.c (Fmessage): Mention message-log-max.  (Bug#12849)
  
 -2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2012-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * eval.c (Finteractive_p): Revert lexbind-merge mishap.
  
 -2012-11-14  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-16  Eli Zaretskii  <eliz@gnu.org>
  
        * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
        use the same value of thread handle.
        (getitimer): Don't duplicate the caller thread's handle here.
        (Bug#12832)
  
 -2012-11-13  Jan Djärv  <jan.h.d@swipnet.se>
 +2012-11-16  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
        called (Bug#12834).
  
 -2012-11-12  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer-used pty_max_bytes variable.
 +      * process.c (pty_max_bytes): Remove; unused.
 +      (send_process): Do not set it.
 +
 +2012-11-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
 +      Update dependencies.
 +
 +2012-11-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
 +      This follows up on the 2012-09-29 patch that removed indirection
 +      for the 'function' field.  Reported by Sergey Vinokurov in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
 +
 +2012-11-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (faccessat): Rename from sys_faccessat.  (No need to use a
 +      different name, as the MS runtime does not have such a function,
 +      and probably never will.)  All callers changed.  Ignore DIRFD
 +      value if PATH is an absolute file name, to match Posix spec
 +      better.  If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
 +      symlinks.
 +
 +2012-11-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xdisp.c (echo_area_display, redisplay_internal):
 +      Omit redundant check whether frame_garbaged is set.
 +
 +2012-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use faccessat, not access, when checking file permissions (Bug#12632).
 +      This fixes a bug that has been present in Emacs since its creation.
 +      It was reported by Chris Torek in 1983 even before GNU Emacs existed,
 +      which must set some sort of record.  (Torek's bug report was against
 +      a predecessor of GNU Emacs, but GNU Emacs happened to have the
 +      same common flaw.)  See Torek's Usenet posting
 +      "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
 +      Posted: Fri Apr  8 14:18:56 1983.
 +      * Makefile.in (LIB_EACCESS): New macro.
 +      (LIBES): Use it.
 +      * callproc.c (init_callproc):
 +      * charset.c (init_charset):
 +      * fileio.c (check_existing, check_executable, check_writable)
 +      (Ffile_readable_p):
 +      * lread.c (openp, load_path_check):
 +      * process.c (allocate_pty):
 +      * xrdb.c (file_p):
 +      Use effective UID when checking permissions, not real UID.
 +      * callproc.c (init_callproc):
 +      * charset.c (init_charset):
 +      * lread.c (load_path_check, init_lread):
 +      Test whether directories are accessible, not merely whether they exist.
 +      * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
 +      * fileio.c (check_existing, check_executable, check_writable)
 +      (Ffile_readable_p):
 +      Use symbolic names instead of integers for the flags, as they're
 +      portable now.
 +      (check_writable): New arg AMODE.  All uses changed.
 +      Set errno on failure.
 +      (Ffile_readable_p): Use faccessat, not stat + open + close.
 +      (Ffile_writable_p): No need to call check_existing + check_writable.
 +      Just call check_writable and then look at errno.  This saves a syscall.
 +      dir should never be nil; replace an unnecessary runtime check
 +      with an eassert.  When checking the parent directory of a nonexistent
 +      file, check that the directory is searchable as well as writable, as
 +      we can't create files in unsearchable directories.
 +      (file_directory_p): New function, which uses 'stat' on most platforms
 +      but faccessat with D_OK (for efficiency) if WINDOWSNT.
 +      (Ffile_directory_p, Fset_file_times): Use it.
 +      (file_accessible_directory_p): New function, which uses a single
 +      syscall for efficiency.
 +      (Ffile_accessible_directory_p): Use it.
 +      * xrdb.c (file_p): Use file_directory_p.
 +      * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
 +      * lread.c (openp): When opening a file, use fstat rather than
 +      stat, as that avoids a permissions race.  When not opening a file,
 +      use file_directory_p rather than stat.
 +      (dir_warning): First arg is now a usage string, not a format.
 +      Use errno.  All uses changed.
 +      * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
 +      that merely introduced a race.
 +      * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
 +      changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
 +      and similarly for the other O_* flags.
 +      * w32.c (sys_faccessat): Rename from sys_access and switch to
 +      faccessat's API.  All uses changed.
 +      * xrdb.c: Do not include <sys/stat.h>; no longer needed.
 +      (magic_db): Rename from magic_file_p.
 +      (magic_db, search_magic_path): Return an XrmDatabase rather than a
 +      char *, so that we don't have to test for file existence
 +      separately from opening the file for reading.  This removes a race
 +      fixes a permission-checking problem, and simplifies the code.
 +      All uses changed.
 +      (file_p): Remove; no longer needed.
 +
 +2012-11-13  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Omit glyphs initialization at startup.
 +      * dispnew.c (glyphs_initialized_initially_p): Remove.
 +      (adjust_frame_glyphs_initially): Likewise.  Adjust users.
 +      (Fredraw_frame): Move actual code from here...
 +      (redraw_frame): ...to here.  Add eassert.  Adjust comment.
 +      (Fredraw_display): Use redraw_frame.
 +      * xdisp.c (clear_garbaged_frames): Likewise.
 +
 +2012-11-13  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
        passed to pint2str and pint2hrstr to be at most the size of the
        large values of FIELD_WIDTH argument to decode_mode_spec.
        (Bug#12867)
  
 -2012-11-07  Martin Rudalics  <rudalics@gmx.at>
 +2012-11-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix a race with verify-visited-file-modtime (Bug#12863).
 +      Since at least 1991 Emacs has ignored an mtime difference of no
 +      more than one second, but my guess is that this was to work around
 +      file system bugs that were fixed long ago.  Since the race is
 +      causing problems now, let's remove that code.
 +      * fileio.c (Fverify_visited_file_modtime): Do not accept a file
 +      whose time stamp is off by no more than a second.  Insist that the
 +      file time stamps match exactly.
 +
 +2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.h (struct frame): Convert external_tool_bar member to
 +      1-bit unsigned bitfield.
 +      * termhooks.h (struct terminal): Remove mouse_moved member since
 +      all users are long dead.  Adjust comment on mouse_position_hook.
 +
 +2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Simplify by using FOR_EACH_FRAME here and there.
 +      * frame.c (next_frame, prev_frame, other_visible_frames)
 +      (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
 +      * w32term.c (x_window_to_scroll_bar): Likewise.
 +      * window.c (window_list): Likewise.
 +      * xdisp.c (x_consider_frame_title): Likewise.
 +      * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
 +      * xfns.c (x_window_to_frame, x_any_window_to_frame)
 +      (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
 +      * xmenu.c (menubar_id_to_frame): Likewise.
 +      * xselect.c (frame_for_x_selection): Likewise.
 +      * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
 +      (x_window_to_menu_bar): Likewise.
 +      * w32fns.c (x_window_to_frame): Likewise.  Adjust comment.
 +
 +2012-11-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * data.c (Qdefalias_fset_function): Now static.
 +
 +      Another tweak to vectorlike_header change.
 +      * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
 +      Remove, and replace all uses with ...
 +      (next_in_free_list, set_next_in_free_list):
 +      New functions, which respect C's aliasing rules better.
 +
 +2012-11-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * window.c (list4i): Rename from 'quad'.  All uses changed.
 +      Needed because <sys/types.h> defines 'quad' on Solaris 10.
 +
 +2012-11-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
 +      warning about mixing declarations and code in ISO C90.
 +
 +2012-11-10  Martin Rudalics  <rudalics@gmx.at>
  
        * window.c (Fsplit_window_internal): Set combination limit of
        new parent window to t iff Vwindow_combination_limit is t;
        fixing a regression introduced with the change from 2012-09-22.
 -      (Fwindow_combination_limit, Fset_window_combination_limit):
 -      Fix doc-strings.
 +      (Fset_window_combination_limit): Fix doc-string.
  
 -2012-11-06  Eli Zaretskii  <eliz@gnu.org>
 +2012-11-10  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
        amount when the scroll margins are too large.  When scrolling
        point is positioned many lines beyond the window top/bottom.
        (Bug#12811)
  
 -2012-11-05  Eli Zaretskii  <eliz@gnu.org>
 -
        * ralloc.c (relinquish): If real_morecore fails to return memory
        to the system, don't crash; instead, leave the last heap
        unchanged and return.  (Bug#12774)
  
 +2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.h (AUTOLOADP): New macro.
 +      * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
 +      * data.c (Ffset): Remove special ad-advice-info handling.
 +      (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
 +      (Fsubr_arity): CSE.
 +      (Finteractive_form): Simplify.
 +      (Fquo): Don't insist on having at least 2 arguments.
 +      (Qdefalias_fset_function): New var.
 +
 +2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * image.c (xpm_make_color_table_h): Change to hashtest_equal.
 +
 +      * nsfont.m (Qcondensed, Qexpanded): New variables.
 +      (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
 +      (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
 +
 +2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Fix recently introduced crash on MS-Windows (Bug#12839).
 +      * w32term.h (struct scroll_bar): Use convenient header.
 +      (SCROLL_BAR_VEC_SIZE): Remove.
 +      * w32term.c (x_scroll_bar_create): Use VECSIZE.
 +
 +2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Tweak last vectorlike_header change.
 +      * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
 +      vectorlike object on the free list.  This is introduced to avoid
 +      some (but not all) pointer casting and aliasing problems, see
 +      http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
 +      * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
 +      objects.
 +      (xvectype, xvecsize): Use them to examine Lisp_Object values.
 +
 +2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
 +      been removed, so remove them here also.
 +
 +2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * doc.c (Fdocumentation): Handle new property
 +      dynamic-docstring-function to replace the old ad-advice-info.
 +
 +2012-11-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fns.c (Qeql, hashtest_eq): Now static.
 +
 +2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
 +      * fns.c (hashfn_eq, hashfn_eql, sxhash):
 +      * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
 +      * buffer.c (compare_overlays): Use XLI rather than XHASH.
 +
 +2012-11-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use same hash function for hashfn_profiler as for hash_string etc.
 +      * fns.c (SXHASH_COMBINE): Remove.  All uses replaced by sxhash_combine.
 +      * lisp.h (sxhash_combine): New inline function, with the contents
 +      of the old SXHASH_COMBINE.
 +      * profiler.c (hashfn_profiler): Use it, instead of having a
 +      special hash function containing a comparison that always yields 1.
 +
 +2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
 +      (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
 +      (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
 +      Remove unused vars.
 +
 +2012-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * image.c (xpm_make_color_table_h): Fix compiler error because
 +      make_hash_table changed.
 +
 +2012-11-08  Thomas Kappler <tkappler@gmail.com> (tiny change)
 +
 +      * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
 +
 +2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use ad-hoc comparison function for the profiler's hash-tables.
 +      * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
 +      (make_log): Use them.
 +      (handle_profiler_signal): Don't inhibit quit any longer since we don't
 +      call Fequal any more.
 +      (Ffunction_equal): New function.
 +      (cmpfn_profiler, hashfn_profiler): New functions.
 +      (syms_of_profiler): Initialize them.
 +      * lisp.h (struct hash_table_test): New struct.
 +      (struct Lisp_Hash_Table): Use it.
 +      * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
 +      * fns.c (make_hash_table): Take a struct to describe the test.
 +      (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
 +      (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
 +      (hash_lookup, hash_remove_from_table): Move assertion checking of
 +      hashfn result here.  Check hash-equality before calling cmpfn.
 +      (Fmake_hash_table): Adjust call to make_hash_table.
 +      (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
 +      (syms_of_fns): Initialize them.
 +      * emacs.c (main): Move syms_of_fns earlier.
 +      * xterm.c (syms_of_xterm):
 +      * category.c (hash_get_category_set): Adjust call to make_hash_table.
 +      * print.c (print_object): Adjust to new hash-table struct.
 +      * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
 +
 +2012-11-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
 +      value of w32-scroll-lock-modifier is neither nil nor one of the
 +      known key modifiers.  (Bug#12806)
 +
 +2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Shrink struct vectorlike_header to the only size field.
 +      * lisp.h (enum pvec_type): Avoid explicit enum member values.
 +      Adjust comment.
 +      (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
 +      PVEC_TYPE_MASK to arrange new bitfield in the vector header.
 +      (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
 +      (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
 +      information from the vector header.  Adjust comment.
 +      (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
 +      (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
 +      layout.
 +      (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
 +      (struct vectorlike_header): Remove next member.  Adjust comment.
 +      (struct Lisp_Subr): Add convenient header.  Adjust comment.
 +      (allocate_pseudovector): Adjust prototype.
 +      * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
 +      (sweep_string, lisp_malloc): Remove useless prototypes.
 +      (enum mem_type): Adjust comment.
 +      (NEXT_IN_FREE_LIST): New macro.
 +      (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
 +      (Fmake_bool_vector): Likewise.
 +      (struct large_vector): New type to represent allocation unit for
 +      the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
 +      (large_vectors): Change type to struct large_vector.
 +      (allocate_vector_from_block): Simplify.
 +      (PSEUDOVECTOR_NBYTES): Replace with...
 +      (vector_nbytes): ...new function.  Adjust users.
 +      (sweep_vectors): Adjust processing of large vectors.
 +      (allocate_vectorlike): Likewise.
 +      (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
 +      Add easserts.  Adjust XSETPVECTYPESIZE usage.
 +      (allocate_buffer): Use BUFFER_PVEC_INIT.
 +      (live_vector_p): Adjust to match large vector.
 +      * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
 +      * buffer.h (struct buffer): Add next member.
 +      (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
 +      New macros.
 +      (FOR_EACH_BUFFER): Adjust to match struct buffer change.
 +      * fns.c (internal_equal): Adjust to match enum pvec_type change.
 +      (copy_hash_table): Adjust to match vector header change.
 +      * lread.c (defsubr): Use XSETPVECTYPE.
 +      * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
 +      (xvectype): Likewise.  Print PVEC_NORMAL_VECTOR for regular vectors.
 +      (xvecsize): New command.
 +
 +2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * keyboard.c (event_to_kboard): Do not dereference
 +      frame_or_window field of SELECTION_REQUEST_EVENT
 +      and SELECTION_CLEAR_EVENT events (Bug#12814).
 +      * xterm.h (struct selection_input_event): Adjust comment.
 +
 +2012-11-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (modifier_set): Don't report modifiers from toggle key,
 +      such as Scroll Lock, if the respective keys are treated as
 +      function keys, not as modifiers.  This avoids destroying non-ASCII
 +      keyboard input when Scroll Lock is toggled ON.  (Bug#12806)
 +
 +2012-11-07  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xfns.c (Fx_wm_set_size_hint): Use check_x_frame.  Adjust docstring.
 +
 +2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Restore some duplicate definitions (Bug#12814).
 +      This undoes part of the 2012-11-03 changes.  Some people build
 +      with plain -g rather than with -g3, and they need the duplicate
 +      definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
 +      * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
 +      Define as macros, as well as as enums or as constants.
 +
 +2012-11-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
 +      to keypad keys (Bug#12816).
 +
 +2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor adjustments of recently-changed frame functions.
 +      * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
 +      known to be a frame (we're in the FRAMEP branch).
 +      * lisp.h (Qframep): Remove decl.  frame.h declares this.
 +      * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
 +      since they're meant for Lisp fixnum values.
 +
 +2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * window.c (Fwindow_combination_limit): Revert to the only
 +      required argument and adjust docstring as suggested in
 +      http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
 +      by Martin Rudalics <rudalics@gmx.at>.
 +
 +2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Widely used frame validity and checking functions.
 +      * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
 +      * frame.c (decode_live_frame, decode_any_frame): New functions.
 +      (delete_frame, Fredirect_frame_focus, Fframe_parameters)
 +      (Fframe_parameter, Fframe_char_height, Fframe_char_width)
 +      (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
 +      (Fframe_pointer_visible_p): Use decode_any_frame.
 +      (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
 +      (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
 +      (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
 +      (Fframe_focus): Likewise.  Allow zero number of arguments.
 +      Adjust docstring.
 +      (frame_buffer_list, frame_buffer_predicate): Remove.
 +      * lisp.h (frame_buffer_predicate): Remove prototype.
 +      * buffer.c (Fother_buffer): Use decode_any_frame.
 +      * xdisp.c (Ftool_bar_lines_needed): Likewise.
 +      * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
 +      * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
 +      (Fclose_font, Ffont_info): Use decode_live_frame.
 +      * fontset.c (check_fontset_name): Likewise.
 +      * terminal.c (Fframe_terminal): Likewise.
 +      * w32fns.c (check_x_frame): Likewise.
 +      * window.c (Fminibuffer_window, Fwindow_at)
 +      (Fcurrent_window_configuration): Likewise.
 +      (Frun_window_configuration_change_hook, Fwindow_resize_apply):
 +      Likewise.  Allow zero number of arguments.  Adjust docstring.
 +      * dispnew.c (Fredraw_frame): Likewise.
 +      * xfaces.c (frame_or_selected_frame): Remove.
 +      (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
 +      (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
 +      (Fframe_face_alist): Use decode_live_frame.
 +      * xfns.c (check_x_frame): Likewise.
 +
 +2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * window.c (quad): New function.
 +      (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
 +      (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
 +      (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
 +      (Fwindow_line_height): Use it.
 +      (Fwindow_fringes): Use list3.
 +      (Fwindow_scroll_bars): Use list4.
 +      (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
 +      (Fwindow_combination_limit): Allow zero number of arguments.
 +
 +2012-11-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
 +
 +      * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
 +      (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
 +      file descriptor 2 for standard error.  (Bug#12805)
 +
 +2012-11-05  Chong Yidong  <cyd@gnu.org>
 +
 +      * process.c (wait_reading_process_output): Revert previous change.
 +
 +2012-11-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
 +      This removes code that has been obsolete since around 1990.
 +      * callproc.c (Fcall_process):
 +      * emacs.c (main):
 +      * process.c (create_process):
 +      * term.c (dissociate_if_controlling_tty):
 +      Assume setsid exists.
 +      * callproc.c (child_setup): Assume setpgid exists and behaves as
 +      per POSIX.1-1988 or later.
 +      * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
 +      * emacs.c (shut_down_emacs):
 +      * sysdep.c (sys_suspend, init_foreground_group):
 +      Assume getpgrp behaves as per POSIX.1-1998 or later.
 +      * msdos.c (setpgrp): Remove.
 +      (tcgetpgrp, setpgid, setsid): New functions.
 +      * systty.h (EMACS_GETPGRP): Remove.  All callers now use getpgrp.
 +      * term.c (no_controlling_tty): Remove; unused.
 +      * w32proc.c (setpgrp): Remove.
 +      (setsid, tcgetpgrp): New functions.
 +
 +      Simplify by assuming __fpending.
 +      * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
 +      (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
 +      Do not assume that __fpending's result fits in int.
 +
 +2012-11-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove EMACS_OUTQSIZE+sleep hack.
 +      * dispnew.c (update_frame_1): Remove hack for terminals slower
 +      than 2400 bps, which throttled Emacs by having it sleep.
 +      This code hasn't worked since at least 2007, when the multi-tty stuff
 +      was added, and anyway those old terminals are long dead.
 +      * systty.h (EMACS_OUTQSIZE): Remove; unused.  The macro isn't used even
 +      without the dispnew.c change, as dispnew.c doesn't include systty.h.
 +
 +      Fix data-loss with --version (Bug#9574).
 +      * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
 +      as we can't assume that emacs_strerror is initialized, and strerror
 +      is good enough here.
 +      (main): Invoke atexit earlier, to catch earlier instances of
 +      sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
 +
 +2012-11-04  Michael Marchionna  <tralfaz@pacbell.net>
 +
 +      * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
 +      (keyDown): Remap keypad keys to X11 virtual key codes.
 +
 +2012-11-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix data-loss with --batch (Bug#9574).
 +      * emacs.c: Include <close-stream.h>.
 +      (close_output_streams): New function.
 +      (main): Pass it to atexit, so that Emacs closes stdout and stderr
 +      and handles errors appropriately.
 +      (Fkill_emacs): Don't worry about flushing, as close_output_stream
 +      does that now.
 +
 +      Fix a race condition that causes Emacs to mess up glib (Bug#8855).
 +      The symptom is a diagnostic "GLib-WARNING **: In call to
 +      g_spawn_sync(), exit status of a child process was requested but
 +      SIGCHLD action was set to SIG_IGN and ECHILD was received by
 +      waitpid(), so exit status can't be returned."  The diagnostic
 +      is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
 +      The real bug is a race condition between Emacs and glib: Emacs
 +      does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
 +      so that glib can't find it.  Work around the bug by invoking
 +      waitpid only on subprocesses that Emacs itself creates.
 +      * process.c (create_process, record_child_status_change):
 +      Don't use special value -1 in pid field, as the caller now must
 +      know the pid rather than having the callee infer it.
 +      The inference was sometimes incorrect anyway, due to another race.
 +      (create_process): Set new 'alive' member if child is created.
 +      (process_status_retrieved): New function.
 +      (record_child_status_change): Use it.
 +      Accept negative 1st argument, which means to wait for the
 +      processes that Emacs already knows about.  Move special-case code
 +      for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
 +      processes that have already been waited for, by testing and
 +      clearing new 'alive' member.
 +      (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
 +      now does this internally.
 +      (handle_child_signal): Let record_child_status_change do all
 +      the work, since we do not want to reap all exited child processes,
 +      only the child processes that Emacs itself created.
 +      * process.h (Lisp_Process): New boolean member 'alive'.
 +
 +      Omit duplicate definitions no longer needed with gcc -g3.
 +      * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
 +      (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
 +      Define only as macros.  There's no longer any need to also define
 +      these symbols as enums or as constants, since we now assume
 +      gcc -g3 when debugging.
 +
  2012-11-03  Eli Zaretskii  <eliz@gnu.org>
  
        * lisp.mk: Adjust comments to the fact that term/internal is now
        iterator when starting in the middle of a display or overlay
        string.  (Bug#12745)
  
 -2012-11-03  Jan Djärv  <jan.h.d@swipnet.se>
 +2012-11-03  Chong Yidong  <cyd@gnu.org>
 +
 +      * process.c (wait_reading_process_output): Clean up the last
 +      change.
 +
 +2012-11-03  Jim Paris  <jim@jtan.com>  (tiny change)
 +
 +      * process.c (wait_reading_process_output): Avoid a race condition
 +      with SIGIO delivery (Bug#11536).
 +
 +2012-11-03  Chong Yidong  <cyd@gnu.org>
 +
 +      * buffer.c (cursor_type): Untabify docstring.
 +
 +2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.h (struct frame): Drop can_have_scroll_bars member
 +      which is meaningless for a long time.  Adjust comments.
 +      (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
 +      * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
 +
 +2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * window.c (decode_next_window_args): Update window arg after
 +      calling decode_live_window and so fix crash reported at
 +      http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
 +      by Juanma Barranquero <lekktu@gmail.com>.
 +      (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
 +      * font.c (Ffont_at): Likewise.
 +
 +2012-11-01  Jan Djärv  <jan.h.d@swipnet.se>
  
        * widget.c (resize_cb): New function.
        (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
        (EmacsFrameResize): Check if all is up to date before changing frame
        size.
  
 +2012-11-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement backtrace output for fatal errors on MS-Windows.
 +      * w32fns.c (CaptureStackBackTrace_proc): New typedef.
 +      (BACKTRACE_LIMIT_MAX): New macro.
 +      (w32_backtrace): New function.
 +      (emacs_abort): Use w32_backtrace when the user chooses not to
 +      attach a debugger.  Update the text of the abort dialog.
 +
 +2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Window-related stuff cleanup here and there.
 +      * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
 +      Use decode_any_window.
 +      * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
 +      * xdisp.c (Fformat_mode_line): Likewise.
 +      * font.c (Ffont_at): Use decode_live_window.
 +      * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
 +      * window.c (decode_next_window_args): Likewise.
 +      (decode_any_window): Remove static.
 +      * window.h (decode_any_window): Add prototype.
 +      * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
 +      * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
 +      respectively.
 +
 +2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Remove pad from struct input_event.
 +      * termhooks.h (struct input_event): Remove padding field.
 +      Adjust comment.
 +      * keyboard.c (event_to_kboard): Simplify because frame_or_window
 +      member is never cons for a long time.  Adjust comment.
 +      (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
 +      SELECTION_CLEAR_EVENT has no Lisp_Objects to mark.  Add comment.
 +      * xterm.c (handle_one_xevent): Do not initialize frame_or_window
 +      field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
 +
  2012-11-01  Eli Zaretskii  <eliz@gnu.org>
  
        * w32proc.c (getpgrp, setpgid): New functions.  (Bug#12776)
  
  2012-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * fns.c (Fnreverse): Include the problem element when signalling an
 +      * fns.c (Fnreverse): Include the problem element when signaling an
        error (bug#12677).
  
  2012-10-18  Jan Djärv  <jan.h.d@swipnet.se>
        now a supported configuration.
  
        * Makefile.in: consolidate image variables into LIBIMAGE; add
 -      W32_OBJ and W32_LIBS. Compile new files.
 +      W32_OBJ and W32_LIBS.  Compile new files.
  
        * conf_post.h:
        (_DebPrint) declare tracing facility for W32 debugging.  We need
  2012-05-09  Michael Albinus  <michael.albinus@gmx.de>
  
        * dbusbind.c (xd_registered_buses): New internal Lisp object.
 -      Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
 +      Rename all occurrences of Vdbus_registered_buses to xd_registered_buses.
        (syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
        Initialize xd_registered_buses.
  
diff --combined src/Makefile.in
@@@ -28,11 -28,9 +28,11 @@@ SHELL = /bin/s
  # Here are the things that we expect ../configure to edit.
  # We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
  srcdir = @srcdir@
 +ntsource = $(srcdir)/../nt
  abs_builddir = @abs_builddir@
  VPATH = $(srcdir)
  CC = @CC@
 +WINDRES = @WINDRES@
  CFLAGS = @CFLAGS@
  CPPFLAGS = @CPPFLAGS@
  LDFLAGS = @LDFLAGS@
@@@ -111,9 -109,6 +111,6 @@@ LD_SWITCH_SYSTEM_TEMACS=@LD_SWITCH_SYST
  ## Flags to pass to ld only for temacs.
  TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_TEMACS)
  
- ## $LDFLAGS or empty if NS_IMPL_GNUSTEP (for some reason).
- TEMACS_LDFLAGS2 = @TEMACS_LDFLAGS2@
  ## If available, the full path to the paxctl program.
  ## On grsecurity/PaX systems, unexec will fail due to a gap between
  ## the bss section and the heap.  This can be prevented by disabling
@@@ -152,7 -147,6 +149,7 @@@ M17N_FLT_CFLAGS = @M17N_FLT_CFLAGS
  M17N_FLT_LIBS = @M17N_FLT_LIBS@
  
  LIB_CLOCK_GETTIME=@LIB_CLOCK_GETTIME@
 +LIB_EACCESS=@LIB_EACCESS@
  LIB_TIMER_TIME=@LIB_TIMER_TIME@
  
  DBUS_CFLAGS = @DBUS_CFLAGS@
@@@ -230,6 -224,9 +227,9 @@@ LIBX_OTHER=@LIBX_OTHER
  ## configure, which should set it to nil in non-X builds.
  LIBX_BASE=$(LIBXMENU) $(LD_SWITCH_X_SITE)
  
+ ## Only used for GNUstep
+ LIBS_GNUSTEP=@LIBS_GNUSTEP@
  LIBSOUND= @LIBSOUND@
  CFLAGS_SOUND= @CFLAGS_SOUND@
  
@@@ -269,13 -266,6 +269,13 @@@ W32_OBJ=@W32_OBJ
  ## --lwinspool if HAVE_W32, else empty.
  W32_LIBS=@W32_LIBS@
  
 +## emacs.res if HAVE_W32
 +W32_RES=@W32_RES@
 +## If HAVE_W32, compiler arguments for including
 +## the resource file in the binary.
 +## XXX -Wl,-b -Wl,pe-i386 -Wl,emacs.res
 +W32_RES_LINK=@W32_RES_LINK@
 +
  ## Empty if !HAVE_X_WINDOWS
  ## xfont.o ftfont.o xftfont.o ftxfont.o if HAVE_XFT
  ## xfont.o ftfont.o ftxfont.o if HAVE_FREETYPE
@@@ -292,8 -282,6 +292,8 @@@ LIBSELINUX_LIBS = @LIBSELINUX_LIBS
  LIBGNUTLS_LIBS = @LIBGNUTLS_LIBS@
  LIBGNUTLS_CFLAGS = @LIBGNUTLS_CFLAGS@
  
 +LIBACL_LIBS = @LIBACL_LIBS@
 +
  LIB_PTHREAD_SIGMASK = @LIB_PTHREAD_SIGMASK@
  
  INTERVALS_H = dispextern.h intervals.h composite.h
@@@ -340,6 -328,7 +340,6 @@@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJ
        @$(MKDEPDIR)
        $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
  
 -
  ## lastfile must follow all files whose initialized data areas should
  ## be dumped as pure by dump-emacs.
  base_obj = dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
        syntax.o $(UNEXEC_OBJ) bytecode.o \
        process.o gnutls.o callproc.o \
        region-cache.o sound.o atimer.o \
 -      doprnt.o intervals.o textprop.o composite.o xml.o \
 +      doprnt.o intervals.o textprop.o composite.o xml.o inotify.o \
        profiler.o \
        $(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \
        $(W32_OBJ) $(WINDOW_SYSTEM_OBJ)
@@@ -368,7 -357,7 +368,7 @@@ SOME_MACHINE_OBJECTS = dosfns.o msdos.
    xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
    fontset.o dbusbind.o cygw32.o \
    nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
 -  w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
 +  w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
    w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
    w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
    xsettings.o xgselect.o termcap.o
@@@ -400,15 -389,15 +400,15 @@@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OB
  ## Note that SunOS needs -lm to come before -lc; otherwise, you get
  ## duplicated symbols.  If the standard libraries were compiled
  ## with GCC, we might need LIB_GCC again after them.
- LIBES = $(LIBS) $(W32_LIBS) $(LIBX_BASE) $(LIBIMAGE) \
+ LIBES = $(LIBS) $(W32_LIBS) $(LIBS_GNUSTEP) $(LIBX_BASE) $(LIBIMAGE) \
     $(LIBX_OTHER) $(LIBSOUND) \
     $(RSVG_LIBS) $(IMAGEMAGICK_LIBS) $(LIB_CLOCK_GETTIME) \
 -   $(LIB_TIMER_TIME) $(DBUS_LIBS) \
 +   $(LIB_EACCESS) $(LIB_TIMER_TIME) $(DBUS_LIBS) \
     $(LIB_EXECINFO) \
     $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
     $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \
     $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
 -   $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(LIB_PTHREAD_SIGMASK) \
 +   $(LIBACL_LIBS) $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(LIB_PTHREAD_SIGMASK) \
     $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC)
  
  all: emacs$(EXEEXT) $(OTHER_FILES)
@@@ -473,11 -462,9 +473,11 @@@ $(obj) $(otherobj): globals.
  $(lib)/libgnu.a: $(config_h)
        cd $(lib) && $(MAKE) libgnu.a
  
 -temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) $(lib)/libgnu.a
 +temacs$(EXEEXT): $(START_FILES) stamp-oldxmenu $(obj) $(otherobj) \
 +               $(lib)/libgnu.a $(W32_RES)
-       $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(TEMACS_LDFLAGS2) \
+       $(CC) $(LD_FIRSTFLAG) $(ALL_CFLAGS) $(TEMACS_LDFLAGS) $(LDFLAGS) \
 -        -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES)
 +        -o temacs $(START_FILES) $(obj) $(otherobj) $(lib)/libgnu.a $(LIBES) \
 +        $(W32_RES_LINK)
        test "$(CANNOT_DUMP)" = "yes" || \
          test "X$(PAXCTL)" = X || $(PAXCTL) -r temacs$(EXEEXT)
  
@@@ -518,14 -505,11 +518,14 @@@ $(OLDXMENU): $(OLDXMENU_TARGET
  
  doc.o: buildobj.h
  
 +emacs.res: $(ntsource)/emacs.rc \
 +         $(ntsource)/icons/emacs.ico \
 +         $(ntsource)/emacs-x86.manifest
 +      $(WINDRES) -O COFF -o $@ $(ntsource)/emacs.rc
  
  ns-app: emacs$(EXEEXT)
        cd ../nextstep && $(MAKE) $(MFLAGS) all
  
 -
  .PHONY: mostlyclean clean bootstrap-clean distclean maintainer-clean
  .PHONY: versionclean extraclean frc
  
diff --combined src/dispextern.h
@@@ -317,13 -317,18 +317,18 @@@ struct glyp
       Lisp string, this is a position in that string.  If it is a
       buffer, this is a position in that buffer.  A value of -1
       together with a null object means glyph is a truncation glyph at
-      the start of a row.  */
+      the start of a row.  Right truncation and continuation glyphs at
+      the right edge of a row have their position set to the next
+      buffer position that is not shown on this row.  Glyphs inserted
+      by redisplay, such as the empty space after the end of a line on
+      TTYs, or the overlay-arrow on a TTY, have this set to -1.  */
    ptrdiff_t charpos;
  
-   /* Lisp object source of this glyph.  Currently either a buffer or
-      string, if the glyph was produced from characters which came from
+   /* Lisp object source of this glyph.  Currently either a buffer or a
+      string, if the glyph was produced from characters which came from
       a buffer or a string; or 0 if the glyph was inserted by redisplay
-      for its own purposes such as padding.  */
+      for its own purposes, such as padding or truncation/continuation
+      glyphs, or the overlay-arrow glyphs on TTYs.  */
    Lisp_Object object;
  
    /* Width in pixels.  */
@@@ -1572,12 -1577,12 +1577,12 @@@ struct fac
    /* Pixmap width and height.  */
    unsigned int pixmap_w, pixmap_h;
  
 -  /* Non-zero means characters in this face have a box that thickness
 -     around them.  If it is negative, the absolute value indicates the
 -     thickness, and the horizontal lines of box (top and bottom) are
 -     drawn inside of characters glyph area.  The vertical lines of box
 -     (left and right) are drawn as the same way as the case that this
 -     value is positive.  */
 +  /* Non-zero means characters in this face have a box of that
 +     thickness around them.  If this value is negative, its absolute
 +     value indicates the thickness, and the horizontal (top and
 +     bottom) borders of box are drawn inside of the character glyphs'
 +     area.  The vertical (left and right) borders of the box are drawn
 +     in the same way as when this value is positive.  */
    int box_line_width;
  
    /* Type of box drawn.  A value of FACE_NO_BOX means no box is drawn
diff --combined src/xdisp.c
@@@ -515,6 -515,12 +515,6 @@@ Lisp_Object Qmenu_bar_update_hook
  
  static int overlay_arrow_seen;
  
 -/* Number of windows showing the buffer of the selected window (or
 -   another buffer with the same base buffer).  keyboard.c refers to
 -   this.  */
 -
 -int buffer_shared;
 -
  /* Vector containing glyphs for an ellipsis `...'.  */
  
  static Lisp_Object default_invis_vector[3];
@@@ -869,6 -875,7 +869,6 @@@ static void push_it (struct it *, struc
  static void iterate_out_of_display_property (struct it *);
  static void pop_it (struct it *);
  static void sync_frame_with_window_matrix_rows (struct window *);
 -static void select_frame_for_redisplay (Lisp_Object);
  static void redisplay_internal (void);
  static int echo_area_display (int);
  static void redisplay_windows (Lisp_Object);
@@@ -1329,7 -1336,7 +1329,7 @@@ pos_visible_p (struct window *w, ptrdif
                           BVAR (current_buffer, header_line_format));
  
    start_display (&it, w, top);
 -  move_it_to (&it, charpos, -1, it.last_visible_y-1, -1,
 +  move_it_to (&it, charpos, -1, it.last_visible_y - 1, -1,
              (charpos >= 0 ? MOVE_TO_POS : 0) | MOVE_TO_Y);
  
    if (charpos >= 0
           && IT_CHARPOS (it) >= charpos)
          /* When scanning backwards under bidi iteration, move_it_to
             stops at or _before_ CHARPOS, because it stops at or to
 -           the _right_ of the character at CHARPOS. */
 +           the _right_ of the character at CHARPOS.  */
          || (it.bidi_p && it.bidi_it.scan_dir == -1
              && IT_CHARPOS (it) <= charpos)))
      {
@@@ -2558,24 -2565,8 +2558,24 @@@ check_window_end (struct window *w
  
  #endif /* GLYPH_DEBUG and ENABLE_CHECKING */
  
 +/* Return mark position if current buffer has the region of non-zero length,
 +   or -1 otherwise.  */
 +
 +static ptrdiff_t
 +markpos_of_region (void)
 +{
 +  if (!NILP (Vtransient_mark_mode)
 +      && !NILP (BVAR (current_buffer, mark_active))
 +      && XMARKER (BVAR (current_buffer, mark))->buffer != NULL)
 +    {
 +      ptrdiff_t markpos = XMARKER (BVAR (current_buffer, mark))->charpos;
 +
 +      if (markpos != PT)
 +      return markpos;
 +    }
 +  return -1;
 +}
  
 -\f
  /***********************************************************************
                       Iterator initialization
   ***********************************************************************/
@@@ -2604,7 -2595,7 +2604,7 @@@ init_iterator (struct it *it, struct wi
               ptrdiff_t charpos, ptrdiff_t bytepos,
               struct glyph_row *row, enum face_id base_face_id)
  {
 -  int highlight_region_p;
 +  ptrdiff_t markpos;
    enum face_id remapped_base_face_id = base_face_id;
  
    /* Some precondition checks.  */
    /* Are multibyte characters enabled in current_buffer?  */
    it->multibyte_p = !NILP (BVAR (current_buffer, enable_multibyte_characters));
  
 -  /* Non-zero if we should highlight the region.  */
 -  highlight_region_p
 -    = (!NILP (Vtransient_mark_mode)
 -       && !NILP (BVAR (current_buffer, mark_active))
 -       && XMARKER (BVAR (current_buffer, mark))->buffer != 0);
 -
 -  /* Set IT->region_beg_charpos and IT->region_end_charpos to the
 -     start and end of a visible region in window IT->w.  Set both to
 -     -1 to indicate no region.  */
 -  if (highlight_region_p
 +  /* If visible region is of non-zero length, set IT->region_beg_charpos
 +     and IT->region_end_charpos to the start and end of a visible region
 +     in window IT->w.  Set both to -1 to indicate no region.  */
 +  markpos = markpos_of_region ();
 +  if (0 <= markpos
        /* Maybe highlight only in selected window.  */
        && (/* Either show region everywhere.  */
          highlight_nonselected_windows
              && WINDOWP (minibuf_selected_window)
              && w == XWINDOW (minibuf_selected_window))))
      {
 -      ptrdiff_t markpos = marker_position (BVAR (current_buffer, mark));
        it->region_beg_charpos = min (PT, markpos);
        it->region_end_charpos = max (PT, markpos);
      }
@@@ -3764,26 -3761,18 +3764,26 @@@ handle_face_prop (struct it *it
        if (new_face_id != it->face_id)
        {
          struct face *new_face = FACE_FROM_ID (it->f, new_face_id);
 +        /* If it->face_id is -1, old_face below will be NULL, see
 +           the definition of FACE_FROM_ID.  This will happen if this
 +           is the initial call that gets the face.  */
 +        struct face *old_face = FACE_FROM_ID (it->f, it->face_id);
  
 -        /* If new face has a box but old face has not, this is
 -           the start of a run of characters with box, i.e. it has
 -           a shadow on the left side.  The value of face_id of the
 -           iterator will be -1 if this is the initial call that gets
 -           the face.  In this case, we have to look in front of IT's
 -           position and see whether there is a face != new_face_id.  */
 -        it->start_of_box_run_p
 -          = (new_face->box != FACE_NO_BOX
 -             && (it->face_id >= 0
 -                 || IT_CHARPOS (*it) == BEG
 -                 || new_face_id != face_before_it_pos (it)));
 +        /* If the value of face_id of the iterator is -1, we have to
 +           look in front of IT's position and see whether there is a
 +           face there that's different from new_face_id.  */
 +        if (!old_face && IT_CHARPOS (*it) > BEG)
 +          {
 +            int prev_face_id = face_before_it_pos (it);
 +
 +            old_face = FACE_FROM_ID (it->f, prev_face_id);
 +          }
 +
 +        /* If the new face has a box, but the old face does not,
 +           this is the start of a run of characters with box face,
 +           i.e. this character has a shadow on the left side.  */
 +        it->start_of_box_run_p = (new_face->box != FACE_NO_BOX
 +                                  && (old_face == NULL || !old_face->box));
          it->face_box_p = new_face->box != FACE_NO_BOX;
        }
      }
@@@ -9397,8 -9386,7 +9397,8 @@@ message_dolog (const char *m, ptrdiff_
        int old_windows_or_buffers_changed = windows_or_buffers_changed;
        ptrdiff_t point_at_end = 0;
        ptrdiff_t zv_at_end = 0;
 -      Lisp_Object old_deactivate_mark, tem;
 +      Lisp_Object old_deactivate_mark;
 +      bool shown;
        struct gcpro gcpro1;
  
        old_deactivate_mark = Vdeactivate_mark;
              del_range_both (BEG, BEG_BYTE, PT, PT_BYTE, 0);
            }
        }
 -      BEGV = XMARKER (oldbegv)->charpos;
 +      BEGV = marker_position (oldbegv);
        BEGV_BYTE = marker_byte_position (oldbegv);
  
        if (zv_at_end)
        }
        else
        {
 -        ZV = XMARKER (oldzv)->charpos;
 +        ZV = marker_position (oldzv);
          ZV_BYTE = marker_byte_position (oldzv);
        }
  
        else
        /* We can't do Fgoto_char (oldpoint) because it will run some
             Lisp code.  */
 -      TEMP_SET_PT_BOTH (XMARKER (oldpoint)->charpos,
 -                        XMARKER (oldpoint)->bytepos);
 +      TEMP_SET_PT_BOTH (marker_position (oldpoint),
 +                        marker_byte_position (oldpoint));
  
        UNGCPRO;
        unchain_marker (XMARKER (oldpoint));
        unchain_marker (XMARKER (oldbegv));
        unchain_marker (XMARKER (oldzv));
  
 -      tem = Fget_buffer_window (Fcurrent_buffer (), Qt);
 +      shown = buffer_window_count (current_buffer) > 0;
        set_buffer_internal (oldbuf);
 -      if (NILP (tem))
 +      if (!shown)
        windows_or_buffers_changed = old_windows_or_buffers_changed;
        message_log_need_newline = !nlflag;
        Vdeactivate_mark = old_deactivate_mark;
@@@ -9655,7 -9643,7 +9655,7 @@@ message2_nolog (const char *m, ptrdiff_
        do_pending_window_change (0);
        echo_area_display (1);
        do_pending_window_change (0);
 -      if (FRAME_TERMINAL (f)->frame_up_to_date_hook != 0 && ! gc_in_progress)
 +      if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
        (*FRAME_TERMINAL (f)->frame_up_to_date_hook) (f);
      }
  }
@@@ -9752,7 -9740,7 +9752,7 @@@ message3_nolog (Lisp_Object m, ptrdiff_
        do_pending_window_change (0);
        echo_area_display (1);
        do_pending_window_change (0);
 -      if (FRAME_TERMINAL (f)->frame_up_to_date_hook != 0 && ! gc_in_progress)
 +      if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
        (*FRAME_TERMINAL (f)->frame_up_to_date_hook) (f);
      }
  }
@@@ -10105,8 -10093,8 +10105,8 @@@ with_echo_area_buffer_unwind_data (stru
      {
        XSETWINDOW (tmp, w); ASET (vector, i, tmp); ++i;
        ASET (vector, i, w->buffer); ++i;
 -      ASET (vector, i, make_number (XMARKER (w->pointm)->charpos)); ++i;
 -      ASET (vector, i, make_number (XMARKER (w->pointm)->bytepos)); ++i;
 +      ASET (vector, i, make_number (marker_position (w->pointm))); ++i;
 +      ASET (vector, i, make_number (marker_byte_position (w->pointm))); ++i;
      }
    else
      {
@@@ -10403,7 -10391,8 +10403,7 @@@ resize_mini_window (struct window *w, i
        max_height = total_height / 4;
  
        /* Correct that max. height if it's bogus.  */
 -      max_height = max (1, max_height);
 -      max_height = min (total_height, max_height);
 +      max_height = clip_to_bounds (1, max_height, total_height);
  
        /* Find out the height of the text in the window.  */
        if (it.line_wrap == TRUNCATE)
@@@ -10780,7 -10769,7 +10780,7 @@@ clear_garbaged_frames (void
            {
              if (f->resized_p)
                {
 -                Fredraw_frame (frame);
 +                redraw_frame (f);
                  f->force_flush_display_p = 1;
                }
              clear_current_matrices (f);
@@@ -10827,7 -10816,8 +10827,7 @@@ echo_area_display (int update_frame_p
  #endif /* HAVE_WINDOW_SYSTEM */
  
    /* Redraw garbaged frames.  */
 -  if (frame_garbaged)
 -    clear_garbaged_frames ();
 +  clear_garbaged_frames ();
  
    if (!NILP (echo_area_buffer[0]) || minibuf_level == 0)
      {
    return window_height_changed_p;
  }
  
 +/* Nonzero if the current window's buffer is shown in more than one
 +   window and was modified since last redisplay.  */
 +
 +static int
 +buffer_shared_and_changed (void)
 +{
 +  return (buffer_window_count (current_buffer) > 1
 +        && UNCHANGED_MODIFIED < MODIFF);
 +}
 +
 +/* Nonzero if W doesn't reflect the actual state of current buffer due
 +   to its text or overlays change.  FIXME: this may be called when
 +   XBUFFER (w->buffer) != current_buffer, which looks suspicious.  */
 +
 +static int
 +window_outdated (struct window *w)
 +{
 +  return (w->last_modified < MODIFF
 +        || w->last_overlay_modified < OVERLAY_MODIFF);
 +}
 +
 +/* Nonzero if W's buffer was changed but not saved or Transient Mark mode
 +   is enabled and mark of W's buffer was changed since last W's update.  */
 +
 +static int
 +window_buffer_changed (struct window *w)
 +{
 +  struct buffer *b = XBUFFER (w->buffer);
 +
 +  eassert (BUFFER_LIVE_P (b));
 +
 +  return (((BUF_SAVE_MODIFF (b) < BUF_MODIFF (b)) != w->last_had_star)
 +        || ((!NILP (Vtransient_mark_mode) && !NILP (BVAR (b, mark_active)))
 +            != !NILP (w->region_showing)));
 +}
 +
 +/* Nonzero if W has %c in its mode line and mode line should be updated.  */
 +
 +static int
 +mode_line_update_needed (struct window *w)
 +{
 +  return (!NILP (w->column_number_displayed)
 +        && !(PT == w->last_point && !window_outdated (w))
 +        && (XFASTINT (w->column_number_displayed) != current_column ()));
 +}
  
 -\f
  /***********************************************************************
                     Mode Lines and Frame Titles
   ***********************************************************************/
@@@ -11150,15 -11096,17 +11150,15 @@@ x_consider_frame_title (Lisp_Object fra
        || f->explicit_name)
      {
        /* Do we have more than one visible frame on this X display?  */
 -      Lisp_Object tail;
 -      Lisp_Object fmt;
 +      Lisp_Object tail, other_frame, fmt;
        ptrdiff_t title_start;
        char *title;
        ptrdiff_t len;
        struct it it;
        ptrdiff_t count = SPECPDL_INDEX ();
  
 -      for (tail = Vframe_list; CONSP (tail); tail = XCDR (tail))
 +      FOR_EACH_FRAME (tail, other_frame)
        {
 -        Lisp_Object other_frame = XCAR (tail);
          struct frame *tf = XFRAME (other_frame);
  
          if (tf != f
@@@ -11251,7 -11199,7 +11251,7 @@@ prepare_menu_bars (void
    /* Update the menu bar item lists, if appropriate.  This has to be
       done before any actual redisplay or generation of display lines.  */
    all_windows = (update_mode_lines
 -               || buffer_shared > 1
 +               || buffer_shared_and_changed ()
                 || windows_or_buffers_changed);
    if (all_windows)
      {
@@@ -11365,7 -11313,12 +11365,7 @@@ update_menu_bar (struct frame *f, int s
          /* This used to test w->update_mode_line, but we believe
             there is no need to recompute the menu in that case.  */
          || update_mode_lines
 -        || ((BUF_SAVE_MODIFF (XBUFFER (w->buffer))
 -             < BUF_MODIFF (XBUFFER (w->buffer)))
 -            != w->last_had_star)
 -        || ((!NILP (Vtransient_mark_mode)
 -             && !NILP (BVAR (XBUFFER (w->buffer), mark_active)))
 -            != !NILP (w->region_showing)))
 +        || window_buffer_changed (w))
        {
          struct buffer *prev = current_buffer;
          ptrdiff_t count = SPECPDL_INDEX ();
@@@ -11517,18 -11470,11 +11517,18 @@@ FRAME_PTR last_mouse_frame
  
  int last_tool_bar_item;
  
 -
 +/* Select `frame' temporarily without running all the code in
 +   do_switch_frame.
 +   FIXME: Maybe do_switch_frame should be trimmed down similarly
 +   when `norecord' is set.  */
  static Lisp_Object
 -update_tool_bar_unwind (Lisp_Object frame)
 +fast_set_selected_frame (Lisp_Object frame)
  {
 -  selected_frame = frame;
 +  if (!EQ (selected_frame, frame))
 +    {
 +      selected_frame = frame;
 +      selected_window = XFRAME (frame)->selected_window;
 +    }
    return Qnil;
  }
  
@@@ -11565,7 -11511,12 +11565,7 @@@ update_tool_bar (struct frame *f, int s
        if (windows_or_buffers_changed
          || w->update_mode_line
          || update_mode_lines
 -        || ((BUF_SAVE_MODIFF (XBUFFER (w->buffer))
 -             < BUF_MODIFF (XBUFFER (w->buffer)))
 -            != w->last_had_star)
 -        || ((!NILP (Vtransient_mark_mode)
 -             && !NILP (BVAR (XBUFFER (w->buffer), mark_active)))
 -            != !NILP (w->region_showing)))
 +        || window_buffer_changed (w))
        {
          struct buffer *prev = current_buffer;
          ptrdiff_t count = SPECPDL_INDEX ();
             before calling tool_bar_items, because the calculation of
             the tool-bar keymap uses the selected frame (see
             `tool-bar-make-keymap' in tool-bar.el).  */
 -        record_unwind_protect (update_tool_bar_unwind, selected_frame);
 +        eassert (EQ (selected_window,
 +                     /* Since we only explicitly preserve selected_frame,
 +                        check that selected_window would be redundant.  */
 +                     XFRAME (selected_frame)->selected_window));
 +        record_unwind_protect (fast_set_selected_frame, selected_frame);
          XSETFRAME (frame, f);
 -        selected_frame = frame;
 +        fast_set_selected_frame (frame);
  
          /* Build desired tool-bar items from keymaps.  */
            new_tool_bar
@@@ -11969,14 -11916,19 +11969,14 @@@ tool_bar_lines_needed (struct frame *f
  
  DEFUN ("tool-bar-lines-needed", Ftool_bar_lines_needed, Stool_bar_lines_needed,
         0, 1, 0,
 -       doc: /* Return the number of lines occupied by the tool bar of FRAME.  */)
 +       doc: /* Return the number of lines occupied by the tool bar of FRAME.
 +If FRAME is nil or omitted, use the selected frame.  */)
    (Lisp_Object frame)
  {
 -  struct frame *f;
 +  struct frame *f = decode_any_frame (frame);
    struct window *w;
    int nlines = 0;
  
 -  if (NILP (frame))
 -    frame = selected_frame;
 -  else
 -    CHECK_FRAME (frame);
 -  f = XFRAME (frame);
 -
    if (WINDOWP (f->tool_bar_window)
        && (w = XWINDOW (f->tool_bar_window),
          WINDOW_TOTAL_LINES (w) > 0))
@@@ -12276,6 -12228,7 +12276,6 @@@ handle_tool_bar_click (struct frame *f
      {
        /* Show item in pressed state.  */
        show_mouse_face (hlinfo, DRAW_IMAGE_SUNKEN);
 -      hlinfo->mouse_face_image_state = DRAW_IMAGE_SUNKEN;
        last_tool_bar_item = prop_idx;
      }
    else
  
        /* Show item in released state.  */
        show_mouse_face (hlinfo, DRAW_IMAGE_RAISED);
 -      hlinfo->mouse_face_image_state = DRAW_IMAGE_RAISED;
  
        key = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_KEY);
  
@@@ -12354,6 -12308,7 +12354,6 @@@ note_tool_bar_highlight (struct frame *
        && last_tool_bar_item != prop_idx)
      return;
  
 -  hlinfo->mouse_face_image_state = DRAW_NORMAL_TEXT;
    draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;
  
    /* If tool-bar item is not enabled, don't highlight it.  */
  
        /* Display it as active.  */
        show_mouse_face (hlinfo, draw);
 -      hlinfo->mouse_face_image_state = draw;
      }
  
   set_help_echo:
@@@ -12505,7 -12461,11 +12505,7 @@@ hscroll_window_tree (Lisp_Object window
              if (w == XWINDOW (selected_window))
                pt = PT;
              else
 -              {
 -                pt = marker_position (w->pointm);
 -                pt = max (BEGV, pt);
 -                pt = min (ZV, pt);
 -              }
 +              pt = clip_to_bounds (BEGV, marker_position (w->pointm), ZV);
  
              /* Move iterator to pt starting at cursor_row->start in
                 a line with infinite width.  */
@@@ -12664,7 -12624,8 +12664,7 @@@ text_outside_line_unchanged_p (struct w
    int unchanged_p = 1;
  
    /* If text or overlays have changed, see where.  */
 -  if (w->last_modified < MODIFF
 -      || w->last_overlay_modified < OVERLAY_MODIFF)
 +  if (window_outdated (w))
      {
        /* Gap in the line?  */
        if (GPT < start || Z - GPT < end)
@@@ -12952,6 -12913,37 +12952,6 @@@ reconsider_clip_changes (struct window 
  }
  \f
  
 -/* Select FRAME to forward the values of frame-local variables into C
 -   variables so that the redisplay routines can access those values
 -   directly.  */
 -
 -static void
 -select_frame_for_redisplay (Lisp_Object frame)
 -{
 -  Lisp_Object tail, tem;
 -  Lisp_Object old = selected_frame;
 -  struct Lisp_Symbol *sym;
 -
 -  eassert (FRAMEP (frame) && FRAME_LIVE_P (XFRAME (frame)));
 -
 -  selected_frame = frame;
 -
 -  do {
 -    for (tail = XFRAME (frame)->param_alist;
 -       CONSP (tail); tail = XCDR (tail))
 -      if (CONSP (XCAR (tail))
 -        && (tem = XCAR (XCAR (tail)),
 -            SYMBOLP (tem))
 -        && (sym = indirect_variable (XSYMBOL (tem)),
 -            sym->redirect == SYMBOL_LOCALIZED)
 -        && sym->val.blv->frame_local)
 -      /* Use find_symbol_value rather than Fsymbol_value
 -         to avoid an error if it is void.  */
 -      find_symbol_value (tem);
 -  } while (!EQ (frame, old) && (frame = old, 1));
 -}
 -
 -
  #define STOP_POLLING                                  \
  do { if (! polling_stopped_here) stop_polling ();     \
         polling_stopped_here = 1; } while (0)
@@@ -12977,7 -12969,7 +12977,7 @@@ redisplay_internal (void
    ptrdiff_t count, count1;
    struct frame *sf;
    int polling_stopped_here = 0;
 -  Lisp_Object old_frame = selected_frame;
 +  Lisp_Object tail, frame;
    struct backtrace backtrace;
  
    /* Non-zero means redisplay has to consider all windows on all
    backtrace.debug_on_exit = 0;
    backtrace_list = &backtrace;
  
 -  {
 -    Lisp_Object tail, frame;
 -
 -    FOR_EACH_FRAME (tail, frame)
 -      {
 -      struct frame *f = XFRAME (frame);
 -      f->already_hscrolled_p = 0;
 -      }
 -  }
 +  FOR_EACH_FRAME (tail, frame)
 +    XFRAME (frame)->already_hscrolled_p = 0;
  
   retry:
    /* Remember the currently selected window.  */
    sw = w;
  
 -  if (!EQ (old_frame, selected_frame)
 -      && FRAME_LIVE_P (XFRAME (old_frame)))
 -    /* When running redisplay, we play a bit fast-and-loose and allow e.g.
 -       selected_frame and selected_window to be temporarily out-of-sync so
 -       when we come back here via `goto retry', we need to resync because we
 -       may need to run Elisp code (via prepare_menu_bars).  */
 -    select_frame_for_redisplay (old_frame);
 -
    pending = 0;
    reconsider_clip_changes (w, current_buffer);
    last_escape_glyph_frame = NULL;
        FRAME_TTY (sf)->previous_frame = sf;
      }
  
 -  /* Set the visible flags for all frames.  Do this before checking
 -     for resized or garbaged frames; they want to know if their frames
 -     are visible.  See the comment in frame.h for
 -     FRAME_SAMPLE_VISIBILITY.  */
 -  {
 -    Lisp_Object tail, frame;
 -
 -    number_of_visible_frames = 0;
 +  /* Set the visible flags for all frames.  Do this before checking for
 +     resized or garbaged frames; they want to know if their frames are
 +     visible.  See the comment in frame.h for FRAME_SAMPLE_VISIBILITY.  */
 +  number_of_visible_frames = 0;
  
 -    FOR_EACH_FRAME (tail, frame)
 -      {
 -      struct frame *f = XFRAME (frame);
 +  FOR_EACH_FRAME (tail, frame)
 +    {
 +      struct frame *f = XFRAME (frame);
  
 -      FRAME_SAMPLE_VISIBILITY (f);
 -      if (FRAME_VISIBLE_P (f))
 -        ++number_of_visible_frames;
 -      clear_desired_matrices (f);
 -      }
 -  }
 +      FRAME_SAMPLE_VISIBILITY (f);
 +      if (FRAME_VISIBLE_P (f))
 +      ++number_of_visible_frames;
 +      clear_desired_matrices (f);
 +    }
  
    /* Notice any pending interrupt request to change frame size.  */
    do_pending_window_change (1);
      }
  
    /* Clear frames marked as garbaged.  */
 -  if (frame_garbaged)
 -    clear_garbaged_frames ();
 +  clear_garbaged_frames ();
  
    /* Build menubar and tool-bar items.  */
    if (NILP (Vmemory_full))
    if ((SAVE_MODIFF < MODIFF) != w->last_had_star)
      {
        w->update_mode_line = 1;
 -      if (buffer_shared > 1)
 +      if (buffer_shared_and_changed ())
        update_mode_lines++;
      }
  
    count1 = SPECPDL_INDEX ();
    specbind (Qinhibit_point_motion_hooks, Qt);
  
 -  /* If %c is in the mode line, update it if needed.  */
 -  if (!NILP (w->column_number_displayed)
 -      /* This alternative quickly identifies a common case
 -       where no change is needed.  */
 -      && !(PT == w->last_point
 -         && w->last_modified >= MODIFF
 -         && w->last_overlay_modified >= OVERLAY_MODIFF)
 -      && (XFASTINT (w->column_number_displayed) != current_column ()))
 +  if (mode_line_update_needed (w))
      w->update_mode_line = 1;
  
    unbind_to (count1, Qnil);
  
    FRAME_SCROLL_BOTTOM_VPOS (XFRAME (w->frame)) = -1;
  
 -  /* The variable buffer_shared is set in redisplay_window and
 -     indicates that we redisplay a buffer in different windows.  See
 -     there.  */
 -  consider_all_windows_p = (update_mode_lines || buffer_shared > 1
 +  consider_all_windows_p = (update_mode_lines
 +                          || buffer_shared_and_changed ()
                            || cursor_type_changed);
  
    /* If specs for an arrow have changed, do thorough redisplay
          /* If window configuration was changed, frames may have been
             marked garbaged.  Clear them or we will experience
             surprises wrt scrolling.  */
 -        if (frame_garbaged)
 -          clear_garbaged_frames ();
 +        clear_garbaged_frames ();
        }
      }
    else if (EQ (selected_window, minibuf_window)
 -         && (current_buffer->clip_changed
 -             || w->last_modified < MODIFF
 -             || w->last_overlay_modified < OVERLAY_MODIFF)
 +         && (current_buffer->clip_changed || window_outdated (w))
           && resize_mini_window (w, 0))
      {
        /* Resized active mini-window to fit the size of what it is
           showing if its contents might have changed.  */
        must_finish = 1;
 -/* FIXME: this causes all frames to be updated, which seems unnecessary
 -   since only the current frame needs to be considered.  This function needs
 -   to be rewritten with two variables, consider_all_windows and
 -   consider_all_frames.  */
 +      /* FIXME: this causes all frames to be updated, which seems unnecessary
 +       since only the current frame needs to be considered.  This function
 +       needs to be rewritten with two variables, consider_all_windows and
 +       consider_all_frames.  */
        consider_all_windows_p = 1;
        ++windows_or_buffers_changed;
        ++update_mode_lines;
        /* If window configuration was changed, frames may have been
         marked garbaged.  Clear them or we will experience
         surprises wrt scrolling.  */
 -      if (frame_garbaged)
 -      clear_garbaged_frames ();
 +      clear_garbaged_frames ();
      }
  
  
              || FETCH_BYTE (BYTEPOS (tlbufpos)) == '\n'))
        /* Former continuation line has disappeared by becoming empty.  */
        goto cancel;
 -      else if (w->last_modified < MODIFF
 -             || w->last_overlay_modified < OVERLAY_MODIFF
 -             || MINI_WINDOW_P (w))
 +      else if (window_outdated (w) || MINI_WINDOW_P (w))
        {
          /* We have to handle the case of continuation around a
             wide-column character (see the comment in indent.c around
      }
  
    CHARPOS (this_line_start_pos) = 0;
 -  consider_all_windows_p |= buffer_shared > 1;
 +  consider_all_windows_p |= buffer_shared_and_changed ();
    ++clear_face_cache_count;
  #ifdef HAVE_WINDOW_SYSTEM
    ++clear_image_cache_count;
  
    if (consider_all_windows_p)
      {
 -      Lisp_Object tail, frame;
 -
        FOR_EACH_FRAME (tail, frame)
        XFRAME (frame)->updated_p = 0;
  
 -      /* Recompute # windows showing selected buffer.  This will be
 -       incremented each time such a window is displayed.  */
 -      buffer_shared = 0;
 -
        FOR_EACH_FRAME (tail, frame)
        {
          struct frame *f = XFRAME (frame);
  
          if (FRAME_WINDOW_P (f) || FRAME_TERMCAP_P (f) || f == sf)
            {
 -            if (! EQ (frame, selected_frame))
 -              /* Select the frame, for the sake of frame-local
 -                 variables.  */
 -              select_frame_for_redisplay (frame);
 -
              /* Mark all the scroll bars to be removed; we'll redeem
                 the ones we want when we redisplay their windows.  */
              if (FRAME_TERMINAL (f)->condemn_scroll_bars_hook)
            }
        }
  
 -      if (!EQ (old_frame, selected_frame)
 -        && FRAME_LIVE_P (XFRAME (old_frame)))
 -      /* We played a bit fast-and-loose above and allowed selected_frame
 -         and selected_window to be temporarily out-of-sync but let's make
 -         sure this stays contained.  */
 -      select_frame_for_redisplay (old_frame);
 -      eassert (EQ (XFRAME (selected_frame)->selected_window,
 -                 selected_window));
 +      eassert (EQ (XFRAME (selected_frame)->selected_window, selected_window));
  
        if (!pending)
        {
       frames here explicitly.  */
    if (!pending)
      {
 -      Lisp_Object tail, frame;
        int new_count = 0;
  
        FOR_EACH_FRAME (tail, frame)
@@@ -13711,12 -13758,17 +13711,12 @@@ redisplay_preserve_echo_area (int from_
  
  
  /* Function registered with record_unwind_protect in redisplay_internal.
 -   Clear redisplaying_p.  Also, select the previously
 -   selected frame, unless it has been deleted (by an X connection
 -   failure during redisplay, for example).  */
 +   Clear redisplaying_p.  Also select the previously selected frame.  */
  
  static Lisp_Object
  unwind_redisplay (Lisp_Object old_frame)
  {
    redisplaying_p = 0;
 -  if (! EQ (old_frame, selected_frame)
 -      && FRAME_LIVE_P (XFRAME (old_frame)))
 -    select_frame_for_redisplay (old_frame);
    return Qnil;
  }
  
@@@ -13733,8 -13785,8 +13733,8 @@@ mark_window_display_accurate_1 (struct 
      {
        struct buffer *b = XBUFFER (w->buffer);
  
 -      w->last_modified = accurate_p ? BUF_MODIFF(b) : 0;
 -      w->last_overlay_modified = accurate_p ? BUF_OVERLAY_MODIFF(b) : 0;
 +      w->last_modified = accurate_p ? BUF_MODIFF (b) : 0;
 +      w->last_overlay_modified = accurate_p ? BUF_OVERLAY_MODIFF (b) : 0;
        w->last_had_star
        = BUF_MODIFF (b) > BUF_SAVE_MODIFF (b);
  
          if (w == XWINDOW (selected_window))
            w->last_point = BUF_PT (b);
          else
 -          w->last_point = XMARKER (w->pointm)->charpos;
 +          w->last_point = marker_position (w->pointm);
        }
      }
  
@@@ -14189,7 -14241,12 +14189,12 @@@ set_cursor_from_row (struct window *w, 
         CHARPOS is zero or negative.  */
        int empty_line_p =
        (row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end)
-       && INTEGERP (glyph->object) && glyph->charpos > 0;
+       && INTEGERP (glyph->object) && glyph->charpos > 0
+       /* On a TTY, continued and truncated rows also have a glyph at
+          their end whose OBJECT is zero and whose CHARPOS is
+          positive (the continuation and truncation glyphs), but such
+          rows are obviously not "empty".  */
+       && !(row->continued_p || row->truncated_on_right_p);
  
        if (row->ends_in_ellipsis_p && pos_after == last_pos)
        {
@@@ -15027,7 -15084,8 +15032,7 @@@ try_cursor_movement (Lisp_Object window
        /* Can't use this case if highlighting a region.  When a
           region exists, cursor movement has to do more than just
           set the cursor.  */
 -      && !(!NILP (Vtransient_mark_mode)
 -         && !NILP (BVAR (current_buffer, mark_active)))
 +      && markpos_of_region () < 0
        && NILP (w->region_showing)
        && NILP (Vshow_trailing_whitespace)
        /* This code is not used for mini-buffer for the sake of the case
@@@ -15468,7 -15526,8 +15473,7 @@@ redisplay_window (Lisp_Object window, i
      = (!NILP (w->window_end_valid)
         && !current_buffer->clip_changed
         && !current_buffer->prevent_redisplay_optimizations_p
 -       && w->last_modified >= MODIFF
 -       && w->last_overlay_modified >= OVERLAY_MODIFF);
 +       && !window_outdated (w));
  
    /* Run the window-bottom-change-functions
       if it is possible that the text on the screen has changed
    buffer_unchanged_p
      = (!NILP (w->window_end_valid)
         && !current_buffer->clip_changed
 -       && w->last_modified >= MODIFF
 -       && w->last_overlay_modified >= OVERLAY_MODIFF);
 +       && !window_outdated (w));
  
    /* When windows_or_buffers_changed is non-zero, we can't rely on
       the window end being valid, so set it to nil there.  */
    if (BYTEPOS (opoint) < CHARPOS (opoint))
      emacs_abort ();
  
 -  /* If %c is in mode line, update it if needed.  */
 -  if (!NILP (w->column_number_displayed)
 -      /* This alternative quickly identifies a common case
 -       where no change is needed.  */
 -      && !(PT == w->last_point
 -         && w->last_modified >= MODIFF
 -         && w->last_overlay_modified >= OVERLAY_MODIFF)
 -      && (XFASTINT (w->column_number_displayed) != current_column ()))
 +  if (mode_line_update_needed (w))
      update_mode_line = 1;
  
 -  /* Count number of windows showing the selected buffer.  An indirect
 -     buffer counts as its base buffer.  */
 -  if (!just_this_one_p)
 -    {
 -      struct buffer *current_base, *window_base;
 -      current_base = current_buffer;
 -      window_base = XBUFFER (XWINDOW (selected_window)->buffer);
 -      if (current_base->base_buffer)
 -      current_base = current_base->base_buffer;
 -      if (window_base->base_buffer)
 -      window_base = window_base->base_buffer;
 -      if (current_base == window_base)
 -      buffer_shared++;
 -    }
 -
    /* Point refers normally to the selected window.  For any other
       window, set up appropriate value.  */
    if (!EQ (window, selected_window))
      {
 -      ptrdiff_t new_pt = XMARKER (w->pointm)->charpos;
 +      ptrdiff_t new_pt = marker_position (w->pointm);
        ptrdiff_t new_pt_byte = marker_byte_position (w->pointm);
        if (new_pt < BEGV)
        {
             Move it back to a fully-visible line.  */
          new_vpos = window_box_height (w);
        }
 +      else if (w->cursor.vpos >=0)
 +      {
 +        /* Some people insist on not letting point enter the scroll
 +           margin, even though this part handles windows that didn't
 +           scroll at all.  */
 +        int margin = min (scroll_margin, WINDOW_TOTAL_LINES (w) / 4);
 +        int pixel_margin = margin * FRAME_LINE_HEIGHT (f);
 +        bool header_line = WINDOW_WANTS_HEADER_LINE_P (w);
 +
 +        /* Note: We add an extra FRAME_LINE_HEIGHT, because the loop
 +           below, which finds the row to move point to, advances by
 +           the Y coordinate of the _next_ row, see the definition of
 +           MATRIX_ROW_BOTTOM_Y.  */
 +        if (w->cursor.vpos < margin + header_line)
 +          new_vpos
 +            = pixel_margin + (header_line
 +                              ? CURRENT_HEADER_LINE_HEIGHT (w)
 +                              : 0) + FRAME_LINE_HEIGHT (f);
 +        else
 +          {
 +            int window_height = window_box_height (w);
 +
 +            if (header_line)
 +              window_height += CURRENT_HEADER_LINE_HEIGHT (w);
 +            if (w->cursor.y >= window_height - pixel_margin)
 +              new_vpos = window_height - pixel_margin;
 +          }
 +      }
  
        /* If we need to move point for either of the above reasons,
         now actually do it.  */
  
          /* If we are highlighting the region, then we just changed
             the region, so redisplay to show it.  */
 -        if (!NILP (Vtransient_mark_mode)
 -            && !NILP (BVAR (current_buffer, mark_active)))
 +        if (0 <= markpos_of_region ())
            {
              clear_glyph_matrix (w->desired_matrix);
              if (!try_window (window, startp, 0))
           && (CHARPOS (startp) < ZV
               /* Avoid starting at end of buffer.  */
               || CHARPOS (startp) == BEGV
 -             || (w->last_modified >= MODIFF
 -                 && w->last_overlay_modified >= OVERLAY_MODIFF)))
 +             || !window_outdated (w)))
      {
        int d1, d2, d3, d4, d5, d6;
  
@@@ -16400,7 -16456,8 +16405,7 @@@ try_window_reusing_current_matrix (stru
      return 0;
  
    /* Can't do this if region may have changed.  */
 -  if ((!NILP (Vtransient_mark_mode)
 -       && !NILP (BVAR (current_buffer, mark_active)))
 +  if (0 <= markpos_of_region ()
        || !NILP (w->region_showing)
        || !NILP (Vshow_trailing_whitespace))
      return 0;
@@@ -17232,7 -17289,8 +17237,7 @@@ try_window_id (struct window *w
  
    /* Can't use this if highlighting a region because a cursor movement
       will do more than just set the cursor.  */
 -  if (!NILP (Vtransient_mark_mode)
 -      && !NILP (BVAR (current_buffer, mark_active)))
 +  if (0 <= markpos_of_region ())
      GIVE_UP (9);
  
    /* Likewise if highlighting trailing whitespace.  */
@@@ -18565,7 -18623,6 +18570,7 @@@ append_space_for_newline (struct it *it
          int saved_char_to_display = it->char_to_display;
          int saved_x = it->current_x;
          int saved_face_id = it->face_id;
 +        int saved_box_end = it->end_of_box_run_p;
          struct text_pos saved_pos;
          Lisp_Object saved_object;
          struct face *face;
            it->face_id = it->saved_face_id;
          face = FACE_FROM_ID (it->f, it->face_id);
          it->face_id = FACE_FOR_CHAR (it->f, face, 0, -1, Qnil);
 +        /* In R2L rows, we will prepend a stretch glyph that will
 +           have the end_of_box_run_p flag set for it, so there's no
 +           need for the appended newline glyph to have that flag
 +           set.  */
 +        if (it->glyph_row->reversed_p
 +            /* But if the appended newline glyph goes all the way to
 +               the end of the row, there will be no stretch glyph,
 +               so leave the box flag set.  */
 +            && saved_x + FRAME_COLUMN_WIDTH (it->f) < it->last_visible_x)
 +          it->end_of_box_run_p = 0;
  
          PRODUCE_GLYPHS (it);
  
          it->len = saved_len;
          it->c = saved_c;
          it->char_to_display = saved_char_to_display;
 +        it->end_of_box_run_p = saved_box_end;
          return 1;
        }
      }
@@@ -18700,7 -18746,7 +18705,7 @@@ extend_face_to_end_of_line (struct it *
          struct glyph *g;
          int row_width, stretch_ascent, stretch_width;
          struct text_pos saved_pos;
 -        int saved_face_id, saved_avoid_cursor;
 +        int saved_face_id, saved_avoid_cursor, saved_box_start;
  
          for (row_width = 0, g = row_start; g < row_end; g++)
            row_width += g->pixel_width;
              saved_avoid_cursor = it->avoid_cursor_p;
              it->avoid_cursor_p = 1;
              saved_face_id = it->face_id;
 +            saved_box_start = it->start_of_box_run_p;
              /* The last row's stretch glyph should get the default
                 face, to avoid painting the rest of the window with
                 the region face, if the region ends at ZV.  */
                it->face_id = default_face->id;
              else
                it->face_id = face->id;
 +            it->start_of_box_run_p = 0;
              append_stretch_glyph (it, make_number (0), stretch_width,
                                    it->ascent + it->descent, stretch_ascent);
              it->position = saved_pos;
              it->avoid_cursor_p = saved_avoid_cursor;
              it->face_id = saved_face_id;
 +            it->start_of_box_run_p = saved_box_start;
            }
        }
  #endif        /* HAVE_WINDOW_SYSTEM */
@@@ -20296,17 -20339,13 +20301,17 @@@ redisplay_mode_lines (Lisp_Object windo
  static int
  display_mode_lines (struct window *w)
  {
 -  Lisp_Object old_selected_window, old_selected_frame;
 +  Lisp_Object old_selected_window = selected_window;
 +  Lisp_Object old_selected_frame = selected_frame;
 +  Lisp_Object new_frame = w->frame;
 +  Lisp_Object old_frame_selected_window = XFRAME (new_frame)->selected_window;
    int n = 0;
  
 -  old_selected_frame = selected_frame;
 -  selected_frame = w->frame;
 -  old_selected_window = selected_window;
 +  selected_frame = new_frame;
 +  /* FIXME: If we were to allow the mode-line's computation changing the buffer
 +     or window's point, then we'd need select_window_1 here as well.  */
    XSETWINDOW (selected_window, w);
 +  XFRAME (new_frame)->selected_window = selected_window;
  
    /* These will be set while the mode line specs are processed.  */
    line_number_displayed = 0;
        ++n;
      }
  
 +  XFRAME (new_frame)->selected_window = old_frame_selected_window;
    selected_frame = old_selected_frame;
    selected_window = old_selected_window;
    return n;
@@@ -21031,8 -21069,10 +21036,8 @@@ are the selected window and the WINDOW'
    Lisp_Object str;
    int string_start = 0;
  
 -  if (NILP (window))
 -    window = selected_window;
 -  CHECK_WINDOW (window);
 -  w = XWINDOW (window);
 +  w = decode_any_window (window);
 +  XSETWINDOW (window, w);
  
    if (NILP (buffer))
      buffer = w->buffer;
       and set that to nil so that we don't alter the outer value.  */
    record_unwind_protect (unwind_format_mode_line,
                         format_mode_line_unwind_data
 -                         (XFRAME (WINDOW_FRAME (XWINDOW (window))),
 +                         (XFRAME (WINDOW_FRAME (w)),
                            old_buffer, selected_window, 1));
    mode_line_proptrans_alist = Qnil;
  
@@@ -21415,8 -21455,8 +21420,8 @@@ decode_mode_spec (struct window *w, reg
        register int i;
  
        /* Let lots_of_dashes be a string of infinite length.  */
 -      if (mode_line_target == MODE_LINE_NOPROP ||
 -          mode_line_target == MODE_LINE_STRING)
 +      if (mode_line_target == MODE_LINE_NOPROP
 +          || mode_line_target == MODE_LINE_STRING)
          return "--";
        if (field_width <= 0
            || field_width > sizeof (lots_of_dashes))
        if (mode_line_target == MODE_LINE_TITLE)
          return "";
  
 -      startpos = XMARKER (w->start)->charpos;
 +      startpos = marker_position (w->start);
        startpos_byte = marker_byte_position (w->start);
        height = WINDOW_TOTAL_LINES (w);
  
@@@ -23434,7 -23474,8 +23439,7 @@@ draw_glyphs (struct window *w, int x, s
  
    /* Let's rather be paranoid than getting a SEGV.  */
    end = min (end, row->used[area]);
 -  start = max (0, start);
 -  start = min (end, start);
 +  start = clip_to_bounds (0, start, end);
  
    /* Translate X to frame coordinates.  Set last_x to the right
       end of the drawing area.  */
@@@ -23713,18 -23754,8 +23718,18 @@@ append_glyph (struct it *it
        glyph->type = CHAR_GLYPH;
        glyph->avoid_cursor_p = it->avoid_cursor_p;
        glyph->multibyte_p = it->multibyte_p;
 -      glyph->left_box_line_p = it->start_of_box_run_p;
 -      glyph->right_box_line_p = it->end_of_box_run_p;
 +      if (it->glyph_row->reversed_p && area == TEXT_AREA)
 +      {
 +        /* In R2L rows, the left and the right box edges need to be
 +           drawn in reverse direction.  */
 +        glyph->right_box_line_p = it->start_of_box_run_p;
 +        glyph->left_box_line_p = it->end_of_box_run_p;
 +      }
 +      else
 +      {
 +        glyph->left_box_line_p = it->start_of_box_run_p;
 +        glyph->right_box_line_p = it->end_of_box_run_p;
 +      }
        glyph->overlaps_vertically_p = (it->phys_ascent > it->ascent
                                      || it->phys_descent > it->descent);
        glyph->glyph_not_available_p = it->glyph_not_available_p;
@@@ -23798,18 -23829,8 +23803,18 @@@ append_composite_glyph (struct it *it
        }
        glyph->avoid_cursor_p = it->avoid_cursor_p;
        glyph->multibyte_p = it->multibyte_p;
 -      glyph->left_box_line_p = it->start_of_box_run_p;
 -      glyph->right_box_line_p = it->end_of_box_run_p;
 +      if (it->glyph_row->reversed_p && area == TEXT_AREA)
 +      {
 +        /* In R2L rows, the left and the right box edges need to be
 +           drawn in reverse direction.  */
 +        glyph->right_box_line_p = it->start_of_box_run_p;
 +        glyph->left_box_line_p = it->end_of_box_run_p;
 +      }
 +      else
 +      {
 +        glyph->left_box_line_p = it->start_of_box_run_p;
 +        glyph->right_box_line_p = it->end_of_box_run_p;
 +      }
        glyph->overlaps_vertically_p = (it->phys_ascent > it->ascent
                                      || it->phys_descent > it->descent);
        glyph->padding_p = 0;
@@@ -23986,18 -24007,8 +23991,18 @@@ produce_image_glyph (struct it *it
          glyph->type = IMAGE_GLYPH;
          glyph->avoid_cursor_p = it->avoid_cursor_p;
          glyph->multibyte_p = it->multibyte_p;
 -        glyph->left_box_line_p = it->start_of_box_run_p;
 -        glyph->right_box_line_p = it->end_of_box_run_p;
 +        if (it->glyph_row->reversed_p && area == TEXT_AREA)
 +          {
 +            /* In R2L rows, the left and the right box edges need to be
 +               drawn in reverse direction.  */
 +            glyph->right_box_line_p = it->start_of_box_run_p;
 +            glyph->left_box_line_p = it->end_of_box_run_p;
 +          }
 +        else
 +          {
 +            glyph->left_box_line_p = it->start_of_box_run_p;
 +            glyph->right_box_line_p = it->end_of_box_run_p;
 +          }
          glyph->overlaps_vertically_p = 0;
            glyph->padding_p = 0;
          glyph->glyph_not_available_p = 0;
@@@ -24056,18 -24067,8 +24061,18 @@@ append_stretch_glyph (struct it *it, Li
        glyph->type = STRETCH_GLYPH;
        glyph->avoid_cursor_p = it->avoid_cursor_p;
        glyph->multibyte_p = it->multibyte_p;
 -      glyph->left_box_line_p = it->start_of_box_run_p;
 -      glyph->right_box_line_p = it->end_of_box_run_p;
 +      if (it->glyph_row->reversed_p && area == TEXT_AREA)
 +      {
 +        /* In R2L rows, the left and the right box edges need to be
 +           drawn in reverse direction.  */
 +        glyph->right_box_line_p = it->start_of_box_run_p;
 +        glyph->left_box_line_p = it->end_of_box_run_p;
 +      }
 +      else
 +      {
 +        glyph->left_box_line_p = it->start_of_box_run_p;
 +        glyph->right_box_line_p = it->end_of_box_run_p;
 +      }
        glyph->overlaps_vertically_p = 0;
        glyph->padding_p = 0;
        glyph->glyph_not_available_p = 0;
@@@ -24519,18 -24520,8 +24524,18 @@@ append_glyphless_glyph (struct it *it, 
        glyph->slice.glyphless.lower_yoff = lower_yoff;
        glyph->avoid_cursor_p = it->avoid_cursor_p;
        glyph->multibyte_p = it->multibyte_p;
 -      glyph->left_box_line_p = it->start_of_box_run_p;
 -      glyph->right_box_line_p = it->end_of_box_run_p;
 +      if (it->glyph_row->reversed_p && area == TEXT_AREA)
 +      {
 +        /* In R2L rows, the left and the right box edges need to be
 +           drawn in reverse direction.  */
 +        glyph->right_box_line_p = it->start_of_box_run_p;
 +        glyph->left_box_line_p = it->end_of_box_run_p;
 +      }
 +      else
 +      {
 +        glyph->left_box_line_p = it->start_of_box_run_p;
 +        glyph->right_box_line_p = it->end_of_box_run_p;
 +      }
        glyph->overlaps_vertically_p = (it->phys_ascent > it->ascent
                                      || it->phys_descent > it->descent);
        glyph->padding_p = 0;
@@@ -27707,6 -27698,12 +27712,6 @@@ note_mouse_highlight (struct frame *f, 
    if (hlinfo->mouse_face_defer)
      return;
  
 -  if (gc_in_progress)
 -    {
 -      hlinfo->mouse_face_deferred_gc = 1;
 -      return;
 -    }
 -
    /* Which window is that in?  */
    window = window_from_coordinates (f, x, y, &part, 1);