emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r116983: Merge from emacs-24; up to r116973


From: Paul Eggert
Subject: [Emacs-diffs] trunk r116983: Merge from emacs-24; up to r116973
Date: Wed, 16 Apr 2014 19:44:02 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 116983 [merge]
revision-id: address@hidden
parent: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Wed 2014-04-16 12:43:46 -0700
message:
  Merge from emacs-24; up to r116973
added:
  msdos/sedadmin.inp             sedadmin.inp-20140416133102-evfxr7nlwdjq1fio-1
  test/indent/nxml.xml           nxml.xml-20140416152750-mna1htrtv2r2qo7o-1
modified:
  ChangeLog                      changelog-20091113204419-o5vbwnq5f7feedwu-1538
  config.bat                     config.bat-20091113204419-o5vbwnq5f7feedwu-652
  configure.ac                   
configure.in-20091113204419-o5vbwnq5f7feedwu-783
  doc/emacs/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-6227
  doc/emacs/display.texi         
display.texi-20091113204419-o5vbwnq5f7feedwu-6243
  doc/lispref/display.texi       
display.texi-20091113204419-o5vbwnq5f7feedwu-6172
  etc/NEWS                       news-20100311060928-aoit31wvzf25yr1z-1
  lib-src/ChangeLog              changelog-20091113204419-o5vbwnq5f7feedwu-1608
  lib-src/update-game-score.c    
updategamescore.c-20091113204419-o5vbwnq5f7feedwu-2389
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/elec-pair.el              elecpair.el-20131227124533-yaq8recs0j0ggt67-1
  lisp/frame.el                  frame.el-20091113204419-o5vbwnq5f7feedwu-275
  lisp/htmlfontify.el            
htmlfontify.el-20091119213711-g4mo9tswbas14kj6-2
  lisp/net/shr.el                shr.el-20101002102929-yfzewk55rsg0mn93-1
  lisp/net/tramp-sh.el           trampsh.el-20100913133439-a1faifh29eqoi4nh-1
  lisp/nxml/nxml-mode.el         
nxmlmode.el-20091113204419-o5vbwnq5f7feedwu-7813
  lisp/nxml/xmltok.el            xmltok.el-20091113204419-o5vbwnq5f7feedwu-7836
  lisp/obsolete/lucid.el         lucid.el-20091113204419-o5vbwnq5f7feedwu-11410
  lisp/progmodes/perl-mode.el    perlmode.el-20091113204419-o5vbwnq5f7feedwu-402
  lisp/ps-def.el                 psdef.el-20091113204419-o5vbwnq5f7feedwu-8533
  lisp/simple.el                 simple.el-20091113204419-o5vbwnq5f7feedwu-403
  lisp/term/pc-win.el            pcwin.el-20091113204419-o5vbwnq5f7feedwu-795
  lisp/vc/ediff-diff.el          
ediffdiff.el-20091113204419-o5vbwnq5f7feedwu-845
  msdos/ChangeLog                changelog-20091113204419-o5vbwnq5f7feedwu-1535
  msdos/INSTALL                  install-20091113204419-o5vbwnq5f7feedwu-8797
  msdos/inttypes.h               inttypes.h-20110430103022-9u31wz13pzkt7g2z-1
  msdos/sed1v2.inp               sed1v2.inp-20091113204419-o5vbwnq5f7feedwu-968
  msdos/sed2v2.inp               sed2v2.inp-20091113204419-o5vbwnq5f7feedwu-2392
  msdos/sed3v2.inp               sed3v2.inp-20091113204419-o5vbwnq5f7feedwu-969
  msdos/sed6.inp                 sed6.inp-20091113204419-o5vbwnq5f7feedwu-1250
  msdos/sedleim.inp              
sedleim.inp-20091113204419-o5vbwnq5f7feedwu-1301
  msdos/sedlibmk.inp             sedlibmk.inp-20110219160449-wt33nubk11e3gf7o-2
  msdos/sedlisp.inp              
sedlisp.inp-20091113204419-o5vbwnq5f7feedwu-1832
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/alloc.c                    alloc.c-20091113204419-o5vbwnq5f7feedwu-252
  src/buffer.c                   buffer.c-20091113204419-o5vbwnq5f7feedwu-264
  src/bytecode.c                 bytecode.c-20091113204419-o5vbwnq5f7feedwu-257
  src/callproc.c                 callproc.c-20091113204419-o5vbwnq5f7feedwu-248
  src/conf_post.h                conf_post.h-20120730211826-q0qbxxwh2emw52hd-1
  src/data.c                     data.c-20091113204419-o5vbwnq5f7feedwu-251
  src/dired.c                    dired.c-20091113204419-o5vbwnq5f7feedwu-171
  src/emacs.c                    emacs.c-20091113204419-o5vbwnq5f7feedwu-241
  src/font.h                     font.h-20091113204419-o5vbwnq5f7feedwu-8541
  src/insdel.c                   insdel.c-20091113204419-o5vbwnq5f7feedwu-175
  src/keyboard.c                 keyboard.c-20091113204419-o5vbwnq5f7feedwu-449
  src/lisp.h                     lisp.h-20091113204419-o5vbwnq5f7feedwu-253
  src/menu.c                     menu.c-20091113204419-o5vbwnq5f7feedwu-8676
  src/msdos.c                    msdos.c-20091113204419-o5vbwnq5f7feedwu-656
  src/msdos.h                    msdos.h-20091113204419-o5vbwnq5f7feedwu-657
  src/process.c                  process.c-20091113204419-o5vbwnq5f7feedwu-462
  src/sysdep.c                   sysdep.c-20091113204419-o5vbwnq5f7feedwu-448
  src/term.c                     term.c-20091113204419-o5vbwnq5f7feedwu-220
  src/termhooks.h                termhooks.h-20091113204419-o5vbwnq5f7feedwu-249
  src/unexcoff.c                 unexec.c-20091113204419-o5vbwnq5f7feedwu-184
  src/w32term.c                  w32term.c-20091113204419-o5vbwnq5f7feedwu-950
  src/window.c                   window.c-20091113204419-o5vbwnq5f7feedwu-231
=== modified file 'ChangeLog'
--- a/ChangeLog 2014-04-16 15:16:35 +0000
+++ b/ChangeLog 2014-04-16 19:43:46 +0000
@@ -1,3 +1,29 @@
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * config.bat: Update for Emacs 24.4.
+
+2014-04-16  Paul Eggert  <address@hidden>
+
+       Port to IRIX 6.5 (Bug#9684).
+       This port requires IRIX cc, as I did not have time to get
+       undump working with the old GCC on the system I had access to,
+       but that's better than nothing.
+       * configure.ac (gl_GCC_VERSION_IFELSE): Remove unused macro
+       that wouldn't have worked anyway, with IRIX cc.
+       (emacs_cv_clang, emacs_cv_sanitize_address)
+       (ns_osx_have_104, ns_osx_have_105):
+       Don't assume '#error' makes the compiler fail,
+       as this doesn't work with IRIX cc.
+       (CFLAGS, LIBS): Don't let the GnuTLS results infect later 'configure'
+       checks.  This runs afoul of an IRIX configuration where GnuTLS is
+       in an optional library that also contains getdelim, and causes
+       a later 'configure' to incorrectly think getdelim is supported.
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * configure.ac (LN_S_FILEONLY, LN_S): Use "/bin/ln" on MinGW, to
+       ensure the MSYS ln.exe is invoked.
+
 2014-04-15  Paul Eggert  <address@hidden>
 
        Remove DATA_SEG_BITS.

=== modified file 'config.bat'
--- a/config.bat        2014-01-01 08:31:29 +0000
+++ b/config.bat        2014-04-16 13:27:28 +0000
@@ -264,8 +264,14 @@
 Rem Rename files like djtar on plain DOS filesystem would.
 If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h 
build-aux/snippet/cxxdefs.h
 If Exist alloca.in.h update alloca.in.h alloca.in-h
+If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
+If Exist dirent.in.h update dirent.in.h dirent.in-h
+If Exist errno.in.h update errno.in.h errno.in-h
 If Exist execinfo.in.h update execinfo.in.h execinfo.in-h
+If Exist fcntl.in.h update fcntl.in.h fcntl.in-h
 If Exist getopt.in.h update getopt.in.h getopt.in-h
+If Exist inttypes.in.h update inttypes.in.h inttypes.in-h
+If Exist stdarg.in.h update stdarg.in.h stdarg.in-h
 If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
 If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
 If Exist signal.in.h update signal.in.h signal.in-h
@@ -274,8 +280,11 @@
 If Exist stdint.in.h update stdint.in.h  stdint.in-h
 If Exist stdio.in.h update stdio.in.h stdio.in-h
 If Exist stdlib.in.h update stdlib.in.h stdlib.in-h
+If Exist string.in.h update string.in.h string.in-h
+If Exist sys_select.in.h update sys_select.in.h sys_select.in-h
 If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h
 If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
+If Exist sys_time.in.h update sys_time.in.h sys_time.in-h
 If Exist time.in.h update time.in.h time.in-h
 If Exist unistd.in.h update unistd.in.h unistd.in-h
 If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
@@ -294,13 +303,18 @@
 sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
 cd ..
 rem   ----------------------------------------------------------------------
-If not Exist leim\quail\latin-pre.el goto maindir
 Echo Configuring the leim directory...
 cd leim
 sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
 cd ..
 rem   ----------------------------------------------------------------------
-:maindir
+If Not Exist admin\unidata goto noadmin
+Echo Configuring the admin/unidata directory...
+cd admin\unidata
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
+cd ..\..
+:noadmin
+rem   ----------------------------------------------------------------------
 Echo Configuring the main directory...
 If Exist .dir-locals.el update .dir-locals.el _dir-locals.el
 If Exist src\.dbxinit update src/.dbxinit src/_dbxinit

=== modified file 'configure.ac'
--- a/configure.ac      2014-04-16 15:16:35 +0000
+++ b/configure.ac      2014-04-16 19:43:46 +0000
@@ -791,30 +791,12 @@
    fi
 fi)
 
-# gl_GCC_VERSION_IFELSE([major], [minor], [run-if-found], [run-if-not-found])
-# ------------------------------------------------
-# If $CPP is gcc-MAJOR.MINOR or newer, then run RUN-IF-FOUND.
-# Otherwise, run RUN-IF-NOT-FOUND.
-AC_DEFUN([gl_GCC_VERSION_IFELSE],
-  [AC_PREPROC_IFELSE(
-    [AC_LANG_PROGRAM(
-      [[
-#if ($1) < __GNUC__ || (($1) == __GNUC__ && ($2) <= __GNUC_MINOR__)
-/* ok */
-#else
-# error "your version of gcc is older than $1.$2"
-#endif
-      ]]),
-    ], [$3], [$4])
-  ]
-)
-
 # clang is unduly picky about some things.
 AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
   [AC_COMPILE_IFELSE(
      [AC_LANG_PROGRAM([[
          #ifndef __clang__
-           #error "not clang"
+           error "not clang";
          #endif
         ]])],
      [emacs_cv_clang=yes],
@@ -950,11 +932,21 @@
 
 LN_S_FILEONLY='cp -p'
 
+dnl On MinGW, ensure we will call the MSYS /bin/ln.exe, not some
+dnl random program in the current directory.
 if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
-    LN_S_FILEONLY='ln -s'
+    if test "$opsys" = "mingw32"; then
+      LN_S_FILEONLY='/bin/ln -s'
+    else
+      LN_S_FILEONLY='ln -s'
+    fi
   elif ln conf$$.file conf$$ 2>/dev/null; then
-    LN_S_FILEONLY=ln
+    if test "$opsys" = "mingw32"; then
+      LN_S_FILEONLY=/bin/ln
+    else
+      LN_S_FILEONLY=ln
+    fi
   fi
 fi
 
@@ -976,7 +968,7 @@
 dnl See http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00475.html
 dnl for more details.
 if test "$opsys" = "mingw32"; then
-  LN_S="ln"
+  LN_S="/bin/ln"
 fi
 
 AC_PATH_PROG(INSTALL_INFO, install-info, :,
@@ -1116,7 +1108,7 @@
          #endif
          #if defined __SANITIZE_ADDRESS__ || __has_feature (address_sanitizer)
          #else
-          #error "Addresses are not sanitized."
+          error "Addresses are not sanitized.";
          #endif
        ]])],
      [emacs_cv_sanitize_address=yes],
@@ -1712,7 +1704,7 @@
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
  ; /* OK */
 #else
-#error "OSX 10.4 or newer required"
+ error "OSX 10.4 or newer required";
 #endif
 #endif
                    ])],
@@ -1730,7 +1722,7 @@
 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
  ; /* OK */
 #else
-#error "OSX 10.5 not found"
+ error "OSX 10.5 not found";
 #endif
 #endif
                    ])],
@@ -2515,9 +2507,6 @@
   # Windows loads GnuTLS dynamically
   if test "${opsys}" = "mingw32"; then
     LIBGNUTLS_LIBS=
-  else
-    CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
-    LIBS="$LIBGNUTLS_LIBS $LIBS"
   fi
 fi
 

=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog       2014-04-07 21:19:31 +0000
+++ b/doc/emacs/ChangeLog       2014-04-16 19:43:46 +0000
@@ -1,3 +1,8 @@
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * display.texi (Cursor Display): Explain better how to customize
+       'blink-cursor-blinks'.
+
 2014-04-07  Glenn Morris  <address@hidden>
 
        * trouble.texi (Checklist): Dribble files may contain passwords.

=== modified file 'doc/emacs/display.texi'
--- a/doc/emacs/display.texi    2014-02-07 07:18:02 +0000
+++ b/doc/emacs/display.texi    2014-04-13 07:49:23 +0000
@@ -1482,18 +1482,27 @@
 @vindex blink-cursor-mode
 @vindex blink-cursor-blinks
 @vindex blink-cursor-alist
-  By default, the cursor stops blinking after 10 blinks.  This can be
-changed by customizing the variable @code{blink-cursor-blinks}.  To
-disable cursor blinking altogether, change the variable
address@hidden to @code{nil} (@pxref{Easy Customization}),
-or add the line @code{(blink-cursor-mode 0)} to your init file.
-Alternatively, you can change how the cursor looks when it ``blinks
-off'' by customizing the list variable @code{blink-cursor-alist}.
-Each element in the list should have the form @code{(@var{on-type}
-. @var{off-type})}; this means that if the cursor is displayed as
address@hidden when it blinks on (where @var{on-type} is one of the
-cursor types described above), then it is displayed as @var{off-type}
-when it blinks off.
+  By default, the cursor stops blinking after 10 blinks, if Emacs does
+not get any input during that time; any input event restarts the
+count.  You can customize the variable @code{blink-cursor-blinks} to
+control that: its value says how many times to blink without input
+before stopping.  Setting that variable to a zero or negative value
+will make the cursor blink forever.  To disable cursor blinking
+altogether, change the variable @code{blink-cursor-mode} to @code{nil}
+(@pxref{Easy Customization}), or add the line
+
address@hidden
+  (blink-cursor-mode 0)
address@hidden lisp
+
address@hidden
+to your init file.  Alternatively, you can change how the cursor
+looks when it ``blinks off'' by customizing the list variable
address@hidden  Each element in the list should have the
+form @code{(@var{on-type} . @var{off-type})}; this means that if the
+cursor is displayed as @var{on-type} when it blinks on (where
address@hidden is one of the cursor types described above), then it is
+displayed as @var{off-type} when it blinks off.
 
 @vindex x-stretch-cursor
 @cindex wide block cursor

=== modified file 'doc/lispref/display.texi'
--- a/doc/lispref/display.texi  2014-03-18 01:19:03 +0000
+++ b/doc/lispref/display.texi  2014-04-15 13:21:18 +0000
@@ -1475,8 +1475,10 @@
 
   Since more than one overlay can specify a property value for the
 same character, Emacs lets you specify a priority value of each
-overlay.  You should not make assumptions about which overlay will
-prevail when there is a conflict and they have the same priority.
+overlay.  In case two overlays have the same priority value, and one
+is nested in the other, then the inner one will have priority over the
+outer one.  If neither is nested in the other then you should not make
+assumptions about which overlay will prevail.
 
   These functions read and set the properties of an overlay:
 
@@ -1507,9 +1509,9 @@
 @table @code
 @item priority
 @kindex priority @r{(overlay property)}
-This property's value (which should be a non-negative integer)
-determines the priority of the overlay.  No priority, or @code{nil},
-means zero.
+This property's value determines the priority of the overlay.  No priority, or
address@hidden, means zero.  A non-nil and non-integer value has
+undefined behavior.
 
 The priority matters when two or more overlays cover the same
 character and both specify the same property; the one whose
@@ -1706,11 +1708,12 @@
 @node Finding Overlays
 @subsection Searching for Overlays
 
address@hidden overlays-at pos
-This function returns a list of all the overlays that cover the
-character at position @var{pos} in the current buffer.  The list is in
-no particular order.  An overlay contains position @var{pos} if it
-begins at or before @var{pos}, and ends after @var{pos}.
address@hidden overlays-at pos &optional sorted
+This function returns a list of all the overlays that cover the character at
+position @var{pos} in the current buffer.  If @var{sorted} is non-nil, the list
+is in decreasing order of priority, otherwise it is in no particular order.
+An overlay contains position @var{pos} if it begins at or before @var{pos}, and
+ends after @var{pos}.
 
 To illustrate usage, here is a Lisp function that returns a list of the
 overlays that specify property @var{prop} for the character at point:

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2014-04-16 15:28:06 +0000
+++ b/etc/NEWS  2014-04-16 19:43:46 +0000
@@ -1291,6 +1291,8 @@
 
 * Lisp Changes in Emacs 24.4
 
+** overlays-at can optionally sort its result by priority.
+
 +++
 ** The second argument of `eval' can now specify a lexical environment.
 

=== modified file 'lib-src/ChangeLog'
--- a/lib-src/ChangeLog 2014-03-22 23:08:41 +0000
+++ b/lib-src/ChangeLog 2014-04-16 19:43:46 +0000
@@ -1,3 +1,8 @@
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * update-game-score.c (write_scores): Condition fchmod call on
+       DOS_NT, not WINDOWSNT.
+
 2014-03-22  Glenn Morris  <address@hidden>
 
        * Makefile.in (etags_deps, etags_args): New, to reduce duplication.

=== modified file 'lib-src/update-game-score.c'
--- a/lib-src/update-game-score.c       2014-01-22 19:38:31 +0000
+++ b/lib-src/update-game-score.c       2014-04-16 13:27:28 +0000
@@ -443,7 +443,7 @@
   fd = mkostemp (tempfile, 0);
   if (fd < 0)
     return -1;
-#ifndef WINDOWSNT
+#ifndef DOS_NT
   if (fchmod (fd, 0644) != 0)
     return -1;
 #endif
@@ -459,7 +459,7 @@
     return -1;
   if (rename (tempfile, filename) != 0)
     return -1;
-#ifdef WINDOWSNT
+#ifdef DOS_NT
   if (chmod (filename, 0644) < 0)
     return -1;
 #endif

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-04-16 10:03:38 +0000
+++ b/lisp/ChangeLog    2014-04-16 19:43:46 +0000
@@ -1,3 +1,63 @@
+2014-04-16  Stefan Monnier  <address@hidden>
+
+       * progmodes/perl-mode.el (perl-calculate-indent): Don't auto-indent in
+       here-documents (bug#17262).
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * term/pc-win.el (x-list-fonts, x-get-selection-value):
+       Provide doc strings, as required by snarf-documentation.
+
+2014-04-16  Stefan Monnier  <address@hidden>
+
+       * ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'
+       arg of overlays-at.  Use `invisible-p'.
+
+       * obsolete/lucid.el (extent-at):
+       * htmlfontify.el (hfy-overlay-props-at): Use the new `sorted' arg of
+       overlays-at.
+       (hfy-fontify-buffer): Remove unused var `orig-ovls'.
+
+2014-04-16  João Távora  <address@hidden>
+
+       * net/shr.el (shr-expand-url): Use `expand-file-name' for relative
+       links.  (Bug#17217).
+
+2014-04-16  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * vc/ediff-diff.el (ediff-set-fine-diff-properties-in-one-buffer):
+       Use mapc to loop over a vector.  (Bug#17257).
+
+2014-04-16  Michael Albinus  <address@hidden>
+
+       * net/tramp-sh.el (tramp-sh-handle-file-truename): Revert previous
+       patch, there are new problems with file names containing spaces.
+       Get rid of backticks.  (Bug#17238)
+
+2014-04-16  João Távora  <address@hidden>
+
+       * elec-pair.el (electric-pair--syntax-ppss): Simplify and fix
+       possible bug.
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * frame.el (blink-cursor-blinks, blink-cursor-blinks-done): Doc fixes.
+       (blink-cursor-mode): Mention customization variables and the
+       effect of 'blink-cursor-blinks'.
+
+2014-04-16  Barry O'Reilly  <address@hidden>
+
+       * simple.el (undo): Prevent insertion of identity mapping into
+       undo-equiv-table so as undo-only does not inf loop in the presence
+       of consecutive nils in undo list.
+
+2014-04-16  Matthias Dahl  <address@hidden>
+
+       * faces.el (make-face): Deprecate optional argument as it is no
+       longer needed/used since the conditional X resources handling
+       has been pushed down to make-face-x-resource-internal itself.
+       (make-empty-face): Don't pass optional argument to make-face.
+
 2014-04-16  Karl Fogel  <address@hidden>
 
        * savehist.el (savehist-save): Remove workaround for a read-passwd

=== modified file 'lisp/elec-pair.el'
--- a/lisp/elec-pair.el 2014-04-11 06:43:20 +0000
+++ b/lisp/elec-pair.el 2014-04-16 19:43:46 +0000
@@ -226,10 +226,9 @@
 when to fallback to `parse-partial-sexp'."
   (let* ((pos (or pos (point)))
          (where (or where '(string comment)))
-         (quick-ppss (syntax-ppss))
-         (quick-ppss-at-pos (syntax-ppss pos))
-         (in-string (and (nth 3 quick-ppss-at-pos) (memq 'string where)))
-         (in-comment (and (nth 4 quick-ppss-at-pos) (memq 'comment where)))
+         (quick-ppss (syntax-ppss pos))
+         (in-string (and (nth 3 quick-ppss) (memq 'string where)))
+         (in-comment (and (nth 4 quick-ppss) (memq 'comment where)))
          (s-or-c-start (cond (in-string
                               (1+ (nth 8 quick-ppss)))
                              (in-comment
@@ -243,7 +242,7 @@
       ;; HACK! cc-mode apparently has some `syntax-ppss' bugs
       (if (memq major-mode '(c-mode c++ mode))
           (parse-partial-sexp (point-min) pos)
-        quick-ppss-at-pos))))
+        quick-ppss))))
 
 ;; Balancing means controlling pairing and skipping of parentheses
 ;; so that, if possible, the buffer ends up at least as balanced as

=== modified file 'lisp/frame.el'
--- a/lisp/frame.el     2014-03-23 22:11:59 +0000
+++ b/lisp/frame.el     2014-04-13 07:49:23 +0000
@@ -1722,14 +1722,14 @@
   :group 'cursor)
 
 (defcustom blink-cursor-blinks 10
-  "How many times to blink before using a solid cursor on NS and X.
+  "How many times to blink before using a solid cursor on NS, X, and 
MS-Windows.
 Use 0 or negative value to blink forever."
   :version "24.4"
   :type 'integer
   :group 'cursor)
 
 (defvar blink-cursor-blinks-done 1
-  "Number of blinks done since we started blinking on NS and X")
+  "Number of blinks done since we started blinking on NS, X, and MS-Windows.")
 
 (defvar blink-cursor-idle-timer nil
   "Timer started after `blink-cursor-delay' seconds of Emacs idle time.
@@ -1807,6 +1807,12 @@
 positive, and disable it otherwise.  If called from Lisp, enable
 the mode if ARG is omitted or nil.
 
+If the value of `blink-cursor-blinks' is positive (10 by default),
+the cursor stops blinking after that number of blinks, if Emacs
+gets no input during that time.
+
+See also `blink-cursor-interval' and `blink-cursor-delay'.
+
 This command is effective only on graphical frames.  On text-only
 terminals, cursor blinking is controlled by the terminal."
   :init-value (not (or noninteractive

=== modified file 'lisp/htmlfontify.el'
--- a/lisp/htmlfontify.el       2014-03-04 03:18:55 +0000
+++ b/lisp/htmlfontify.el       2014-04-15 13:21:18 +0000
@@ -1328,9 +1328,7 @@
 (defun hfy-overlay-props-at (p)
   "Grab overlay properties at point P.
 The plists are returned in descending priority order."
-  (sort (mapcar #'overlay-properties (overlays-at p))
-        (lambda (A B) (> (or (cadr (memq 'priority A)) 0) ;FIXME: plist-get?
-                    (or (cadr (memq 'priority B)) 0)))))
+ (mapcar #'overlay-properties (overlays-at p 'sorted)))
 
 ;; construct an assoc of (face-name . (css-name . "{ css-style }")) elements:
 (defun hfy-compile-stylesheet ()
@@ -1642,7 +1640,6 @@
           (css-map                     nil)
           (invis-ranges                nil)
           (rovl                        nil)
-          (orig-ovls      (overlays-in (point-min) (point-max)))
           (rmin           (when mark-active (region-beginning)))
           (rmax           (when mark-active (region-end      ))) )
     (when (and mark-active
@@ -1664,12 +1661,6 @@
     (set-buffer     html-buffer)
     ;; rip out props that could interfere with our htmlization of the buffer:
     (remove-text-properties (point-min) (point-max) hfy-ignored-properties)
-    ;; Apply overlay invisible spec
-    (setq orig-ovls
-          (sort orig-ovls
-                (lambda (A B)
-                  (> (or (cadr (memq 'priority (overlay-properties A))) 0)
-                     (or (cadr (memq 'priority (overlay-properties B))) 0)))))
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     ;; at this point, html-buffer retains the fontification of the parent:
     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

=== modified file 'lisp/net/shr.el'
--- a/lisp/net/shr.el   2014-03-05 18:44:58 +0000
+++ b/lisp/net/shr.el   2014-04-14 22:01:54 +0000
@@ -610,7 +610,7 @@
         (concat (nth 3 base) url))
        (t
         ;; Totally relative.
-        (concat (car base) (cadr base) url))))
+        (concat (car base) (expand-file-name url (cadr base))))))
 
 (defun shr-ensure-newline ()
   (unless (zerop (current-column))

=== modified file 'lisp/net/tramp-sh.el'
--- a/lisp/net/tramp-sh.el      2014-04-11 12:59:36 +0000
+++ b/lisp/net/tramp-sh.el      2014-04-13 10:31:48 +0000
@@ -950,15 +950,15 @@
          (tramp-message v 4 "Finding true name for `%s'" filename)
          (cond
           ;; Use GNU readlink --canonicalize-missing where available.
-          ;; We must quote the file name twice due to the backticks.
           ((tramp-get-remote-readlink v)
-           (setq result
-                 (tramp-send-command-and-read
-                  v
-                  (format "echo \"\\\"`%s --canonicalize-missing %s`\\\"\""
-                          (tramp-get-remote-readlink v)
-                          (tramp-shell-quote-argument
-                           (tramp-shell-quote-argument localname))))))
+           (tramp-send-command-and-check
+            v
+            (format "%s --canonicalize-missing %s"
+                    (tramp-get-remote-readlink v)
+                    (tramp-shell-quote-argument localname)))
+           (with-current-buffer (tramp-get-connection-buffer v)
+             (goto-char (point-min))
+             (setq result (buffer-substring (point-min) (point-at-eol)))))
 
           ;; Use Perl implementation.
           ((and (tramp-get-remote-perl v)

=== modified file 'lisp/nxml/nxml-mode.el'
--- a/lisp/nxml/nxml-mode.el    2014-03-21 06:56:55 +0000
+++ b/lisp/nxml/nxml-mode.el    2014-04-16 15:28:26 +0000
@@ -872,7 +872,7 @@
 
 (defun nxml-fontify-matcher (bound)
   "Called as font-lock keyword matcher."
-
+  (syntax-propertize bound)
   (unless nxml-degraded
     (nxml-debug-change "nxml-fontify-matcher" (point) bound)
 

=== modified file 'lisp/nxml/xmltok.el'
--- a/lisp/nxml/xmltok.el       2014-03-21 06:56:55 +0000
+++ b/lisp/nxml/xmltok.el       2014-04-16 15:28:26 +0000
@@ -750,7 +750,8 @@
                  ;; Need do this after the goto-char because
                  ;; marked error should just apply to <!--
                  (xmltok-add-error "First following `--' not followed by `>'")
-                 'not-well-formed)))))
+                 (goto-char (point-max))
+                 'comment)))))
 
 (defun xmltok-scan-attributes ()
   (let ((recovering nil)

=== modified file 'lisp/obsolete/lucid.el'
--- a/lisp/obsolete/lucid.el    2014-02-10 01:34:22 +0000
+++ b/lisp/obsolete/lucid.el    2014-04-15 13:21:18 +0000
@@ -125,7 +125,7 @@
 
 (defun extent-at (pos &optional object property before)
   (with-current-buffer (or object (current-buffer))
-    (let ((overlays (overlays-at pos)))
+    (let ((overlays (overlays-at pos 'sorted)))
       (when property
        (let (filtered)
          (while overlays
@@ -133,14 +133,6 @@
                (setq filtered (cons (car overlays) filtered)))
            (setq overlays (cdr overlays)))
          (setq overlays filtered)))
-      (setq overlays
-           (sort overlays
-                 (function (lambda (o1 o2)
-                             (let ((p1 (or (overlay-get o1 'priority) 0))
-                                   (p2 (or (overlay-get o2 'priority) 0)))
-                               (or (> p1 p2)
-                                   (and (= p1 p2)
-                                        (> (overlay-start o1) (overlay-start 
o2)))))))))
       (if before
          (nth 1 (memq before overlays))
        (car overlays)))))

=== modified file 'lisp/progmodes/perl-mode.el'
--- a/lisp/progmodes/perl-mode.el       2014-04-03 00:41:09 +0000
+++ b/lisp/progmodes/perl-mode.el       2014-04-16 14:13:06 +0000
@@ -903,7 +903,9 @@
        ;;          following_quotep minimum_paren-depth_this_scan)
        ;; Parsing stops if depth in parentheses becomes equal to third arg.
        (setq containing-sexp (nth 1 state)))
-      (cond ((nth 3 state) 'noindent)  ; In a quoted string?
+      (cond
+       ;; Don't auto-indent in a quoted string or a here-document.
+       ((or (nth 3 state) (eq 2 (nth 7 state))) 'noindent)
            ((null containing-sexp)     ; Line is at top level.
             (skip-chars-forward " \t\f")
             (if (memq (following-char)

=== modified file 'lisp/ps-def.el'
--- a/lisp/ps-def.el    2014-01-01 07:43:34 +0000
+++ b/lisp/ps-def.el    2014-04-15 13:21:18 +0000
@@ -339,53 +339,11 @@
        (setq position (min property-change overlay-change)
              before-string nil
              after-string nil)
-       ;; The code below is not quite correct,
-       ;; because a non-nil overlay invisible property
-       ;; which is inactive according to the current value
-       ;; of buffer-invisibility-spec nonetheless overrides
-       ;; a face text property.
        (setq face
-             (cond ((let ((prop (get-text-property from 'invisible)))
-                      ;; Decide whether this invisible property
-                      ;; really makes the text invisible.
-                      (if (eq save-buffer-invisibility-spec t)
-                          (not (null prop))
-                        (or (memq prop save-buffer-invisibility-spec)
-                            (assq prop save-buffer-invisibility-spec))))
+             (cond ((invisible-p from)
                     'emacs--invisible--face)
-                   ((get-text-property from 'face))
+                   ((get-char-property from 'face))
                    (t 'default)))
-       (let ((overlays (overlays-at from))
-             (face-priority -1))       ; text-property
-         (while (and overlays
-                     (not (eq face 'emacs--invisible--face)))
-           (let* ((overlay (car overlays))
-                  (overlay-invisible
-                   (overlay-get overlay 'invisible))
-                  (overlay-priority
-                   (or (overlay-get overlay 'priority) 0)))
-             (and (> overlay-priority face-priority)
-                  (setq before-string
-                        (or (overlay-get overlay 'before-string)
-                            before-string)
-                        after-string
-                        (or (and (<= (overlay-end overlay) position)
-                                 (overlay-get overlay 'after-string))
-                            after-string)
-                        face-priority overlay-priority
-                        face
-                        (cond
-                         ((if (eq save-buffer-invisibility-spec t)
-                              (not (null overlay-invisible))
-                            (or (memq overlay-invisible
-                                      save-buffer-invisibility-spec)
-                                (assq overlay-invisible
-                                      save-buffer-invisibility-spec)))
-                          'emacs--invisible--face)
-                         ((overlay-get overlay 'face))
-                         (t face)
-                         ))))
-           (setq overlays (cdr overlays))))
        ;; Plot up to this record.
        (and before-string
             (ps-plot-string before-string))

=== modified file 'lisp/simple.el'
--- a/lisp/simple.el    2014-04-02 15:14:50 +0000
+++ b/lisp/simple.el    2014-04-16 19:43:46 +0000
@@ -2143,7 +2143,12 @@
       ;; above when checking.
       (while (eq (car list) nil)
        (setq list (cdr list)))
-      (puthash list (if undo-in-region t pending-undo-list)
+      (puthash list
+               ;; Prevent identity mapping.  This can happen if
+               ;; consecutive nils are erroneously in undo list.
+               (if (or undo-in-region (eq list pending-undo-list))
+                   t
+                 pending-undo-list)
               undo-equiv-table))
     ;; Don't specify a position in the undo record for the undo command.
     ;; Instead, undoing this should move point to where the change is.

=== modified file 'lisp/term/pc-win.el'
--- a/lisp/term/pc-win.el       2014-02-10 01:34:22 +0000
+++ b/lisp/term/pc-win.el       2014-04-16 13:27:28 +0000
@@ -165,6 +165,27 @@
 
 ;; From src/xfns.c
 (defun x-list-fonts (_pattern &optional _face _frame _maximum width)
+  "Return a list of the names of available fonts matching PATTERN.
+If optional arguments FACE and FRAME are specified, return only fonts
+the same size as FACE on FRAME.
+
+PATTERN should be a string containing a font name in the XLFD,
+Fontconfig, or GTK format.  A font name given in the XLFD format may
+contain wildcard characters:
+  the * character matches any substring, and
+  the ? character matches any single character.
+  PATTERN is case-insensitive.
+
+The return value is a list of strings, suitable as arguments to
+\`set-face-font'.
+
+Fonts Emacs can't use may or may not be excluded
+even if they match PATTERN and FACE.
+The optional fourth argument MAXIMUM sets a limit on how many
+fonts to match.  The first MAXIMUM fonts are reported.
+The optional fifth argument WIDTH, if specified, is a number of columns
+occupied by a character of a font.  In that case, return only fonts
+the WIDTH times as wide as FACE on FRAME."
   (if (or (null width) (and (numberp width) (= width 1)))
       (list "ms-dos")
     (list "no-such-font")))
@@ -232,9 +253,9 @@
       (w16-set-clipboard-data text))
   (setq x-last-selected-text text))
 
-;;; Return the value of the current selection.
-;;; Consult the selection.  Treat empty strings as if they were unset.
 (defun x-get-selection-value ()
+  "Return the value of the current selection.
+Consult the selection.  Treat empty strings as if they were unset."
   (if x-select-enable-clipboard
       (let (text)
        ;; Don't die if x-get-selection signals an error.

=== modified file 'lisp/vc/ediff-diff.el'
--- a/lisp/vc/ediff-diff.el     2014-04-10 19:15:01 +0000
+++ b/lisp/vc/ediff-diff.el     2014-04-14 02:21:12 +0000
@@ -822,8 +822,9 @@
                (ediff-get-symbol-from-alist
                 buf-type ediff-fine-diff-face-alist)
                )))
-    (dolist (overl fine-diff-vector)
-      (ediff-set-overlay-face overl face))))
+    (mapc (lambda (overl)
+           (ediff-set-overlay-face overl face))
+         fine-diff-vector)))
 
 ;; Set overlays over the regions that denote delimiters
 (defun ediff-set-fine-overlays-for-combined-merge (diff-list reg-num)

=== modified file 'msdos/ChangeLog'
--- a/msdos/ChangeLog   2014-01-22 01:43:37 +0000
+++ b/msdos/ChangeLog   2014-04-16 13:27:28 +0000
@@ -1,3 +1,18 @@
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * sedlisp.inp:
+       * sedlibmk.inp:
+       * sedleim.inp:
+       * sed3v2.inp:
+       * sed2v2.inp:
+       * sed1v2.inp: Update Sed scripts for Emacs 24.4.
+
+       * inttypes.h: Add PRIdMAX.
+
+       * INSTALL: Update for Emacs 24.4.
+
+       * sedadmin.inp: New file.
+
 2013-12-24  Paul Eggert  <address@hidden>
 
        * autogen/Makefile.in: Update copyright year.

=== modified file 'msdos/INSTALL'
--- a/msdos/INSTALL     2014-01-01 07:43:34 +0000
+++ b/msdos/INSTALL     2014-04-16 13:27:28 +0000
@@ -4,18 +4,19 @@
 Inc.
 See the end of the file for license conditions.
 
-The DJGPP port of GNU Emacs builds and runs on plain DOS and also on
-all versions of MS-Windows from version 3.X on, including Windows XP,
-Vista, and Windows 7 (however, see below for issues with Windows Vista
-and 7).
+The DJGPP port of GNU Emacs builds and runs on all versions of
+MS-Windows from version 3.X on, including Windows XP, Vista, and
+Windows 7 (however, see below for issues with Windows Vista and 7).
+Building on plain MS-DOS is supported only if long file names are
+supported (e.g., with a specialized driver such as doslfn).
 
 To build and install the DJGPP port, you need to have the DJGPP ports
-of GCC (the GNU C compiler), GNU Make, rm, mv, and sed.  See the
+of GCC (the GNU C compiler), GNU Make, rm, mv, cp, and sed.  See the
 remarks in CONFIG.BAT for more information about locations and
-versions.  The Emacs FAQ (see info/efaq) includes pointers to Internet
-sites where you can find the necessary utilities; search for "MS-DOS".
-The configuration step (see below) will test for these utilities and
-will refuse to continue if any of them isn't found.
+versions.  The Emacs FAQ (see info/efaq.info) includes pointers to
+Internet sites where you can find the necessary utilities; search for
+"MS-DOS".  The configuration step (see below) will test for these
+utilities and will refuse to continue if any of them isn't found.
 
 Bootstrapping Emacs or recompiling Lisp files in the `lisp'
 subdirectory using the various targets in the lisp/Makefile file
@@ -27,18 +28,14 @@
 itself, you will only need that if you check-out development sources
 from the Emacs source repository.
 
-If you are building the DJGPP version of Emacs on a DOS-like system
-which supports long file names (e.g. Windows 9X or Windows XP), you
-need to make sure that long file names are handled consistently both
-when you unpack the distribution and compile it.  With DJGPP v2.0 or
-later, long file names support is by default, so you need to unpack
-Emacs distribution in a way that doesn't truncate the original long
-filenames to the DOS 8.3 namespace; the easiest way to do this is to
-use djtar program which comes with DJGPP, since it will behave
-consistently with the rest of DJGPP tools.  Alternatively, you can
-build Emacs with LFN=n, if some of your tools don't support long file
-names: just ensure that LFN is set to `n' during both unpacking and
-compiling.
+Building the DJGPP version of Emacs is currently supported only on
+systems which support long file names (e.g. Windows 9X or Windows XP).
+You need to unpack Emacs distribution in a way that doesn't truncate
+the original long filenames to the DOS 8.3 namespace; the easiest way
+to do this is to use djtar program which comes with DJGPP, since it
+will behave consistently with the rest of DJGPP tools.  Do _not_
+disable the DJGPP long-file-name support (a.k.a. "LFN") while building
+Emacs.
 
 (By the time you read this, you have already unpacked the Emacs
 distribution, but if the explanations above imply that you should have
@@ -46,18 +43,6 @@
 by the unpacking program and unpack Emacs again, than to risk running
 into strange problems during the build process.)
 
-It is important to understand that the runtime support of long file
-names by the Emacs binary is NOT affected by the LFN setting during
-compilation; Emacs compiled with DJGPP v2.0 or later will always
-support long file names on Windows no matter what was the setting
-of LFN at compile time.  However, if you compiled with LFN disabled
-and want to enable LFN support after Emacs was already built, you need
-to make sure that the support files in the lisp, etc and info
-directories are called by their original long names as found in the
-distribution.  You can do this either by renaming the files manually,
-or by extracting them from the original distribution archive with
-djtar after you set LFN=y in the environment.
-
 To unpack Emacs with djtar, type this command:
 
     djtar -x emacs.tgz
@@ -68,13 +53,6 @@
 When unpacking Emacs is done, a directory called `emacs-XX.YY' will be
 created, where XX.YY is the Emacs version.
 
-On plain DOS, unpacking can complain about several directories and
-files in the `nextstep' subdirectory of the `emacs-XX.YY' top-level
-directory.  This is because the names of these files overflow the
-67-character limit on the file-name length imposed by DOS filesystems.
-When prompted by `djtar' for a different name for these files, just
-press [Enter] to skip them: they are not needed for the DJGPP build.
-
 If you want to print international characters, install the intlfonts
 distribution.  For this, create a directory called `fonts' under the
 `emacs-XX.YY' top-level directory created by unpacking emacs.tgz,

=== modified file 'msdos/inttypes.h'
--- a/msdos/inttypes.h  2014-01-10 07:10:37 +0000
+++ b/msdos/inttypes.h  2014-04-16 13:27:28 +0000
@@ -32,6 +32,7 @@
 #define strtoumax strtoull
 #define strtoimax strtoll
 #define PRIuMAX   "llu"
+#define PRIdMAX   "lld"
 #endif /* __DJGPP__ < 2.04 */
 
 #endif

=== modified file 'msdos/sed1v2.inp'
--- a/msdos/sed1v2.inp  2014-01-01 07:43:34 +0000
+++ b/msdos/sed1v2.inp  2014-04-16 13:27:28 +0000
@@ -48,12 +48,16 @@
 /^LD_SWITCH_SYSTEM_TEMACS *=/s/@LD_SWITCH_SYSTEM_TEMACS@//
 /^LD_SWITCH_X_SITE_AUX *=/s/@LD_SWITCH_X_SITE_AUX@//
 /^LD_SWITCH_X_SITE_AUX_RPATH *=/s/@LD_SWITCH_X_SITE_AUX_RPATH@//
+/^LD_SWITCH_X_SITE_RPATH *=/s/@LD_SWITCH_X_SITE_RPATH@//
 /^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@//
 /^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@//
 /^LIB_GCC *=/s/@LIB_GCC@//
 /^LIB_STANDARD *=/s/@LIB_STANDARD@//
 /^LIB_MATH *=/s/@LIB_MATH@/-lm/
 /^LIB_PTHREAD *=/s/@LIB_PTHREAD@//
+/^LIB_ACL *=/s/@LIB_ACL@//
+/^LIB_EACCESS *=/s/@LIB_EACCESS@//
+/^LIB_FDATASYNC *=/s/@LIB_FDATASYNC@//
 s/ address@hidden@//
 s/ address@hidden@//
 s/ address@hidden@//
@@ -71,8 +75,10 @@
 /^DBUS_CFLAGS *=/s/@DBUS_CFLAGS@//
 /^DBUS_LIBS *=/s/@DBUS_LIBS@//
 /^DBUS_OBJ *=/s/@DBUS_OBJ@//
+/^NOTIFY_OBJ *=/s/@NOTIFY_OBJ@//
 /^SETTINGS_CFLAGS *=/s/@SETTINGS_CFLAGS@//
 /^SETTINGS_LIBS *=/s/@SETTINGS_LIBS@//
+/^GFILENOTIFY_LIBS *=/s/@GFILENOTIFY_LIBS@//
 /^GTK_OBJ *=/s/@GTK_OBJ@//
 /^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@//
 /^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/
@@ -83,6 +89,7 @@
 /^OLDXMENU_TARGET *=/s/@OLDXMENU_TARGET@//
 /^OLDXMENU_DEPS *=/s/@OLDXMENU_DEPS@//
 /^XOBJ *=/s/@XOBJ@//
+/^XGSELOBJ *=/s/@XGSELOBJ@//
 /^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@//
 /^LIBSOUND *=/s/@LIBSOUND@//
 /^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@//
@@ -114,12 +121,19 @@
 /^XMENU_OBJ *=/s/@XMENU_OBJ@/xmenu.o/
 /^FONT_OBJ *=/s/@FONT_OBJ@//
 /^LIBGPM *=/s/@LIBGPM@//
+/^LIBZ *=/s/@LIBZ@//
 /^EXEEXT *=/s/@EXEEXT@/.exe/
+/^MKDIR_P *=/s/@MKDIR_P@/gmkdir -p/
 /^OLDXMENU *=/s/@OLDXMENU@/nothing/
 /^LIBXMENU *=/s/@LIBXMENU@//
 /^LIBX_OTHER *=/s/@LIBX_OTHER@//
+/^XRANDR_LIBS *=/s/@XRANDR_LIBS@//
+/^XRANDR_CFLAGS *=/s/@XRANDR_CFLAGS@//
+/^XINERAMA_LIBS *=/s/@XINERAMA_LIBS@//
+/^XINERAMA_CFLAGS *=/s/@XINERAMA_CFLAGS@//
 /^GMALLOC_OBJ *=/s/@GMALLOC_OBJ@/gmalloc.o/
 /^VMLIMIT_OBJ *=/s/@VMLIMIT_OBJ@/vm-limit.o/
+/^FIRSTFILE_OBJ *=/s/@FIRSTFILE_OBJ@//
 /^RALLOC_OBJ *=/s/@RALLOC_OBJ@/ralloc.o/
 /^PRE_ALLOC_OBJ *=/s/@PRE_ALLOC_OBJ@/lastfile.o/
 /^POST_ALLOC_OBJ *=/s/@POST_ALLOC_OBJ@/$(vmlimitobj)/
@@ -130,9 +144,15 @@
 /^W32_OBJ *=/s/@W32_OBJ@//
 /^W32_LIBS *=/s/@W32_LIBS@//
 /^version *=/s/@address@hidden@//
+/^EMACSRES *=/s/@EMACSRES@//
+/^EMACS_MANIFEST *=/s/@EMACS_MANIFEST@//
+/^W32_RES_LINK *=/s/@W32_RES_LINK@//
+/^CM_OBJ *=/s/@CM_OBJ@/cm.o/
 /address@hidden@$/s/@SET_MAKE@//
+/^TEMACS_POST_LINK *=/s/@TEMACS_POST_LINK@/stubedit temacs.exe minstack=1024k/
+/^ADDSECTION *=/s/@ADDSECTION@//
 /^     [       
]*\$(libsrc)\/make-docfile.*>.*\/DOC/s!make-docfile!make-docfile -o $(etc)/DOC!
-/^     [       
]*\$(libsrc)\/make-docfile.*>.*gl-tmp/s!make-docfile!make-docfile -o gl-tmp!
+/^     [       
]*\$(libsrc)\/make-docfile.*>.*gl.tmp/s!make-docfile!make-docfile -o gl.tmp!
 /^.\$(libsrc)\/make-doc/s!>.*$!!
 /^     [       ]*\$(libsrc)\/make-docfile /s!`[^`]*`!$(lisp); cd ../src!
 /^[   ]*$/d
@@ -142,6 +162,7 @@
 /^      *test "X\$(PAXCTL)" = X/d
 /^      *test "\$(CANNOT_DUMP)" = "yes"/d
 /^     if test "\$(CANNOT_DUMP)" =/,/^ else /d
+/^      *\$(SETFATTR) -n/d
 /^     -\{0,1\} *ln /s/bootstrap-emacs\$(EXEEXT).*$/bootstrap-emacs$(EXEEXT)/
 /^     fi/d
 /^      *LC_ALL=C \$(RUN_TEMACS)/i\
@@ -156,15 +177,17 @@
 s/^    [^      ]*move-if-change /      update /
 /^     echo[   ][      ]*timestamp/s/echo /djecho /
 /^     .*djecho timestamp/a\
-       @rm -f gl-tmp
-/^     cd \$(leimdir) && \$(MAKE)/i\
+       @rm -f gl.tmp
+/^     cd ..\/leim && \$(MAKE)/i\
        $(RUN_TEMACS) -batch -l loadup dump\
        stubify emacs\
        stubedit emacs.exe minstack=2048k\
        rm -f b-emacs$(EXEEXT)\
        cp emacs$(EXEEXT) b-emacs$(EXEEXT)
-/^     cd \$(leimdir) && \$(MAKE)/c\
-       $(MAKE) $(MFLAGS) -C $(leimdir) leim-list.el EMACS=$(bootstrap_exe)
+/^     cd ..\/leim && \$(MAKE)/c\
+       $(MAKE) $(MFLAGS) -C ../leim leim-list.el EMACS=$(bootstrap_exe)
+/^     cd ..\/admin\/unidata && \$(MAKE)/c\
+       $(MAKE) $(MFLAGS) -C ../admin/unidata all EMACS="../$(bootstrap_exe)"
 /^     cd \$(lib) && \$(MAKE)/c\
        $(MAKE) $(MFLAGS) -C $(lib) libgnu.a
 /^RUN_TEMACS *=/s|`/bin/pwd`|.|
@@ -199,6 +222,10 @@
 /^     @\{0,1\}cd ..\/lisp;.*[^\]$/s|$|\; cd ../src|
 /^      *THEFILE=/s|$|\; cd ../src|
 /^     echo.* buildobj.h/s|echo |djecho |
+/^buildobj\.h:/,/^     mv /{
+  /^    *for /,/^       *done /c\
+       djecho "$(ALLOBJS)" | sed -e 's/^ */"/' -e 's/ *$$/"/' -e 's/  */", 
"/g' >>address@hidden
+}
 # Make the GCC command line fit one screen line
 /^[    ][      ]*\$(GNUSTEP_CFLAGS)/d
 /^[    ][      ]*\$(GCONF_CFLAGS)/d

=== modified file 'msdos/sed2v2.inp'
--- a/msdos/sed2v2.inp  2014-04-11 06:43:20 +0000
+++ b/msdos/sed2v2.inp  2014-04-16 19:43:46 +0000
@@ -132,6 +132,7 @@
 #else\
 #undef HAVE_SNPRINTF\
 #endif
+s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - 
fp->_base/
 
 # Comment out any remaining undef directives, because some of them
 # might be defined in sys/config.h we include at the top of config.h.

=== modified file 'msdos/sed3v2.inp'
--- a/msdos/sed3v2.inp  2014-01-01 07:43:34 +0000
+++ b/msdos/sed3v2.inp  2014-04-16 13:27:28 +0000
@@ -42,9 +42,17 @@
 /^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
 /^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
+/^UPDATE_MANIFEST *=/s/@UPDATE_MANIFEST@//
 /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
 /^ALLOCA *=/address@hidden@!!
-/^EXEEXT *=/address@hidden@!!
+/^EXEEXT *=/address@hidden@!.exe!
+/^CLIENTW *=/s/@CLIENTW@//
+/^LIB_FDATASYNC *=/s/@LIB_FDATASYNC@//
+/^LIB_WSOCK32 *=/s/@LIB_WSOCK32@//
+/^LIBS_ECLIENT *=/s/@LIBS_ECLIENT@//
+/^NTLIB *=/s/@NTLIB@//
+/^CLIENTRES *=/s/@CLIENTRES@//
+/^WINDRES *=/s/@WINDRES@//
 /^GETOPT_H *=/address@hidden@!getopt.h!
 /^GETOPTOBJS *=/address@hidden@!getopt.o getopt1.o!
 /^INSTALLABLES/s/emacsclient[^ ]* *//

=== modified file 'msdos/sed6.inp'
--- a/msdos/sed6.inp    2014-01-01 07:43:34 +0000
+++ b/msdos/sed6.inp    2014-04-16 13:27:28 +0000
@@ -42,5 +42,5 @@
   s/^  for file in $(INFO_TARGETS)\; do rm -f.*$/      rm -f $(INFO_TARGETS)/
 }
 
-/^mkinfodir *=/s| @.*$|@command.com /c if not exist ..\\..\\info\\emacs mkdir 
..\\..\\info|
+/^mkinfodir *=/s| @.*$|@command.com /c if not exist 
..\\..\\info\\emacs$(INFO_EXT) mkdir ..\\..\\info|
 

=== added file 'msdos/sedadmin.inp'
--- a/msdos/sedadmin.inp        1970-01-01 00:00:00 +0000
+++ b/msdos/sedadmin.inp        2014-04-16 13:31:23 +0000
@@ -0,0 +1,29 @@
+# -sedadmin.inp-----------------------------------------------------------
+# Configuration script for admin/unidata/Makefile under DJGPP v2.x
+# ----------------------------------------------------------------------
+#
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This file is part of GNU Emacs.
+#
+# This file is free software; as a special exception, the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# ----------------------------------------------------------------------
+/^SHELL *=/s/^/# /
+/^srcdir *=/s/@address@hidden@/./
+/^top_srcdir *=/s|@address@hidden@|../..|
+/^top_builddir *=/s|@address@hidden@|../..|
+
+/^      *-if /,/^       *fi/d
+/^      *if test -f charprop/,/^        *fi/c\
+       rm -f uni-*.el
+/^      *if test -f \${DSTDIR/,/^       *fi/c\
+       rm -f ${DSTDIR}/uni-*.el ${DSTDIR}/charprop.el
+/^      *cp `sed -n/c\
+       cp uni-*.el ${DSTDIR}

=== modified file 'msdos/sedleim.inp'
--- a/msdos/sedleim.inp 2014-01-01 07:43:34 +0000
+++ b/msdos/sedleim.inp 2014-04-16 13:27:28 +0000
@@ -19,56 +19,21 @@
 SHELL=/xyzzy/command\
 MAKESHELL=/xyzzy/command
 
-/^version=/d
-/^prefix=/d
-/^datadir=/s|@datadir@|../..|
 /^srcdir=/s|address@hidden@|srcdir := $(subst \\,/,$(shell cd))|
 
-/^INSTALLDIR=/c\
-INSTALLDIR=.
+# Need a relative directory name for the md command, otherwise it
+# chokes, perhaps due to multiple dots in emacs-XX.YY.NN name.
+/^leimdir *=/a\
+rel_leimdir = ..\\lisp\\leim
 
-/touch stamp-subdir/s|touch|djecho "stamp-subdir" >|
 s|\([  ]\)echo|\1djecho|g
 /^     @true *$/d
 
 /RUN_EMACS *=/,/^$/c\
-export EMACSLOADPATH=${buildlisppath}\
-RUN_EMACS = ${EMACS} -batch --no-site-file
-
-/^MKDIR_P *=/s,@MKDIR_P@,command.com /c md,
-
-/^     cd ../c\
-       ${MAKE} -C ../src ${MFLAGS} emacs
-
-/if \[ -f $@ \]\; then true/d
-/fi$/s/; fi$//
-
-/^leim-list.el:/,/^$/ {
-       /^      if/d
-       /^      else/,/^        fi/d
-       s|       *|     |
-       /^      --eval/,/; \\$/s|\; \\||
-}
-
-/^setwins=/,/^$/d
-/^\.PHONY: compile-targets/d
-/^compile-targets:/d
-/^compile-main:/,/^$/c\
-compile-main: ${TIT_MISC}\
-       $(MAKE) $(MFLAGS) $(foreach f,$(wildcard ja-dic/*.el),$(basename 
$f).elc)\
-       $(MAKE) $(MFLAGS) $(foreach f,$(wildcard quail/*.el),$(basename 
$f).elc)\
-
-
-/^install:/,/^$/c\
-install: all\
-
-/^bootstrap-clean:/,/^$/c\
-bootstrap-clean: clean\
-       rm -f ja-dic/*.elc quail/*.elc\
-
-
-/^     if test -f/d
-/^distclean:/,/^$/ {
-       s|\(rm -f Makefile\)|\1 stamp-subdir|
-}
-
+export EMACSLOADPATH=\
+RUN_EMACS = ${EMACS} -batch --no-site-file --no-site-lisp
+
+/^MKDIR_P *=/s,@MKDIR_P@,-command.com /c md,
+
+/MKDIR_P.* \${leimdir}\/.*$/s|\${leimdir}/|$(rel_leimdir)\\|
+/MKDIR_P.* \$(leimdir)\/.*$/s|\$(leimdir)/|$(rel_leimdir)\\|

=== modified file 'msdos/sedlibmk.inp'
--- a/msdos/sedlibmk.inp        2014-01-01 07:43:34 +0000
+++ b/msdos/sedlibmk.inp        2014-04-16 13:27:28 +0000
@@ -18,15 +18,25 @@
 #
 # Checklist to add a new gnulib module:
 #
-#  . If the module includes source files that need to be compiled, add
-#    the corresponding .o file names to the list that gets assigned to
-#    the gl_LIBOBJS variable.
+#  . If the module includes source files that need to be compiled, and
+#    does not appear in the am_libgnu_a_OBJECTS list, add the
+#    corresponding .o file names to the list that gets assigned to the
+#    gl_LIBOBJS variable.
+#
+#  . If a module appears in am_libgnu_a_OBJECTS that is not required
+#    for the MSDOS build, edit it out by adding an appropriate command
+#    to the set that edits the am_libgnu_a_OBJECTS block.
 #
 #  . If the module defines functions that need to replace DJGPP
-#    functions, edit the appropriate REPLACE_foo variables to 1;
-#    otherwise edit them to zero:
-#
-#     /^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/0/
+#    functions, edit the appropriate REPLACE_foo variables to 1:
+#
+#     /^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/1/
+#
+#    Note that this file already has a command to edit all the
+#    REPLACE_foo variables to zero, so if some gnulib replacement
+#    function is ever needed, the corresponding editing command such
+#    as above should be placed before that catchall rule (search for
+#    "REPLACE_" below).
 #
 #  . If the module is a header or adds headers, edit the corresponding
 #    variable to either an empty value or to the name of the header.
@@ -45,10 +55,10 @@
 #       s/address@hidden@/\#/
 #       s/address@hidden@//
 #
-#  . Also edit the NEXT_foo and NEXT_AS_FIRST_DIRECTIVE_foo_H variable
-#    as appropriately: to an empty value if the gnulib header is not
-#    used, and to the corresponding DJGPP header name otherwise.
-#    Examples:
+#  . Also edit the NEXT_foo_H and NEXT_AS_FIRST_DIRECTIVE_foo_H
+#    variables as appropriately: to an empty value if the gnulib
+#    header is not used, and to the corresponding DJGPP header name
+#    otherwise.  Examples:
 #
 #     /^NEXT_STDDEF_H *=/s/@address@hidden@//
 #     /^NEXT_STDINT_H *=/s/@address@hidden@/<stdint.h>/
@@ -57,7 +67,7 @@
 #
 #  . Note that some gnulib headers cannot be left unused: those for
 #    which there's no corresponding foo_H variable in
-#    autogen/Makefile.in (example: stdio.h).  For these the "not
+#    msdos/autogen/Makefile.in (example: stdio.h).  For these the "not
 #    needed" path is not applicable.
 #
 #  . If the header is needed, edit all the variables it uses as
@@ -68,12 +78,14 @@
 #    variable should be edited to zero and the corresponding
 #    GNULIB_foo variable should be edited to 1 if the gnulib
 #    replacement can work for DJGPP (a rare phenomenon), zero
-#    otherwise.
+#    otherwise.  Note that by default all HAVE_foo and GNULIB_foo
+#    variables that don't have a specific editing rule will be edited
+#    to zero.
 #
 #  . Some gnulib header files have more complex recipes in
-#    autogen/Makefile.in than others.  The tell-tale sign of such a
-#    recipe is that the input redirection from the .in.h file is not
-#    present at the end of the command, like this:
+#    msdos/autogen/Makefile.in than others.  The tell-tale sign of
+#    such a recipe is that the input redirection from the .in.h file
+#    is not present at the end of the command, like this:
 #
 #            -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
 #      } > address@hidden && \
@@ -93,6 +105,16 @@
 #       s/'\; \\ *$/' >> address@hidden/
 #     }
 #
+#    There's also a 3rd variety of script, which ends like this:
+#
+#             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
+#             < $(srcdir)/string.in.h; \
+#       } > address@hidden && \
+#       mv address@hidden $@
+#
+#    For these, you will need Sed commands like those used for
+#    string.h, see below.
+#
 #  . If the recipe for generating a header file uses 'cat', replace it with
 #
 #      sed -e ''
@@ -101,9 +123,9 @@
 #     this).
 #
 # The following Awk script is useful for editing portions of
-# autogen/Makefile.in into Sed commands that define the corresponding
-# variables to zero (which is what is required in the absolute
-# majority of cases):
+# msdos/autogen/Makefile.in into Sed commands that define the
+# corresponding variables to zero (which is what is required in the
+# absolute majority of cases):
 #
 #   { printf "/^%s *=/s/%s/0/\n",$1,$3}
 #
@@ -115,6 +137,8 @@
 s/@PACKAGE@/emacs/
 /^am__cd *=/c\
 am__cd = cd
+/address@hidden@/s/@address@hidden@/#/
+/address@hidden@/s/@address@hidden@//
 /^ALLOCA *=/s/@address@hidden@//
 /^ALSA_CFLAGS *=/s/@address@hidden@//
 /^ALSA_LIBS *=/s/@address@hidden@//
@@ -133,6 +157,7 @@
 /^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@//
 /^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@//
 /^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
+/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
 /^GNULIB_WARN_CFLAGS *=/s/@GNULIB_WARN_CFLAGS@//
 /^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
@@ -152,303 +177,86 @@
 /^BITSIZEOF_WINT_T *=/s/@BITSIZEOF_WINT_T@/32/
 /^APPLE_UNIVERSAL_BUILD *=/s/@APPLE_UNIVERSAL_BUILD@/0/
 #
-# Some GNULIB_* are replaced with zero even though DJGPP does not have
+# Most GNULIB_* are replaced with zero even though DJGPP does not have
 # these features.  That's because the gnulib replacements cannot
 # possibly work for DJGPP, so we prefer to fail the link than have a
-# subtly botched executable.
+# subtly botched executable.  Those replacements that _are_ needed
+# should be before the last catch-all rule.
 /^GNULIB_ATOLL *=/s/@GNULIB_ATOLL@/1/
-/^GNULIB_CALLOC_POSIX *=/s/@GNULIB_CALLOC_POSIX@/0/
-/^GNULIB_CANONICALIZE_FILE_NAME *=/s/@GNULIB_CANONICALIZE_FILE_NAME@/0/
-/^GNULIB_CHDIR *=/s/@GNULIB_CHDIR@/0/
-/^GNULIB_CHOWN *=/s/@GNULIB_CHOWN@/0/
-/^GNULIB_CLOSE *=/s/@GNULIB_CLOSE@/0/
-/^GNULIB_DPRINTF *=/s/@GNULIB_DPRINTF@/0/
-/^GNULIB_DUP *=/s/@GNULIB_DUP@/0/
-/^GNULIB_DUP2 *=/s/@GNULIB_DUP2@/0/
 /^GNULIB_DUP3 *=/s/@GNULIB_DUP3@/1/
 /^GNULIB_ENVIRON *=/s/@GNULIB_ENVIRON@/1/
-/^GNULIB_EUIDACCESS *=/s/@GNULIB_EUIDACCESS@/0/
-/^GNULIB_FACCESSAT *=/s/@GNULIB_FACCESSAT@/0/
-/^GNULIB_FCHDIR *=/s/@GNULIB_FCHDIR@/0/
-/^GNULIB_FCHOWNAT *=/s/@GNULIB_FCHOWNAT@/0/
-/^GNULIB_FCHMODAT *=/s/@GNULIB_FCHMODAT@/0/
-/^GNULIB_FCLOSE *=/s/@GNULIB_FCLOSE@/0/
-/^GNULIB_FDATASYNC *=/s/@GNULIB_FDATASYNC@/0/
-/^GNULIB_FDOPEN *=/s/@GNULIB_FDOPEN@/0/
-/^GNULIB_FFLUSH *=/s/@GNULIB_FFLUSH@/0/
-/^GNULIB_FGETC *=/s/@GNULIB_FGETC@/0/
-/^GNULIB_FGETS *=/s/@GNULIB_FGETS@/0/
-/^GNULIB_FOPEN *=/s/@GNULIB_FOPEN@/0/
-/^GNULIB_FPRINTF *=/s/@GNULIB_FPRINTF@/0/
-/^GNULIB_FPRINTF_POSIX *=/s/@GNULIB_FPRINTF_POSIX@/0/
-/^GNULIB_FPURGE *=/s/@GNULIB_FPURGE@/0/
-/^GNULIB_FPUTC *=/s/@GNULIB_FPUTC@/0/
-/^GNULIB_FPUTS *=/s/@GNULIB_FPUTS@/0/
-/^GNULIB_FREAD *=/s/@GNULIB_FREAD@/0/
-/^GNULIB_FREOPEN *=/s/@GNULIB_FREOPEN@/0/
-/^GNULIB_FSCANF *=/s/@GNULIB_FSCANF@/0/
-/^GNULIB_FSEEK *=/s/@GNULIB_FSEEK@/0/
-/^GNULIB_FSEEKO *=/s/@GNULIB_FSEEKO@/0/
-/^GNULIB_FSTAT *=/s/@GNULIB_FSTAT@/0/
-/^GNULIB_FSTATAT *=/s/@GNULIB_FSTATAT@/0/
-/^GNULIB_FSYNC *=/s/@GNULIB_FSYNC@/0/
-/^GNULIB_FTELL *=/s/@GNULIB_FTELL@/0/
-/^GNULIB_FTELLO *=/s/@GNULIB_FTELLO@/0/
-/^GNULIB_FTRUNCATE *=/s/@GNULIB_FTRUNCATE@/0/
-/^GNULIB_FUTIMENS *=/s/@GNULIB_FUTIMENS@/0/
-/^GNULIB_FWRITE *=/s/@GNULIB_FWRITE@/0/
-/^GNULIB_GETC *=/s/@GNULIB_GETC@/0/
-/^GNULIB_GETCHAR *=/s/@GNULIB_GETCHAR@/0/
-/^GNULIB_GETCWD *=/s/@GNULIB_GETCWD@/0/
-/^GNULIB_GETDELIM *=/s/@GNULIB_GETDELIM@/0/
-/^GNULIB_GETDOMAINNAME *=/s/@GNULIB_GETDOMAINNAME@/0/
-/^GNULIB_GETDTABLESIZE *=/s/@GNULIB_GETDTABLESIZE@/0/
-/^GNULIB_GETGROUPS *=/s/@GNULIB_GETGROUPS@/0/
-/^GNULIB_GETHOSTNAME *=/s/@GNULIB_GETHOSTNAME@/0/
-/^GNULIB_GETLINE *=/s/@GNULIB_GETLINE@/0/
+/^GNULIB_FDATASYNC *=/s/@GNULIB_FDATASYNC@/1/
 /^GNULIB_GETLOADAVG *=/s/@GNULIB_GETLOADAVG@/1/
-/^GNULIB_GETLOGIN *=/s/@GNULIB_GETLOGIN@/0/
-/^GNULIB_GETLOGIN_R *=/s/@GNULIB_GETLOGIN_R@/0/
-/^GNULIB_GETPAGESIZE *=/s/@GNULIB_GETPAGESIZE@/0/
 /^GNULIB_GL_UNISTD_H_GETOPT *=/s/@GNULIB_GL_UNISTD_H_GETOPT@/1/
-/^GNULIB_GETSUBOPT *=/s/@GNULIB_GETSUBOPT@/0/
-/^GNULIB_GETTIMEOFDAY *=/s/@GNULIB_GETTIMEOFDAY@/0/
-/^GNULIB_GETUSERSHELL *=/s/@GNULIB_GETUSERSHELL@/0/
-/^GNULIB_GRANTPT *=/s/@GNULIB_GRANTPT@/0/
-/^GNULIB_GROUP_MEMBER *=/s/@GNULIB_GROUP_MEMBER@/0/
-/^GNULIB_ISATTY *=/s/@GNULIB_ISATTY@/0/
-/^GNULIB_LCHMOD *=/s/@GNULIB_LCHMOD@/0/
-/^GNULIB_LCHOWN *=/s/@GNULIB_LCHOWN@/0/
-/^GNULIB_LINK *=/s/@GNULIB_LINK@/0/
-/^GNULIB_LINKAT *=/s/@GNULIB_LINKAT@/0/
-/^GNULIB_LSEEK *=/s/@GNULIB_LSEEK@/0/
-/^GNULIB_LSTAT *=/s/@GNULIB_LSTAT@/0/
-/^GNULIB_MALLOC_POSIX *=/s/@GNULIB_MALLOC_POSIX@/0/
-/^GNULIB_MBTOWC *=/s/@GNULIB_MBTOWC@/0/
-/^GNULIB_MKDIRAT *=/s/@GNULIB_MKDIRAT@/0/
-/^GNULIB_MKDTEMP *=/s/@GNULIB_MKDTEMP@/0/
-/^GNULIB_MKFIFO *=/s/@GNULIB_MKFIFO@/0/
-/^GNULIB_MKFIFOAT *=/s/@GNULIB_MKFIFOAT@/0/
-/^GNULIB_MKNOD *=/s/@GNULIB_MKNOD@/0/
-/^GNULIB_MKNODAT *=/s/@GNULIB_MKNODAT@/0/
-/^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/0/
-/^GNULIB_MKOSTEMPS *=/s/@GNULIB_MKOSTEMPS@/0/
-/^GNULIB_MKSTEMP *=/s/@GNULIB_MKSTEMP@/0/
-/^GNULIB_MKSTEMPS *=/s/@GNULIB_MKSTEMPS@/0/
-/^GNULIB_MKTIME *=/s/@GNULIB_MKTIME@/0/
-/^GNULIB_NANOSLEEP *=/s/@GNULIB_NANOSLEEP@/0/
-/^GNULIB_OBSTACK_PRINTF *=/s/@GNULIB_OBSTACK_PRINTF@/0/
-/^GNULIB_OBSTACK_PRINTF_POSIX *=/s/@GNULIB_OBSTACK_PRINTF_POSIX@/0/
-/^GNULIB_PCLOSE *=/s/@GNULIB_PCLOSE@/0/
-/^GNULIB_PERROR *=/s/@GNULIB_PERROR@/0/
-/^GNULIB_PIPE *=/s/@GNULIB_PIPE@/0/
-/^GNULIB_PIPE2 *=/s/@GNULIB_PIPE2@/0/
-/^GNULIB_POPEN *=/s/@GNULIB_POPEN@/0/
-/^GNULIB_POSIX_OPENPT *=/s/@GNULIB_POSIX_OPENPT@/0/
-/^GNULIB_PREAD *=/s/@GNULIB_PREAD@/0/
-/^GNULIB_PRINTF *=/s/@GNULIB_PRINTF@/0/
-/^GNULIB_PRINTF_POSIX *=/s/@GNULIB_PRINTF_POSIX@/0/
-/^GNULIB_PSELECT *=/s/@GNULIB_PSELECT@/0/
-/^GNULIB_PTHREAD_SIGMASK *=/s/@GNULIB_PTHREAD_SIGMASK@/0/
-/^GNULIB_PTSNAME *=/s/@GNULIB_PTSNAME@/0/
-/^GNULIB_PTSNAME_R *=/s/@GNULIB_PTSNAME_R@/0/
-/^GNULIB_PUTC *=/s/@GNULIB_PUTC@/0/
-/^GNULIB_PUTCHAR *=/s/@GNULIB_PUTCHAR@/0/
-/^GNULIB_PUTENV *=/s/@GNULIB_PUTENV@/0/
-/^GNULIB_PUTS *=/s/@GNULIB_PUTS@/0/
-/^GNULIB_PWRITE *=/s/@GNULIB_PWRITE@/0/
-/^GNULIB_RAISE *=/s/@GNULIB_RAISE@/0/
-/^GNULIB_RANDOM *=/s/@GNULIB_RANDOM@/0/
-/^GNULIB_RANDOM_R *=/s/@GNULIB_RANDOM_R@/0/
-/^GNULIB_READ *=/s/@GNULIB_READ@/0/
-/^GNULIB_READLINK *=/s/@GNULIB_READLINK@/0/
-/^GNULIB_READLINKAT *=/s/@GNULIB_READLINKAT@/0/
-/^GNULIB_REALLOC_POSIX *=/s/@GNULIB_REALLOC_POSIX@/0/
-/^GNULIB_REALPATH *=/s/@GNULIB_REALPATH@/0/
-/^GNULIB_REMOVE *=/s/@GNULIB_REMOVE@/0/
-/^GNULIB_RENAME *=/s/@GNULIB_RENAME@/0/
-/^GNULIB_RENAMEAT *=/s/@GNULIB_RENAMEAT@/0/
-/^GNULIB_RMDIR *=/s/@GNULIB_RMDIR@/0/
-/^GNULIB_RPMATCH *=/s/@GNULIB_RPMATCH@/0/
-/^GNULIB_SCANF *=/s/@GNULIB_SCANF@/0/
-/^GNULIB_SECURE_GETENV *=/s/@GNULIB_SECURE_GETENV@/0/
-/^GNULIB_SELECT *=/s/@GNULIB_SELECT@/0/
-/^GNULIB_SETENV *=/s/@GNULIB_SETENV@/0/
-/^GNULIB_SETHOSTNAME *=/s/@GNULIB_SETHOSTNAME@/0/
-/^GNULIB_SIGACTION *=/s/@GNULIB_SIGACTION@/0/
-/^GNULIB_SIGNAL_H_SIGPIPE *=/s/@GNULIB_SIGNAL_H_SIGPIPE@/0/
-/^GNULIB_SIGPROCMASK *=/s/@GNULIB_SIGPROCMASK@/0/
-/^GNULIB_SLEEP *=/s/@GNULIB_SLEEP@/0/
-/^GNULIB_SNPRINTF *=/s/@GNULIB_SNPRINTF@/0/
-/^GNULIB_SPRINTF_POSIX *=/s/@GNULIB_SPRINTF_POSIX@/0/
-/^GNULIB_STAT *=/s/@GNULIB_STAT@/0/
-/^GNULIB_STDIO_H_NONBLOCKING *=/s/@GNULIB_STDIO_H_NONBLOCKING@/0/
-/^GNULIB_STDIO_H_SIGPIPE *=/s/@GNULIB_STDIO_H_SIGPIPE@/0/
-/^GNULIB_STRPTIME *=/s/@GNULIB_STRPTIME@/0/
-/^GNULIB_STRTOD *=/s/@GNULIB_STRTOD@/0/
-/^GNULIB_STRTOLL *=/s/@GNULIB_STRTOLL@/0/
-/^GNULIB_STRTOULL *=/s/@GNULIB_STRTOULL@/0/
-/^GNULIB_SYMLINK *=/s/@GNULIB_SYMLINK@/0/
-/^GNULIB_SYMLINKAT *=/s/@GNULIB_SYMLINKAT@/0/
-/^GNULIB_SYSTEM_POSIX *=/s/@GNULIB_SYSTEM_POSIX@/0/
-/^GNULIB_TIMEGM *=/s/@GNULIB_TIMEGM@/0/
+/^GNULIB_MEMRCHR *=/s/@GNULIB_MEMRCHR@/1/
+/^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/1/
 /^GNULIB_TIME_R *=/s/@GNULIB_TIME_R@/1/
-/^GNULIB_TMPFILE *=/s/@GNULIB_TMPFILE@/0/
-/^GNULIB_TTYNAME_R *=/s/@GNULIB_TTYNAME_R@/0/
-/^GNULIB_UNISTD_H_NONBLOCKING *=/s/@GNULIB_UNISTD_H_NONBLOCKING@/0/
-/^GNULIB_UNISTD_H_SIGPIPE *=/s/@GNULIB_UNISTD_H_SIGPIPE@/0/
-/^GNULIB_UNLINK *=/s/@GNULIB_UNLINK@/0/
-/^GNULIB_UNLINKAT *=/s/@GNULIB_UNLINKAT@/0/
-/^GNULIB_UNLOCKPT *=/s/@GNULIB_UNLOCKPT@/0/
 /^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/
-/^GNULIB_USLEEP *=/s/@GNULIB_USLEEP@/0/
-/^GNULIB_UTIMENSAT *=/s/@GNULIB_UTIMENSAT@/0/
-/^GNULIB_VASPRINTF *=/s/@GNULIB_VASPRINTF@/0/
-/^GNULIB_VDPRINTF *=/s/@GNULIB_VDPRINTF@/0/
-/^GNULIB_VFPRINTF *=/s/@GNULIB_VFPRINTF@/0/
-/^GNULIB_VFPRINTF_POSIX *=/s/@GNULIB_VFPRINTF_POSIX@/0/
-/^GNULIB_VFSCANF *=/s/@GNULIB_VFSCANF@/0/
-/^GNULIB_VPRINTF *=/s/@GNULIB_VPRINTF@/0/
-/^GNULIB_VPRINTF_POSIX *=/s/@GNULIB_VPRINTF_POSIX@/0/
-/^GNULIB_VSCANF *=/s/@GNULIB_VSCANF@/0/
-/^GNULIB_VSNPRINTF *=/s/@GNULIB_VSNPRINTF@/0/
-/^GNULIB_VSPRINTF_POSIX *=/s/@GNULIB_VSPRINTF_POSIX@/0/
-/^GNULIB_WCTOMB *=/s/@GNULIB_WCTOMB@/0/
-/^GNULIB_WRITE *=/s/@GNULIB_WRITE@/0/
-/^GNULIB__EXIT *=/s/@GNULIB__EXIT@/0/
+/^GNULIB_[^ =]* *= *@/s/@address@hidden@/0/
 /^GSETTINGS_CFLAGS *=/s/@address@hidden@//
 /^GSETTINGS_LIBS *=/s/@address@hidden@//
+#
+# Edit the HAVE_foo variables
 /^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/
-/^HAVE_CANONICALIZE_FILE_NAME *=/s/@HAVE_CANONICALIZE_FILE_NAME@/0/
 /^HAVE_CHOWN *=/s/@HAVE_CHOWN@/1/
-/^HAVE_DECL_ENVIRON *=/s/@HAVE_DECL_ENVIRON@/0/
-/^HAVE_DECL_FCHDIR *=/s/@HAVE_DECL_FCHDIR@/0/
-/^HAVE_DECL_FDATASYNC *=/s/@HAVE_DECL_FDATASYNC@/0/
-/^HAVE_DECL_FPURGE *=/s/@HAVE_DECL_FPURGE@//
-/^HAVE_DECL_FSEEKO *=/s/@HAVE_DECL_FSEEKO@/0/
-/^HAVE_DECL_FTELLO *=/s/@HAVE_DECL_FTELLO@/0/
-/^HAVE_DECL_GETDELIM *=/s/@HAVE_DECL_GETDELIM@/0/
-/^HAVE_DECL_GETDOMAINNAME *=/s/@HAVE_DECL_GETDOMAINNAME@/0/
-/^HAVE_DECL_GETLINE *=/s/@HAVE_DECL_GETLINE@/0/
-/^HAVE_DECL_GETLOADAVG *=/s/@HAVE_DECL_GETLOADAVG@/0/
-/^HAVE_DECL_GETLOGIN_R *=/s/@HAVE_DECL_GETLOGIN_R@/0/
+/^HAVE_CLOSEDIR *=/s/@HAVE_CLOSEDIR@/1/
 /^HAVE_DECL_GETPAGESIZE *=/s/@HAVE_DECL_GETPAGESIZE@/1/
-/^HAVE_DECL_GETUSERSHELL *=/s/@HAVE_DECL_GETUSERSHELL@/0/
-/^HAVE_DECL_LOCALTIME_R *=/s/@HAVE_DECL_LOCALTIME_R@/0/
-/^HAVE_DECL_OBSTACK_PRINTF *=/s/@HAVE_DECL_OBSTACK_PRINTF@/0/
-/^HAVE_DECL_SETHOSTNAME *=/s/@HAVE_DECL_SETHOSTNAME@/0/
 /^HAVE_DECL_SETENV *=/s/@HAVE_DECL_SETENV@/1/
-/^HAVE_DECL_SNPRINTF *=/s/@HAVE_DECL_SNPRINTF@/0/
-/^HAVE_DECL_TTYNAME_R *=/s/@HAVE_DECL_TTYNAME_R@/0/
-/^HAVE_DECL_UNSETENV *=/s/@HAVE_DECL_UNSETENV@/0/
-/^HAVE_DECL_VSNPRINTF *=/s/@HAVE_DECL_VSNPRINTF@/0/
-/^HAVE_DPRINTF *=/s/@HAVE_DPRINTF@/0/
+/^HAVE_DECL_STRDUP *=/s/@HAVE_DECL_STRDUP@/1/
+# The following two rely on msdos/inttypes.h redirections
+/^HAVE_DECL_STRTOIMAX *=/s/@HAVE_DECL_STRTOIMAX@/1/
+/^HAVE_DECL_STRTOUMAX *=/s/@HAVE_DECL_STRTOUMAX@/1/
+/^HAVE_DIRENT_H *=/s/@HAVE_DIRENT_H@/1/
 /^HAVE_DUP2 *=/s/@HAVE_DUP2@/1/
-/^HAVE_DUP3 *=/s/@HAVE_DUP3@/0/
-/^HAVE_EUIDACCESS *=/s/@HAVE_EUIDACCESS@/0/
-/^HAVE_FACCESSAT *=/s/@HAVE_FACCESSAT@/0/
-/^HAVE_FCHDIR *=/s/@HAVE_FCHDIR@/0/
-/^HAVE_FCHMODAT *=/s/@HAVE_FCHMODAT@/0/
-/^HAVE_FCHOWNAT *=/s/@HAVE_FCHOWNAT@/0/
-/^HAVE_FDATASYNC *=/s/@HAVE_FDATASYNC@/0/
-/^HAVE_FSEEKO *=/s/@HAVE_FSEEKO@/0/
-/^HAVE_FSTATAT *=/s/@HAVE_FSTATAT@/0/
 /^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/
-/^HAVE_FTELLO *=/s/@HAVE_FTELLO@/0/
 /^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/
-/^HAVE_FUTIMENS *=/s/@HAVE_FUTIMENS@/0/
-/^HAVE_GETDTABLESIZE *=/s/@HAVE_GETDTABLESIZE@/0/
-/^HAVE_GETGROUPS *=/s/@HAVE_GETGROUPS@/0/
 /^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/
 /^HAVE_GETLOGIN *=/s/@HAVE_GETLOGIN@/1/
-/^HAVE_GETOPT_H *=/s/@HAVE_GETOPT_H@/0/
 /^HAVE_GETPAGESIZE *=/s/@HAVE_GETPAGESIZE@/1/
-/^HAVE_GETSUBOPT *=/s/@HAVE_GETSUBOPT@/0/
-/^HAVE_GRANTPT *=/s/@HAVE_GRANTPT@/0/
-/^HAVE_GROUP_MEMBER *=/s/@HAVE_GROUP_MEMBER@/0/
-/^HAVE_LCHOWN *=/s/@HAVE_LCHOWN@/0/
 /^HAVE_INTTYPES_H *=/s/@HAVE_INTTYPES_H@/HAVE_INTTYPES_H/
-/^HAVE_LCHMOD *=/s/@HAVE_LCHMOD@/0/
 /^HAVE_LINK *=/s/@HAVE_LINK@/1/
-/^HAVE_LINKAT *=/s/@HAVE_LINKAT@/0/
 /^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/
 /^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/
 /^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/
-/^HAVE_MKDIRAT *=/s/@HAVE_MKDIRAT@/0/
-/^HAVE_MKDTEMP *=/s/@HAVE_MKDTEMP@/0/
+/^HAVE_MEMCHR *=/s/@HAVE_MEMCHR@/1/
 /^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/
-/^HAVE_MKFIFOAT *=/s/@HAVE_MKFIFOAT@/0/
 /^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/
-/^HAVE_MKNODAT *=/s/@HAVE_MKNODAT@/0/
-/^HAVE_MKOSTEMP *=/s/@HAVE_MKOSTEMP@/0/
-/^HAVE_MKOSTEMPS *=/s/@HAVE_MKOSTEMPS@/0/
 /^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/
-/^HAVE_MKSTEMPS *=/s/@HAVE_MKSTEMPS@/0/
-/^HAVE_NANOSLEEP *=/s/@HAVE_NANOSLEEP@/0/
-/^HAVE_OS_H *=/s/@HAVE_OS_H@/0/
-/^HAVE_PIPE *=/s/@HAVE_PIPE@/0/
+/^HAVE_OPENDIR *=/s/@HAVE_OPENDIR@/1/
 /^HAVE_PCLOSE *=/s/@HAVE_PCLOSE@/1/
-/^HAVE_PIPE2 *=/s/@HAVE_PIPE2@/0/
 /^HAVE_POPEN *=/s/@HAVE_POPEN@/1/
 /^HAVE_POSIX_SIGNALBLOCKING *=/s/@HAVE_POSIX_SIGNALBLOCKING@/1/
-/^HAVE_POSIX_OPENPT *=/s/@HAVE_POSIX_OPENPT@/0/
-/^HAVE_PREAD *=/s/@HAVE_PREAD@/0/
-/^HAVE_PTSNAME *=/s/@HAVE_PTSNAME@/0/
-/^HAVE_PTSNAME_R *=/s/@HAVE_PTSNAME_R@/0/
-/^HAVE_PTHREAD_SIGMASK *=/s/@HAVE_PTHREAD_SIGMASK@/0/
-/^HAVE_PWRITE *=/s/@HAVE_PWRITE@/0/
 /^HAVE_RANDOM_H *=/s/@HAVE_RANDOM_H@/1/
 /^HAVE_RAISE *=/s/@HAVE_RAISE@/1/
 /^HAVE_RANDOM *=/s/@HAVE_RANDOM@/1/
-/^HAVE_RANDOM_R *=/s/@HAVE_RANDOM_R@/0/
-/^HAVE_READLINK *=/s/@HAVE_READLINK@/0/
-/^HAVE_READLINKAT *=/s/@HAVE_READLINKAT@/0/
-/^HAVE_REALPATH *=/s/@HAVE_REALPATH@/0/
-/^HAVE_RENAMEAT *=/s/@HAVE_RENAMEAT@/0/
-/^HAVE_RPMATCH *=/s/@HAVE_RPMATCH@/0/
-/^HAVE_SECURE_GETENV *=/s/@HAVE_SECURE_GETENV@/0/
+/^HAVE_READDIR *=/s/@HAVE_READDIR@/1/
+/^HAVE_REWINDDIR *=/s/@HAVE_REWINDDIR@/1/
 /^HAVE_SETENV *=/s/@HAVE_SETENV@/1/
-/^HAVE_SETHOSTNAME *=/s/@HAVE_SETHOSTNAME@/0/
 /^HAVE_SIGACTION *=/s/@HAVE_SIGACTION@/1/
-/^HAVE_SIGHANDLER_T *=/s/@HAVE_SIGHANDLER_T@/0/
-/^HAVE_SIGINFO_T *=/s/@HAVE_SIGINFO_T@/0/
 /^HAVE_SIGNED_SIG_ATOMIC_T *=/s/@HAVE_SIGNED_SIG_ATOMIC_T@/1/
-/^HAVE_SIGNED_WCHAR_T *=/s/@HAVE_SIGNED_WCHAR_T@/0/
 /^HAVE_SIGNED_WINT_T *=/s/@HAVE_SIGNED_WINT_T@/1/
 /^HAVE_SIGSET_T *=/s/@HAVE_SIGSET_T@/1/
 /^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/
 /^HAVE_STDINT_H *=/s/@HAVE_STDINT_H@/HAVE_STDINT_H/
-/^HAVE_STRPTIME *=/s/@HAVE_STRPTIME@/0/
+/^HAVE_STRPBRK *=/s/@HAVE_STRPBRK@/1/
+/^HAVE_STRSEP *=/s/@HAVE_STRSEP@/1/
 /^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/
 /^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/
 /^HAVE_STRTOULL *=/s/@HAVE_STRTOULL@/1/
-/^HAVE_STRUCT_SIGACTION_SA_SIGACTION 
*=/s/@HAVE_STRUCT_SIGACTION_SA_SIGACTION@/0/
-/^HAVE_STRUCT_RANDOM_DATA *=/s/@HAVE_STRUCT_RANDOM_DATA@/0/
 /^HAVE_STRUCT_TIMEVAL *=/s/@HAVE_STRUCT_TIMEVAL@/1/
 /^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/
-/^HAVE_SYMLINKAT *=/s/@HAVE_SYMLINKAT@/0/
-/^HAVE_SYS_BITYPES_H *=/s/@HAVE_SYS_BITYPES_H@/0/
-/^HAVE_SYS_INTTYPES_H *=/s/@HAVE_SYS_INTTYPES_H@/0/
-/^HAVE_SYS_LOADAVG_H *=/s/@HAVE_SYS_LOADAVG_H@/0/
 /^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/
-/^HAVE_SYS_SELECT_H *=/s/@HAVE_SYS_SELECT_H@/0/
 /^HAVE_SYS_TIME_H *=/s/@HAVE_SYS_TIME_H@/1/
 /^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/
-/^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/
 /^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T *=/s/@HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@/1/
 /^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/
-/^HAVE_UNLINKAT *=/s/@HAVE_UNLINKAT@/0/
-/^HAVE_UNLOCKPT *=/s/@HAVE_UNLOCKPT@/0/
 /^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/
 /^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/
-/^HAVE_UTIMENSAT *=/s/@HAVE_UTIMENSAT@/0/
-/^HAVE_VASPRINTF *=/s/@HAVE_VASPRINTF@/0/
-/^HAVE_VDPRINTF *=/s/@HAVE_VDPRINTF@/0/
 /^HAVE_WCHAR_H *=/s/@HAVE_WCHAR_H@/1/
 /^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/
-/^HAVE_XSERVER *=/s/@HAVE_XSERVER@/0/
 /^HAVE__BOOL *=/s/@HAVE__BOOL@/1/
 /^HAVE__EXIT *=/s/@HAVE__EXIT@/1/
+/^HAVE_[^ =]* *= *@/s/@address@hidden@/0/
 /^INCLUDE_NEXT *=/s/@INCLUDE_NEXT@/include_next/
 /^INCLUDE_NEXT_AS_FIRST_DIRECTIVE *=/s/@address@hidden@/include_next/
 /^LDFLAGS *=/s/@address@hidden@//
@@ -459,6 +267,9 @@
 /^MAKEINFO *=/s/@MAKEINFO@/makeinfo/
 # MKDIR_P lines are edited further below
 /^MKDIR_P *=/s/@MKDIR_P@//
+/^NEXT_AS_FIRST_DIRECTIVE_DIRENT_H *=/s/@address@hidden@/<dirent.h>/
+/^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H *=/s/@address@hidden@//
+/^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H *=/s/@address@hidden@/<fcntl.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@address@hidden@/<getopt.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H *=/s/@address@hidden@/<signal.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_STDARG_H *=/s/@address@hidden@//
@@ -466,12 +277,16 @@
 /^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@address@hidden@/<stdint.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_STDIO_H *=/s/@address@hidden@/<stdio.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@address@hidden@/<stdlib.h>/
+/^NEXT_AS_FIRST_DIRECTIVE_STRING_H *=/s/@address@hidden@/<string.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H *=/s/@address@hidden@//
 /^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H 
*=/address@hidden@address@hidden<sys/stat.h>!
 /^NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H *=/s/@address@hidden@//
 /^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H 
*=/address@hidden@address@hidden<sys/types.h>!
 /^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@address@hidden@/<time.h>/
 /^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@address@hidden@/<unistd.h>/
+/^NEXT_DIRENT_H *=/s/@address@hidden@/<dirent.h>/
+/^NEXT_ERRNO_H *=/s/@address@hidden@//
+/^NEXT_FCNTL_H *=/s/@address@hidden@/<fcntl.h>/
 /^NEXT_GETOPT_H *=/s/@address@hidden@/<getopt.h>/
 /^NEXT_STDARG_H *=/s/@address@hidden@//
 /^NEXT_SIGNAL_H *=/s/@address@hidden@/<signal.h>/
@@ -479,6 +294,7 @@
 /^NEXT_STDIO_H *=/s/@address@hidden@/<stdio.h>/
 /^NEXT_STDINT_H *=/s/@address@hidden@/<stdint.h>/
 /^NEXT_STDLIB_H *=/s/@address@hidden@/<stdlib.h>/
+/^NEXT_STRING_H *=/s/@address@hidden@/<string.h>/
 /^NEXT_SYS_SELECT_H *=/s/@address@hidden@//
 /^NEXT_SYS_STAT_H *=/address@hidden@address@hidden<sys/stat.h>!
 /^NEXT_SYS_TIME_H *=/s/@address@hidden@//
@@ -491,104 +307,14 @@
 /^PTHREAD_H_DEFINES_STRUCT_TIMESPEC *=/s/@address@hidden@/0/
 /^PTRDIFF_T_SUFFIX *=/s/@address@hidden@//
 /^RANLIB *=/s/@address@hidden@/ranlib/
-/^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/0/
-/^REPLACE_CANONICALIZE_FILE_NAME *=/s/@REPLACE_CANONICALIZE_FILE_NAME@/0/
-/^REPLACE_CHOWN *=/s/@REPLACE_CHOWN@/0/
-/^REPLACE_CLOSE *=/s/@REPLACE_CLOSE@/0/
-/^REPLACE_DPRINTF *=/s/@REPLACE_DPRINTF@/0/
-/^REPLACE_DUP *=/s/@REPLACE_DUP@/0/
-/^REPLACE_DUP2 *=/s/@REPLACE_DUP2@/0/
-/^REPLACE_FCHOWNAT *=/s/@REPLACE_FCHOWNAT@/0/
-/^REPLACE_FCLOSE *=/s/@REPLACE_FCLOSE@/0/
-/^REPLACE_FDOPEN *=/s/@REPLACE_FDOPEN@/0/
-/^REPLACE_FFLUSH *=/s/@REPLACE_FFLUSH@/0/
-/^REPLACE_FOPEN *=/s/@REPLACE_FOPEN@/0/
-/^REPLACE_FPRINTF *=/s/@REPLACE_FPRINTF@/0/
-/^REPLACE_FPURGE *=/s/@REPLACE_FPURGE@/0/
-/^REPLACE_FREOPEN *=/s/@REPLACE_FREOPEN@/0/
-/^REPLACE_FSEEK *=/s/@REPLACE_FSEEK@/0/
-/^REPLACE_FSEEKO *=/s/@REPLACE_FSEEKO@/0/
-/^REPLACE_FSTAT *=/s/@REPLACE_FSTAT@/0/
-/^REPLACE_FSTATAT *=/s/@REPLACE_FSTATAT@/0/
-/^REPLACE_FTELL *=/s/@REPLACE_FTELL@/0/
-/^REPLACE_FTELLO *=/s/@REPLACE_FTELLO@/0/
-/^REPLACE_FTRUNCATE *=/s/@REPLACE_FTRUNCATE@/0/
-/^REPLACE_GETCWD *=/s/@REPLACE_GETCWD@/0/
-/^REPLACE_GETDELIM *=/s/@REPLACE_GETDELIM@/0/
-/^REPLACE_GETDOMAINNAME *=/s/@REPLACE_GETDOMAINNAME@/0/
-/^REPLACE_GETGROUPS *=/s/@REPLACE_GETGROUPS@/0/
-/^REPLACE_GETLINE *=/s/@REPLACE_GETLINE@/0/
-/^REPLACE_GETLOGIN_R *=/s/@REPLACE_GETLOGIN_R@/0/
-/^REPLACE_GETPAGESIZE *=/s/@REPLACE_GETPAGESIZE@/0/
-/^REPLACE_GETTIMEOFDAY *=/s/@REPLACE_GETTIMEOFDAY@/0/
-/^REPLACE_ISATTY *=/s/@REPLACE_ISATTY@/0/
-/^REPLACE_LCHOWN *=/s/@REPLACE_LCHOWN@/0/
-/^REPLACE_LINK *=/s/@REPLACE_LINK@/0/
-/^REPLACE_LINKAT *=/s/@REPLACE_LINKAT@/0/
-/^REPLACE_LOCALTIME_R *=/s/@REPLACE_LOCALTIME_R@/0/
-/^REPLACE_LSEEK *=/s/@REPLACE_LSEEK@/0/
-/^REPLACE_LSTAT *=/s/@REPLACE_LSTAT@/0/
-/^REPLACE_MALLOC *=/s/@REPLACE_MALLOC@/0/
-/^REPLACE_MBTOWC *=/s/@REPLACE_MBTOWC@/0/
-/^REPLACE_MKDIR *=/s/@REPLACE_MKDIR@/0/
-/^REPLACE_MKFIFO *=/s/@REPLACE_MKFIFO@/0/
-/^REPLACE_MKNOD *=/s/@REPLACE_MKNOD@/0/
-/^REPLACE_MKSTEMP *=/s/@REPLACE_MKSTEMP@/0/
-/^REPLACE_MKTIME *=/s/@REPLACE_MKTIME@/0/
-/^REPLACE_NANOSLEEP *=/s/@REPLACE_NANOSLEEP@/0/
-/^REPLACE_NULL *=/s/@REPLACE_NULL@/0/
-/^REPLACE_OBSTACK_PRINTF *=/s/@REPLACE_OBSTACK_PRINTF@/0/
-/^REPLACE_PERROR *=/s/@REPLACE_PERROR@/0/
-/^REPLACE_POPEN *=/s/@REPLACE_POPEN@/0/
-/^REPLACE_PREAD *=/s/@REPLACE_PREAD@/0/
-/^REPLACE_PRINTF *=/s/@REPLACE_PRINTF@/0/
-/^REPLACE_PTHREAD_SIGMASK *=/s/@REPLACE_PTHREAD_SIGMASK@/0/
-/^REPLACE_PTSNAME *=/s/@REPLACE_PTSNAME@/0/
-/^REPLACE_PSELECT *=/s/@REPLACE_PSELECT@/0/
-/^REPLACE_PTSNAME *=/s/@REPLACE_PTSNAME@/0/
-/^REPLACE_PTSNAME_R *=/s/@REPLACE_PTSNAME_R@/0/
-/^REPLACE_PUTENV *=/s/@REPLACE_PUTENV@/0/
-/^REPLACE_PWRITE *=/s/@REPLACE_PWRITE@/0/
-/^REPLACE_RANDOM_R *=/s/@REPLACE_RANDOM_R@/0/
-/^REPLACE_READ *=/s/@REPLACE_READ@/0/
-/^REPLACE_RAISE *=/s/@REPLACE_RAISE@/0/
-/^REPLACE_READLINK *=/s/@REPLACE_READLINK@/0/
-/^REPLACE_REALLOC *=/s/@REPLACE_REALLOC@/0/
-/^REPLACE_REALPATH *=/s/@REPLACE_REALPATH@/0/
-/^REPLACE_REMOVE *=/s/@REPLACE_REMOVE@/0/
-/^REPLACE_RENAME *=/s/@REPLACE_RENAME@/0/
-/^REPLACE_RENAMEAT *=/s/@REPLACE_RENAMEAT@/0/
-/^REPLACE_RMDIR *=/s/@REPLACE_RMDIR@/0/
-/^REPLACE_SETENV *=/s/@REPLACE_SETENV@/0/
-/^REPLACE_SLEEP *=/s/@REPLACE_SLEEP@/0/
-/^REPLACE_SNPRINTF *=/s/@REPLACE_SNPRINTF@/0/
-/^REPLACE_SPRINTF *=/s/@REPLACE_SPRINTF@/0/
-/^REPLACE_STAT *=/s/@REPLACE_STAT@/0/
-/^REPLACE_STDIO_READ_FUNCS *=/s/@REPLACE_STDIO_READ_FUNCS@/0/
-/^REPLACE_STDIO_WRITE_FUNCS *=/s/@REPLACE_STDIO_WRITE_FUNCS@/0/
-/^REPLACE_STRTOD *=/s/@REPLACE_STRTOD@/0/
-/^REPLACE_STRTOIMAX *=/s/@REPLACE_STRTOIMAX@/0/
-/^REPLACE_STRUCT_TIMEVAL *=/s/@REPLACE_STRUCT_TIMEVAL@/0/
-/^REPLACE_SYMLINK *=/s/@REPLACE_SYMLINK@/0/
-/^REPLACE_TIMEGM *=/s/@REPLACE_TIMEGM@/0/
-/^REPLACE_TMPFILE *=/s/@REPLACE_TMPFILE@/0/
-/^REPLACE_TTYNAME_R *=/s/@REPLACE_TTYNAME_R@/0/
-/^REPLACE_UNLINK *=/s/@REPLACE_UNLINK@/0/
-/^REPLACE_UNLINKAT *=/s/@REPLACE_UNLINKAT@/0/
-/^REPLACE_UNSETENV *=/s/@REPLACE_UNSETENV@/0/
-/^REPLACE_USLEEP *=/s/@REPLACE_USLEEP@/0/
-/^REPLACE_UTIMENSAT *=/s/@REPLACE_UTIMENSAT@/0/
-/^REPLACE_VASPRINTF *=/s/@REPLACE_VASPRINTF@/0/
-/^REPLACE_VDPRINTF *=/s/@REPLACE_VDPRINTF@/0/
-/^REPLACE_VFPRINTF *=/s/@REPLACE_VFPRINTF@/0/
-/^REPLACE_VPRINTF *=/s/@REPLACE_VPRINTF@/0/
-/^REPLACE_VSNPRINTF *=/s/@REPLACE_VSNPRINTF@/0/
-/^REPLACE_VSPRINTF *=/s/@REPLACE_VSPRINTF@/0/
-/^REPLACE_WCTOMB *=/s/@REPLACE_WCTOMB@/0/
-/^REPLACE_WRITE *=/s/@REPLACE_WRITE@/0/
+# We never want any gnulib replacement functions
+/^REPLACE_[^ =]* *= *@/s/@address@hidden@/0/
 /^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@//
 /^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/
 /^ALLOCA_H *=/s/@address@hidden@/alloca.h/
+/^BYTESWAP_H *=/s/@address@hidden@/byteswap.h/
+/^DIRENT_H *=/s/@address@hidden@//
+/^ERRNO_H *=/s/@address@hidden@//
 /^STDBOOL_H *=/s/@address@hidden@//
 /^STDALIGN_H *=/s/@address@hidden@/stdalign.h/
 /^STDARG_H *=/s/@address@hidden@//
@@ -598,21 +324,32 @@
 /^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@address@hidden@/0/
 /^UNISTD_H_HAVE_WINSOCK2_H *=/s/@address@hidden@/0/
 /^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@address@hidden@/0/
+/^UNDEFINE_STRTOK_R *=/s/@UNDEFINE_STRTOK_R@/0/
 /^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/
 /^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@//
 /^WINDOWS_64_BIT_OFF_T *=/s/@WINDOWS_64_BIT_OFF_T@/0/
 /^WINDOWS_64_BIT_ST_SIZE *=/s/@WINDOWS_64_BIT_ST_SIZE@/0/
-/am__append_1 *=.*gettext\.h/s/@address@hidden@/\#/
+# Tailor lists of files to what we need
+/am__append_[1-9][0-9]* *=.*gettext\.h/s/@address@hidden@/\#/
 /am__append_2 *=.*verify\.h/s/@address@hidden@//
-/^gl_LIBOBJS *=/s/@address@hidden@/getopt.o getopt1.o strftime.o time_r.o 
getloadavg.o pthread_sigmask.o/
-/^BUILT_SOURCES *=/s/ *inttypes\.h//
-/^BUILT_SOURCES *=/,/^[^       ]/{
+/address@hidden@/s/@address@hidden@//
+/^gl_LIBOBJS *=/s/@address@hidden@/getopt.o getopt1.o memrchr.o sig2str.o 
time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o/
+/^am__append_[1-9][0-9]* *=/,/^[^      ]/{
+  s/ *inttypes\.h//
   s| *sys/select\.h||
   s| *sys/time\.h||
 }
 /^am_libgnu_a_OBJECTS *=/,/^[^         ]/{
   s/allocator\.\$(OBJEXT) //
+  s/binary-io\.\$(OBJEXT) //
   s/careadlinkat\.\$(OBJEXT) //
+  s/pipe2\.\$(OBJEXT) //
+  s/acl-errno-valid\.\$(OBJEXT) //
+  s/file-has-acl\.\$(OBJEXT) //
+  s/qcopy-acl\.\$(OBJEXT) //
+  s/qset-acl\.\$(OBJEXT) //
+  s/openat-die\.\$(OBJEXT) //
+  s/save-cwd\.\$(OBJEXT) //
 }
 /^srcdir *=/s/@address@hidden@/./
 /^top_srcdir *=/s/@address@hidden@/../
@@ -623,7 +360,7 @@
 # Delete the recipes we don't want to get in our way.
 /^\$(srcdir)\/Makefile\.in:/,/^[       ][      ]*\$(AUTOMAKE)/d
 /^Makefile:/,/^[       ][      ]*esac/d
-/^\$(top_srcdir)\/configure:/,/^\$(ACLOCAL_M4)/d
+/^\$(top_srcdir)\/configure:/,/^\$(am__aclocal_m4_deps):/d
 /^\$(top_builddir)\/config.status:/,/^$/d
 #
 # Remove the dependencies on $(top_builddir)/config.status
@@ -640,16 +377,22 @@
 # Fix the *-clean rules, to not use a Unixy `test' command.  Empty
 # lists are replaced with a dummy file, to avoid an error message from
 # "rm -f" with no arguments.
+/^CLEANFILES *= *$/c\
+CLEANFILES = xyzzy
 /^CONFIG_CLEAN_FILES *= *$/c\
 CONFIG_CLEAN_FILES = xyzzy
 /^CONFIG_CLEAN_VPATH_FILES *= *$/c\
 CONFIG_CLEAN_VPATH_FILES = xyzzy
 s/^    -*test -z.*|| rm/        -rm/
-s/@echo /@djecho/
+s/@echo /@djecho /
 #
 # Fix the recipes for header files
 s/address@hidden@//
 s/address@hidden@/\#/
+s/address@hidden@//
+s/address@hidden@/\#/
+s/address@hidden@/\#/
+s/address@hidden@//
 s/address@hidden@//
 s/address@hidden@/\#/
 s/address@hidden@/\#/
@@ -688,7 +431,16 @@
 /^unistd\.h:/,/^       [       ]*mv /{
   s/'\; \\ *$/' >> address@hidden/
 }
+/^string\.h:/,/^       [       ]*mv /{
+  s/'\; \\ *$/' >> address@hidden/
+  /< \$(srcdir)\/string\.in-h >>/d
+}
 s!\$(MKDIR_P)[         ][      ]*sys!command.com /c "if not exist sys\\stat.h 
md sys"!
 /^     @for dir in/,/^[^        ]/c\
        -rm -rf $(MOSTLYCLEANDIRS)
 /^      *-test . /d
+#
+# Fix the Automake verbosity stuff
+/^      *\$(AM_V_at)/s/\$(AM_V_at)//
+/^      *\$(AM_V_AR)/s/\$(AM_V_AR)//
+/^      *\$(AM_V_CC)/s/\$(AM_V_CC)//

=== modified file 'msdos/sedlisp.inp'
--- a/msdos/sedlisp.inp 2014-01-01 07:43:34 +0000
+++ b/msdos/sedlisp.inp 2014-04-16 13:27:28 +0000
@@ -19,8 +19,9 @@
 /^SHELL *=/i\
 export FNCASE=y
 
+/^SHELL *=/s|@SHELL@|/bin/sh|
 /^lisp *=/s|\$(srcdir)|$(CURDIR)|
 /^srcdir *=/s|@srcdir@|.|
 /^top_srcdir *=/s|@top_srcdir@|./..|
-/^abs_top_builddir *=/s|@abs_top_builddir@|$(CURDIR)/..|
+/^XARGS_LIMIT *=/s|@XARGS_LIMIT@||
 

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-04-16 15:16:35 +0000
+++ b/src/ChangeLog     2014-04-16 19:43:46 +0000
@@ -1,3 +1,100 @@
+2014-04-16  Stefan Monnier  <address@hidden>
+
+       * window.c (save_window_save): Lookup window_point_insertion_type in
+       the right buffer (bug#15457).
+       (Qwindow_point_insertion_type): New var.
+       (syms_of_window): Initialize it.
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * unexcoff.c [MSDOS]: Include libc/atexit.h.
+       (copy_text_and_data): Zero out the atexit chain pointer before
+       dumping Emacs.
+
+       * termhooks.h (encode_terminal_code): Update prototype.
+
+       * term.c (encode_terminal_code) [DOS_NT]: Make it externally
+       visible for all DOS_NT ports, not just WINDOWSNT.
+       (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
+
+       * sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
+       unless it is defined.
+       (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
+
+       * process.c (close_on_exec, accept4, process_socket): Move into
+       the "ifdef subprocesses" part.
+       (catch_child_signal): Condition by "ifdef subprocesses".
+       (syms_of_process) <Qinternal_default_process_sentinel>
+       <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
+
+       * msdos.h: Add prototypes for new functions.
+       (EINPROGRESS): Define.
+       (O_CLOEXEC): Define to zero.
+
+       * msdos.c (check_window_system): Remove unnecessary an
+       incompatible duplicate function.
+       (sys_opendir, readlinkat, faccessat, fstatat, unsetenv):
+       New functions in support of new functionality.
+
+       * menu.c (single_menu_item): Add visual indication  of submenu
+       also for menus on MSDOS frames.
+       (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
+
+       * lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
+       when async subprocesses aren't supported.
+
+       * font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
+
+       * emacs.c (close_output_streams): Zero out errno before calling
+       close_stream.
+
+       * dired.c [MSDOS]: Include msdos.h.
+
+       * conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
+       (DATA_START) [MSDOS]: Define.
+       (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
+
+       * callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
+       Ifdef away for MSDOS.
+       (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
+       (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
+       for MSDOS.
+       (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
+       Use temporary file template that is compatible with mkostemp.
+       Move vfork-related portions under #ifndef MSDOS.
+       (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
+
+2014-04-16  Stefan Monnier  <address@hidden>
+
+       * buffer.c (Foverlays_at): Add argument `sorted'.
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * insdel.c (invalidate_buffer_caches): When deleting or replacing
+       text, invalidate the bidi_paragraph_cache upto and including the
+       preceding newline.
+
+2014-04-16  Paul Eggert  <address@hidden>
+
+       Port to IRIX 6.5 (Bug#9684).
+       * conf_post.h (INET6) [IRIX6_5]: Define.
+       (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
+       * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
+
+2014-04-16  Eli Zaretskii  <address@hidden>
+
+       * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
+       before passing it to system APIs.
+
+2014-04-16  Stefan Monnier  <address@hidden>
+
+       * bytecode.c (exec_byte_code): Rework the volatiles.  Most importantly,
+       make sure stack.byte_string_start is not de-adjusted by pushhandler.
+
+2014-04-16  Paul Eggert  <address@hidden>
+
+       * keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
+
 2014-04-15  Paul Eggert  <address@hidden>
 
        Remove DATA_SEG_BITS.
@@ -280,7 +377,7 @@
        (adjust_after_replace):
        (replace_range): Pass value for new record_markers arg to
        delete_record.
-       * undo.c (record_marker_adjustment): Renamed to
+       * undo.c (record_marker_adjustment): Rename to
        record_marker_adjustments and made static.
        (record_delete): Check record_markers arg and call
        record_marker_adjustments.

=== modified file 'src/alloc.c'
--- a/src/alloc.c       2014-04-16 15:16:35 +0000
+++ b/src/alloc.c       2014-04-16 19:43:46 +0000
@@ -2685,7 +2685,9 @@
  ***********************************************************************/
 
 /* Sometimes a vector's contents are merely a pointer internally used
-   in vector allocation code.  Usually you don't want to touch this.  */
+   in vector allocation code.  On the rare platforms where a null
+   pointer cannot be tagged, represent it with a Lisp 0.
+   Usually you don't want to touch this.  */
 
 static struct Lisp_Vector *
 next_vector (struct Lisp_Vector *v)

=== modified file 'src/buffer.c'
--- a/src/buffer.c      2014-03-26 15:57:13 +0000
+++ b/src/buffer.c      2014-04-16 19:43:46 +0000
@@ -4163,9 +4163,10 @@
 }
 
 
-DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 1, 0,
-       doc: /* Return a list of the overlays that contain the character at 
POS.  */)
-  (Lisp_Object pos)
+DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 2, 0,
+       doc: /* Return a list of the overlays that contain the character at POS.
+If SORTED is non-nil, then sort them by decreasing priority.  */)
+  (Lisp_Object pos, Lisp_Object sorted)
 {
   ptrdiff_t len, noverlays;
   Lisp_Object *overlay_vec;
@@ -4185,6 +4186,10 @@
   noverlays = overlays_at (XINT (pos), 1, &overlay_vec, &len,
                           NULL, NULL, 0);
 
+  if (!NILP (sorted))
+    noverlays = sort_overlays (overlay_vec, noverlays,
+                              WINDOWP (sorted) ? XWINDOW (sorted) : NULL);
+
   /* Make a list of them all.  */
   result = Flist (noverlays, overlay_vec);
 

=== modified file 'src/bytecode.c'
--- a/src/bytecode.c    2014-01-01 07:43:34 +0000
+++ b/src/bytecode.c    2014-04-13 02:51:11 +0000
@@ -501,7 +501,6 @@
                Lisp_Object args_template, ptrdiff_t nargs, Lisp_Object *args)
 {
   ptrdiff_t count = SPECPDL_INDEX ();
-  ptrdiff_t volatile count_volatile;
 #ifdef BYTE_CODE_METER
   int volatile this_op = 0;
   int prev_op;
@@ -509,14 +508,12 @@
   int op;
   /* Lisp_Object v1, v2; */
   Lisp_Object *vectorp;
-  Lisp_Object *volatile vectorp_volatile;
 #ifdef BYTE_CODE_SAFE
-  ptrdiff_t volatile const_length;
-  Lisp_Object *volatile stacke;
-  ptrdiff_t volatile bytestr_length;
+  ptrdiff_t const_length;
+  Lisp_Object *stacke;
+  ptrdiff_t bytestr_length;
 #endif
   struct byte_stack stack;
-  struct byte_stack volatile stack_volatile;
   Lisp_Object *top;
   Lisp_Object result;
   enum handlertype type;
@@ -1122,9 +1119,6 @@
            PUSH_HANDLER (c, tag, type);
            c->bytecode_dest = dest;
            c->bytecode_top = top;
-           count_volatile = count;
-           stack_volatile = stack;
-           vectorp_volatile = vectorp;
 
            if (sys_setjmp (c->jmp))
              {
@@ -1135,12 +1129,11 @@
                handlerlist = c->next;
                PUSH (c->val);
                CHECK_RANGE (dest);
-               stack = stack_volatile;
+               /* Might have been re-set by longjmp!  */
+               stack.byte_string_start = SDATA (stack.byte_string);
                stack.pc = stack.byte_string_start + dest;
              }
 
-           count = count_volatile;
-           vectorp = vectorp_volatile;
            NEXT;
          }
 

=== modified file 'src/callproc.c'
--- a/src/callproc.c    2014-03-25 14:43:26 +0000
+++ b/src/callproc.c    2014-04-16 19:43:46 +0000
@@ -105,6 +105,8 @@
 
 static Lisp_Object call_process (ptrdiff_t, Lisp_Object *, int, ptrdiff_t);
 
+
+#ifndef MSDOS
 /* Block SIGCHLD.  */
 
 void
@@ -124,6 +126,8 @@
   pthread_sigmask (SIG_SETMASK, oldset, 0);
 }
 
+#endif /* !MSDOS */
+
 /* Return the current buffer's working directory, or the home
    directory if it's unreachable, as a string suitable for a system call.
    Signal an error if the result would not be an accessible directory.  */
@@ -162,6 +166,7 @@
 void
 record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
 {
+#ifndef MSDOS
   sigset_t oldset;
   block_child_signal (&oldset);
 
@@ -173,6 +178,7 @@
     }
 
   unblock_child_signal (&oldset);
+#endif /* !MSDOS */
 }
 
 /* Clean up files, file descriptors and processes created by Fcall_process.  */
@@ -212,6 +218,7 @@
 {
   Fset_buffer (buffer);
 
+#ifndef MSDOS
   if (synch_process_pid)
     {
       kill (-synch_process_pid, SIGINT);
@@ -223,6 +230,7 @@
       immediate_quit = 0;
       message1 ("Waiting for process to die...done");
     }
+#endif /* !MSDOS */
 }
 
 #ifdef DOS_NT
@@ -520,10 +528,10 @@
       char const *outf = tmpdir ? tmpdir : "";
       tempfile = alloca (strlen (outf) + 20);
       strcpy (tempfile, outf);
-      dostounix_filename (tempfile, 0);
+      dostounix_filename (tempfile);
       if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/')
        strcat (tempfile, "/");
-      strcat (tempfile, "detmp.XXX");
+      strcat (tempfile, "emXXXXXX");
       mktemp (tempfile);
       if (!*tempfile)
        report_file_error ("Opening process output file", Qnil);
@@ -712,8 +720,6 @@
   unblock_child_signal (&oldset);
   unblock_input ();
 
-#endif /* not MSDOS */
-
   if (pid < 0)
     report_file_errno ("Doing vfork", Qnil, child_errno);
 
@@ -728,6 +734,8 @@
   emacs_close (filefd);
   clear_unwind_protect (count - 1);
 
+#endif /* not MSDOS */
+
   if (INTEGERP (buffer))
     return unbind_to (count, Qnil);
 
@@ -1674,10 +1682,8 @@
 {
 #ifndef DOS_NT
   Vtemp_file_name_pattern = build_string ("emacsXXXXXX");
-#elif defined (WINDOWSNT)
+#else  /* DOS_NT */
   Vtemp_file_name_pattern = build_string ("emXXXXXX");
-#else
-  Vtemp_file_name_pattern = build_string ("detmp.XXX");
 #endif
   staticpro (&Vtemp_file_name_pattern);
 

=== modified file 'src/conf_post.h'
--- a/src/conf_post.h   2014-04-14 05:23:31 +0000
+++ b/src/conf_post.h   2014-04-16 19:43:46 +0000
@@ -95,7 +95,8 @@
 #ifdef emacs
 char *_getpty();
 #endif
-
+#define INET6 /* Needed for struct sockaddr_in6.  */
+#undef HAVE_GETADDRINFO /* IRIX has getaddrinfo but not struct addrinfo.  */
 #endif /* IRIX6_5 */
 
 #ifdef MSDOS
@@ -116,6 +117,11 @@
 #else
 # define lstat stat
 #endif
+
+/* We must intercept 'opendir' calls to stash away the directory name,
+   so we could reuse it in realinkat, see msdos.c.  */
+#define opendir sys_opendir
+
 /* The "portable" definition of _GL_INLINE on config.h does not work
    with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c,
    although lib/execinfo.h is included and the inline functions there
@@ -127,6 +133,9 @@
 
 #define emacs_raise(sig) msdos_fatal_signal (sig)
 
+/* DATA_START is needed by vm-limit.c and unexcoff.c. */
+#define DATA_START (&etext + 1)
+
 /* Define one of these for easier conditionals.  */
 #ifdef HAVE_X_WINDOWS
 /* We need a little extra space, see ../../lisp/loadup.el and the
@@ -143,7 +152,7 @@
    directory tree).  Given the unknown policy of different DPMI
    hosts regarding loading of untouched pages, I'm not going to risk
    enlarging Emacs footprint by another 100+ KBytes.  */
-#define SYSTEM_PURESIZE_EXTRA (-170000+65000)
+#define SYSTEM_PURESIZE_EXTRA (-170000+90000)
 #endif
 #endif  /* MSDOS */
 

=== modified file 'src/data.c'
--- a/src/data.c        2014-04-03 00:18:08 +0000
+++ b/src/data.c        2014-04-16 19:43:46 +0000
@@ -2987,7 +2987,7 @@
 /* Info about unsigned long long, falling back on unsigned long
    if unsigned long long is not available.  */
 
-#if HAVE_UNSIGNED_LONG_LONG_INT
+#if HAVE_UNSIGNED_LONG_LONG_INT && defined ULLONG_MAX
 enum { BITS_PER_ULL = CHAR_BIT * sizeof (unsigned long long) };
 # define ULL_MAX ULLONG_MAX
 #else

=== modified file 'src/dired.c'
--- a/src/dired.c       2014-04-03 20:46:04 +0000
+++ b/src/dired.c       2014-04-16 19:43:46 +0000
@@ -47,6 +47,10 @@
 #include "regex.h"
 #include "blockinput.h"
 
+#ifdef MSDOS
+#include "msdos.h"     /* for fstatat */
+#endif
+
 static Lisp_Object Qdirectory_files;
 static Lisp_Object Qdirectory_files_and_attributes;
 static Lisp_Object Qfile_name_completion;

=== modified file 'src/emacs.c'
--- a/src/emacs.c       2014-04-05 19:30:36 +0000
+++ b/src/emacs.c       2014-04-16 19:43:46 +0000
@@ -690,6 +690,11 @@
 static void
 close_output_streams (void)
 {
+  int err = errno;
+
+  /* close_stream checks errno, so make sure it doesn't inherit some
+     random value.  */
+  errno = 0;
   if (close_stream (stdout) != 0)
     {
       emacs_perror ("Write error to standard output");
@@ -698,6 +703,8 @@
 
    if (close_stream (stderr) != 0)
      _exit (EXIT_FAILURE);
+
+   errno = err;
 }
 
 /* ARGSUSED */

=== modified file 'src/font.h'
--- a/src/font.h        2014-01-01 07:43:34 +0000
+++ b/src/font.h        2014-04-16 13:27:28 +0000
@@ -236,7 +236,11 @@
 #define FONT_SET_STYLE(font, prop, val)        \
   ASET ((font), prop, make_number (font_style_to_value (prop, val, true)))
 
+#ifndef MSDOS
 #define FONT_WIDTH(f) ((f)->max_width)
+#else
+#define FONT_WIDTH(f) 1
+#endif
 #define FONT_HEIGHT(f) ((f)->height)
 #define FONT_BASE(f) ((f)->ascent)
 #define FONT_DESCENT(f) ((f)->descent)

=== modified file 'src/insdel.c'
--- a/src/insdel.c      2014-04-09 01:48:07 +0000
+++ b/src/insdel.c      2014-04-16 19:43:46 +0000
@@ -1858,9 +1858,35 @@
                              buf->width_run_cache,
                              start - BUF_BEG (buf), BUF_Z (buf) - end);
   if (buf->bidi_paragraph_cache)
-    invalidate_region_cache (buf,
-                             buf->bidi_paragraph_cache,
-                             start - BUF_BEG (buf), BUF_Z (buf) - end);
+    {
+      if (start != end
+         && start > BUF_BEG (buf))
+       {
+         /* If we are deleting or replacing characters, we could
+            create a paragraph start, because all of the characters
+            from START to the beginning of START's line are
+            whitespace.  Therefore, we must extend the region to be
+            invalidated up to the newline before START.  */
+         ptrdiff_t line_beg = start;
+         ptrdiff_t start_byte = buf_charpos_to_bytepos (buf, start);
+
+         if (BUF_FETCH_BYTE (buf, start_byte - 1) != '\n')
+           {
+             struct buffer *old = current_buffer;
+
+             set_buffer_internal (buf);
+
+             line_beg = find_newline_no_quit (start, start_byte, -1,
+                                              &start_byte);
+             set_buffer_internal (old);
+           }
+         if (line_beg > BUF_BEG (buf))
+           start = line_beg - 1;
+       }
+      invalidate_region_cache (buf,
+                              buf->bidi_paragraph_cache,
+                              start - BUF_BEG (buf), BUF_Z (buf) - end);
+    }
 }
 
 /* These macros work with an argument named `preserve_ptr'

=== modified file 'src/keyboard.c'
--- a/src/keyboard.c    2014-04-11 06:43:20 +0000
+++ b/src/keyboard.c    2014-04-16 19:43:46 +0000
@@ -10084,16 +10084,13 @@
   if (!NILP (file))
     {
       int fd;
+      Lisp_Object encfile;
+
       file = Fexpand_file_name (file, Qnil);
-      /* This isn't robust, since eg file could be created after we
-         check whether it exists but before emacs_open.
-         Feel free to improve it, but this is not critical.  (Bug#17187)  */
-      if (! NILP (Ffile_exists_p (file)))
-        {
-          if (chmod (SSDATA (file), 0600) < 0)
-            report_file_error ("Doing chmod", file);
-        }
-      fd = emacs_open (SSDATA (file), O_WRONLY | O_CREAT | O_TRUNC, 0600);
+      encfile = ENCODE_FILE (file);
+      fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
+      if (fd < 0 && errno == EEXIST && unlink (SSDATA (encfile)) == 0)
+       fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
       dribble = fd < 0 ? 0 : fdopen (fd, "w");
       if (dribble == 0)
        report_file_error ("Opening dribble", file);

=== modified file 'src/lisp.h'
--- a/src/lisp.h        2014-04-16 15:16:35 +0000
+++ b/src/lisp.h        2014-04-16 19:43:46 +0000
@@ -2527,11 +2527,13 @@
 {
   CHECK_TYPE (WINDOWP (x), Qwindowp, x);
 }
+#ifdef subprocesses
 INLINE void
 CHECK_PROCESS (Lisp_Object x)
 {
   CHECK_TYPE (PROCESSP (x), Qprocessp, x);
 }
+#endif
 INLINE void
 CHECK_NATNUM (Lisp_Object x)
 {
@@ -4136,7 +4138,6 @@
 
 /* Defined in process.c.  */
 extern Lisp_Object QCtype, Qlocal;
-extern Lisp_Object Qprocessp;
 extern void kill_buffer_processes (Lisp_Object);
 extern bool wait_reading_process_output (intmax_t, int, int, bool,
                                         Lisp_Object,

=== modified file 'src/menu.c'
--- a/src/menu.c        2014-02-04 19:24:09 +0000
+++ b/src/menu.c        2014-04-16 13:27:28 +0000
@@ -415,7 +415,8 @@
        item_string = concat2 (prefix, item_string);
   }
 
-  if (FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
+  if ((FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
+       || FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame)))
       && !NILP (map))
     /* Indicate visually that this is a submenu.  */
     item_string = concat2 (item_string, build_string (" >"));
@@ -1442,6 +1443,7 @@
                            keymaps, title, &error_name);
   else
 #endif
+#ifndef MSDOS
   if (FRAME_TERMCAP_P (f))
     {
       ptrdiff_t count1 = SPECPDL_INDEX ();
@@ -1453,6 +1455,7 @@
                                 kbd_menu_navigation, &error_name);
       unbind_to (count1, Qnil);
     }
+#endif
 
 #ifdef HAVE_NS
   unbind_to (specpdl_count, Qnil);

=== modified file 'src/msdos.c'
--- a/src/msdos.c       2014-04-03 20:46:04 +0000
+++ b/src/msdos.c       2014-04-16 19:43:46 +0000
@@ -50,6 +50,8 @@
 #include <unistd.h>     /* for chdir, dup, dup2, etc. */
 #include <dir.h>        /* for getdisk */
 #pragma pack(0)                 /* dir.h does a pack(4), which isn't GCC's 
default */
+#undef opendir
+#include <dirent.h>     /* for opendir */
 #include <fcntl.h>
 #include <io.h>                 /* for setmode */
 #include <dpmi.h>       /* for __dpmi_xxx stuff */
@@ -1883,18 +1885,6 @@
 #endif
 }
 
-#ifndef HAVE_X_WINDOWS
-
-/* We are not X, but we can emulate it well enough for our needs... */
-void
-check_window_system (void)
-{
-  if (! FRAME_MSDOS_P (SELECTED_FRAME ()))
-    error ("Not running under a window system");
-}
-
-#endif
-
 
 /* ----------------------- Keyboard control ----------------------
  *
@@ -3875,6 +3865,9 @@
 int setpriority (int x, int y, int z) { return 0; }
 pid_t setsid (void) { return 0; }
 
+
+/* Gnulib support and emulation.  */
+
 #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
 ssize_t
 readlink (const char *name, char *dummy1, size_t dummy2)
@@ -3886,6 +3879,38 @@
 }
 #endif
 
+/* dir_pathname is set by sys_opendir and used in readlinkat and in
+   fstatat, when they get a special FD of zero, which means use the
+   last directory opened by opendir.  */
+static char dir_pathname[MAXPATHLEN];
+DIR *
+sys_opendir (const char *dirname)
+{
+  _fixpath (dirname, dir_pathname);
+  return opendir (dirname);
+}
+
+ssize_t
+readlinkat (int fd, char const *name, char *buffer, size_t buffer_size)
+{
+  /* Rely on a hack: an open directory is modeled as file descriptor 0,
+     as in fstatat.  FIXME: Add proper support for readlinkat.  */
+  char fullname[MAXPATHLEN];
+
+  if (fd != AT_FDCWD)
+    {
+      if (strlen (dir_pathname) + strlen (name) + 1 >= MAXPATHLEN)
+       {
+         errno = ENAMETOOLONG;
+         return -1;
+       }
+      sprintf (fullname, "%s/%s", dir_pathname, name);
+      name = fullname;
+    }
+
+  return readlink (name, buffer, buffer_size);
+}
+
 char *
 careadlinkat (int fd, char const *filename,
               char *buffer, size_t buffer_size,
@@ -3913,6 +3938,82 @@
   return buffer;
 }
 
+/* Emulate faccessat(2).  */
+int
+faccessat (int dirfd, const char * path, int mode, int flags)
+{
+  /* We silently ignore FLAGS.  */
+  flags = flags;
+
+  if (dirfd != AT_FDCWD
+      && !(IS_DIRECTORY_SEP (path[0])
+          || IS_DEVICE_SEP (path[1])))
+    {
+      errno = EBADF;
+      return -1;
+    }
+
+  return access (path, mode);
+}
+
+/* Emulate fstatat.  */
+int
+fstatat (int fd, char const *name, struct stat *st, int flags)
+{
+  /* Rely on a hack: an open directory is modeled as file descriptor 0.
+     This is good enough for the current usage in Emacs, but is fragile.
+
+     FIXME: Add proper support for fdopendir, fstatat, readlinkat.
+     Gnulib does this and can serve as a model.  */
+  char fullname[MAXPATHLEN];
+
+  flags = flags;
+
+  if (fd != AT_FDCWD)
+    {
+      char lastc = dir_pathname[strlen (dir_pathname) - 1];
+
+      if (strlen (dir_pathname) + strlen (name) + IS_DIRECTORY_SEP (lastc)
+         >= MAXPATHLEN)
+       {
+         errno = ENAMETOOLONG;
+         return -1;
+       }
+
+      sprintf (fullname, "%s%s%s",
+              dir_pathname, IS_DIRECTORY_SEP (lastc) ? "" : "/", name);
+      name = fullname;
+    }
+
+#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3
+  return (flags & AT_SYMLINK_NOFOLLOW) ? lstat (name, st) : stat (name, st);
+#else
+  return stat (name, st);
+#endif
+}
+
+#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
+/* Emulate the Posix unsetenv.  DJGPP v2.04 has this in the library.  */
+int
+unsetenv (const char *name)
+{
+  char *var;
+  size_t name_len;
+  int retval;
+
+  if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  /* DJGPP's 'putenv' deletes the entry if it doesn't include '='.  */
+  putenv (name);
+
+  return 0;
+}
+#endif
+
 
 #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2
 
@@ -4038,7 +4139,7 @@
 /* We don't have to call timer_check here
    because wait_reading_process_output takes care of that.  */
 int
-sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
+sys_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds,
            struct timespec *timeout, void *ignored)
 {
   int check_input;

=== modified file 'src/msdos.h'
--- a/src/msdos.h       2014-01-01 07:43:34 +0000
+++ b/src/msdos.h       2014-04-16 13:27:28 +0000
@@ -41,9 +41,25 @@
 void mouse_off (void);
 void mouse_moveto (int, int);
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
 #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
 int readlink (const char *, char *, size_t);
 #endif
+ssize_t readlinkat (int, const char *, char *, size_t);
+int fstatat (int, char const *, struct stat *, int);
+int unsetenv (const char *);
+
+/* Constants.  */
+#define EINPROGRESS 112
+/* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we
+   need to redirect standard handles for subprocesses using temporary
+   files created by mkostemp, see callproc.c.  */
+#ifdef O_CLOEXEC
+# undef O_CLOEXEC
+#endif
+#define O_CLOEXEC 0
 
 
 #ifndef HAVE_X_WINDOWS
@@ -83,7 +99,6 @@
 #define XMenuSetAEQ (void)
 #define XMenuSetFreeze (void)
 #define XMenuRecompute (void)
-#define FONT_WIDTH(foo) 1
 #define XM_FAILURE -1
 #define XM_SUCCESS 1
 #define XM_NO_SELECT 2

=== modified file 'src/process.c'
--- a/src/process.c     2014-04-05 19:30:36 +0000
+++ b/src/process.c     2014-04-16 19:43:46 +0000
@@ -134,37 +134,6 @@
                       struct timespec *, void *);
 #endif
 
-#ifndef SOCK_CLOEXEC
-# define SOCK_CLOEXEC 0
-#endif
-
-#ifndef HAVE_ACCEPT4
-
-/* Emulate GNU/Linux accept4 and socket well enough for this module.  */
-
-static int
-close_on_exec (int fd)
-{
-  if (0 <= fd)
-    fcntl (fd, F_SETFD, FD_CLOEXEC);
-  return fd;
-}
-
-static int
-accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)
-{
-  return close_on_exec (accept (sockfd, addr, addrlen));
-}
-
-static int
-process_socket (int domain, int type, int protocol)
-{
-  return close_on_exec (socket (domain, type, protocol));
-}
-# undef socket
-# define socket(domain, type, protocol) process_socket (domain, type, protocol)
-#endif
-
 /* Work around GCC 4.7.0 bug with strict overflow checking; see
    <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904>.
    These lines can be removed once the GCC bug is fixed.  */
@@ -188,6 +157,37 @@
 
 #ifdef subprocesses
 
+#ifndef SOCK_CLOEXEC
+# define SOCK_CLOEXEC 0
+#endif
+
+#ifndef HAVE_ACCEPT4
+
+/* Emulate GNU/Linux accept4 and socket well enough for this module.  */
+
+static int
+close_on_exec (int fd)
+{
+  if (0 <= fd)
+    fcntl (fd, F_SETFD, FD_CLOEXEC);
+  return fd;
+}
+
+static int
+accept4 (int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags)
+{
+  return close_on_exec (accept (sockfd, addr, addrlen));
+}
+
+static int
+process_socket (int domain, int type, int protocol)
+{
+  return close_on_exec (socket (domain, type, protocol));
+}
+# undef socket
+# define socket(domain, type, protocol) process_socket (domain, type, protocol)
+#endif
+
 Lisp_Object Qprocessp;
 static Lisp_Object Qrun, Qstop, Qsignal;
 static Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
@@ -7059,6 +7059,7 @@
   return system_process_attributes (pid);
 }
 
+#ifdef subprocesses
 /* Arrange to catch SIGCHLD if this hasn't already been arranged.
    Invoke this after init_process_emacs, and after glib and/or GNUstep
    futz with the SIGCHLD handler, but before Emacs forks any children.
@@ -7084,6 +7085,7 @@
         : old_action.sa_handler);
   unblock_child_signal (&oldset);
 }
+#endif /* subprocesses */
 
 
 /* This is not called "init_process" because that is the name of a
@@ -7290,10 +7292,12 @@
   DEFSYM (Qcutime, "cutime");
   DEFSYM (Qcstime, "cstime");
   DEFSYM (Qctime, "ctime");
+#ifdef subprocesses
   DEFSYM (Qinternal_default_process_sentinel,
          "internal-default-process-sentinel");
   DEFSYM (Qinternal_default_process_filter,
          "internal-default-process-filter");
+#endif
   DEFSYM (Qpri, "pri");
   DEFSYM (Qnice, "nice");
   DEFSYM (Qthcount, "thcount");

=== modified file 'src/sysdep.c'
--- a/src/sysdep.c      2014-04-05 19:30:36 +0000
+++ b/src/sysdep.c      2014-04-16 19:43:46 +0000
@@ -1509,7 +1509,9 @@
   /* When handling a signal, block nonfatal system signals that are caught
      by Emacs.  This makes race conditions less likely.  */
   sigaddset (&action->sa_mask, SIGALRM);
+#ifdef SIGCHLD
   sigaddset (&action->sa_mask, SIGCHLD);
+#endif
 #ifdef SIGDANGER
   sigaddset (&action->sa_mask, SIGDANGER);
 #endif
@@ -1714,7 +1716,9 @@
 # ifdef SIGBUS
       sys_siglist[SIGBUS] = "Bus error";
 # endif
+# ifdef SIGCHLD
       sys_siglist[SIGCHLD] = "Child status changed";
+# endif
 # ifdef SIGCONT
       sys_siglist[SIGCONT] = "Continued";
 # endif
@@ -2185,6 +2189,9 @@
 int
 emacs_pipe (int fd[2])
 {
+#ifdef MSDOS
+  return pipe (fd);
+#else  /* !MSDOS */
   int result = pipe2 (fd, O_CLOEXEC);
   if (! O_CLOEXEC && result == 0)
     {
@@ -2192,6 +2199,7 @@
       fcntl (fd[1], F_SETFD, FD_CLOEXEC);
     }
   return result;
+#endif /* !MSDOS */
 }
 
 /* Approximate posix_close and POSIX_CLOSE_RESTART well enough for Emacs.

=== modified file 'src/term.c'
--- a/src/term.c        2014-04-03 20:46:04 +0000
+++ b/src/term.c        2014-04-16 19:43:46 +0000
@@ -500,7 +500,7 @@
    Set CODING->produced to the byte-length of the resulting byte
    sequence, and return a pointer to that byte sequence.  */
 
-#ifndef WINDOWSNT
+#ifndef DOS_NT
 static
 #endif
 unsigned char *
@@ -4562,6 +4562,7 @@
   encode_terminal_src = NULL;
   encode_terminal_dst = NULL;
 
+#ifndef MSDOS
   DEFSYM (Qtty_menu_next_item, "tty-menu-next-item");
   DEFSYM (Qtty_menu_prev_item, "tty-menu-prev-item");
   DEFSYM (Qtty_menu_next_menu, "tty-menu-next-menu");
@@ -4571,4 +4572,5 @@
   DEFSYM (Qtty_menu_exit, "tty-menu-exit");
   DEFSYM (Qtty_menu_mouse_movement, "tty-menu-mouse-movement");
   DEFSYM (Qtty_menu_navigation_map, "tty-menu-navigation-map");
+#endif
 }

=== modified file 'src/termhooks.h'
--- a/src/termhooks.h   2014-01-01 07:43:34 +0000
+++ b/src/termhooks.h   2014-04-16 13:27:28 +0000
@@ -643,7 +643,7 @@
 /* The initial terminal device, created by initial_term_init.  */
 extern struct terminal *initial_terminal;
 
-#ifdef WINDOWSNT
+#ifdef DOS_NT
 extern unsigned char *encode_terminal_code (struct glyph *, int,
                                            struct coding_system *);
 #endif

=== modified file 'src/unexcoff.c'
--- a/src/unexcoff.c    2014-04-05 19:30:36 +0000
+++ b/src/unexcoff.c    2014-04-16 19:43:46 +0000
@@ -65,6 +65,8 @@
 #include <crt0.h>   /* for _crt0_startup_flags and its bits */
 #include <sys/exceptn.h>
 static int save_djgpp_startup_flags;
+#include <libc/atexit.h>
+static struct __atexit *save_atexit_ptr;
 #define filehdr external_filehdr
 #define scnhdr external_scnhdr
 #define syment external_syment
@@ -82,7 +84,7 @@
   unsigned long                text_start;/* base of text used for this file */
   unsigned long                data_start;/* base of data used for this file */
 };
-#endif /* not MSDOS */
+#endif /* MSDOS */
 #else  /* not HAVE_COFF_H */
 #include <a.out.h>
 #endif /* not HAVE_COFF_H */
@@ -368,6 +370,12 @@
      and which might change the way that dumped Emacs works.  */
   save_djgpp_startup_flags = _crt0_startup_flags;
   _crt0_startup_flags &= ~(_CRT0_FLAG_NO_LFN | _CRT0_FLAG_NEARPTR);
+
+  /* Zero out the 'atexit' chain in the dumped executable, to avoid
+     calling the atexit functions twice.  (emacs.c:main installs an
+     atexit function.)  */
+  save_atexit_ptr = __atexit_ptr;
+  __atexit_ptr = NULL;
 #endif
 
   lseek (new, (long) text_scnptr, 0);
@@ -386,6 +394,9 @@
 
   /* Restore the startup flags.  */
   _crt0_startup_flags = save_djgpp_startup_flags;
+
+  /* Restore the atexit chain.  */
+  __atexit_ptr = save_atexit_ptr;
 #endif
 
 

=== modified file 'src/w32term.c'
--- a/src/w32term.c     2014-03-31 07:13:58 +0000
+++ b/src/w32term.c     2014-04-16 19:43:46 +0000
@@ -4723,7 +4723,7 @@
                           here since Windows sends a WM_MOVE message
                           BEFORE telling us the Window is minimized
                           when the Window is iconified, with 3000,3000
-                          as the co-ords. */
+                          as the co-ords.  */
                        x_real_positions (f, &f->left_pos, &f->top_pos);
 
                        inev.kind = DEICONIFY_EVENT;

=== modified file 'src/window.c'
--- a/src/window.c      2014-03-07 15:11:12 +0000
+++ b/src/window.c      2014-04-16 14:00:39 +0000
@@ -55,6 +55,7 @@
 static Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command;
 static Lisp_Object Qsafe, Qabove, Qbelow, Qwindow_size, Qclone_of;
 static Lisp_Object Qfloor, Qceiling;
+static Lisp_Object Qwindow_point_insertion_type;
 
 static int displayed_window_lines (struct window *);
 static int count_windows (struct window *);
@@ -124,7 +125,7 @@
 /* Hook to run when window config changes.  */
 static Lisp_Object Qwindow_configuration_change_hook;
 
-/* Used by the function window_scroll_pixel_based */
+/* Used by the function window_scroll_pixel_based.  */
 static int window_scroll_pixel_based_preserve_x;
 static int window_scroll_pixel_based_preserve_y;
 
@@ -6618,7 +6619,8 @@
          else
            p->pointm = Fcopy_marker (w->pointm, Qnil);
          XMARKER (p->pointm)->insertion_type
-           = !NILP (Vwindow_point_insertion_type);
+           = !NILP (buffer_local_value_1 /* Don't signal error if void.  */
+                    (Qwindow_point_insertion_type, w->contents));
 
          p->start = Fcopy_marker (w->start, Qnil);
          p->start_at_line_beg = w->start_at_line_beg ? Qt : Qnil;
@@ -7235,6 +7237,7 @@
   DEFVAR_LISP ("window-point-insertion-type", Vwindow_point_insertion_type,
               doc: /* Type of marker to use for `window-point'.  */);
   Vwindow_point_insertion_type = Qnil;
+  DEFSYM (Qwindow_point_insertion_type, "window_point_insertion_type");
 
   DEFVAR_LISP ("window-configuration-change-hook",
               Vwindow_configuration_change_hook,

=== added file 'test/indent/nxml.xml'
--- a/test/indent/nxml.xml      1970-01-01 00:00:00 +0000
+++ b/test/indent/nxml.xml      2014-04-16 15:28:26 +0000
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<spocosy version="1.0" responsetime="2011-03-15 13:53:12" exec="0.171">
+  <!--
+      <query-response requestid="" service="objectquery">
+      <sport name="Soccer" enetSportCode="s" del="no" n="1" ut="2009-12-29
+      15:36:24" id="1">
+      </sport>
+      </query-response>
+  -->
+</spocosy>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]