emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] emacs-25 ccdaf04: Fix the MSDOS build


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-25 ccdaf04: Fix the MSDOS build
Date: Sat, 30 Apr 2016 10:47:02 +0000

branch: emacs-25
commit ccdaf04cfdaa42fb85d456274405cce32ee9f5d4
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix the MSDOS build
    
    * config.bat:
    * msdos/sedlisp.inp:
    * msdos/sedlibmk.inp:
    * msdos/sedleim.inp:
    * msdos/sedadmin.inp:
    * msdos/sed6.inp:
    * msdos/sed3v2.inp:
    * msdos/sed2v2.inp:
    * msdos/sed1v2.inp: Adapt to Emacs 25.
    
    * src/process.c (remove_slash_colon): Move out of "#ifdef
    subprocesses" block, as it its called unconditionally.  Move
    ADD_SUBFEATURE calls into "#ifdef subprocesses" block, as they
    reference variables only defined in that block.
    * src/msdos.h: Provide prototypes for IT_set_frame_parameters,
    faccessat, msdos_fatal_signal, syms_of_msdos, pthread_sigmask,
    dos_keysns, dos_keyread, run_msdos_command, and
    syms_of_win16select, to avoid compiler warnings.
    * src/msdos.c (SYS_ENVIRON): Define to either '_environ' or
    'environ', depending on the DJGPP version.
    Remove declarations of externally-visible Lisp objects, like
    Qbackground_color and Qreverse.
    (run_msdos_command): First argument is not signed, not unsigned.
    Use SYS_ENVIRON.
    (sys_select): Use 'timespec_cmp' instead of 'timespec_sign', as
    the latter doesn't work when 'time_t' is an unsigned data type.
    This caused idle timers to behave incorrectly: they only fired
    after a keyboard input event.
    * src/frame.c (adjust_frame_size) [MSDOS]: Account for
    FRAME_TOP_MARGIN that isn't counted in the frame's number of
    lines, but dos_set_window_size needs it to be added.
    * src/lread.c (INFINITY, NAN) [DJGPP < 2.05]: Provide definitions.
    * src/fns.c (sort_vector_copy) [__GNUC__ < 4]: Provide a prototype
    that works around compilation errors with older GCC versions.
    * src/w16select.c: Don't declare QCLIPBOARD and QPRIMARY as Lisp
    Objects.
    * src/filelock.c [MSDOS]: Ifdef away most of the code.  Provide
    no-op implementations for 'lock_file' and 'unlock_file'.
    (Ffile_locked_p) [MSDOS]: Always return nil.  This avoids multiple
    ifdefs in all users of filelock.c functionality.
    * src/conf_post.h (EOVERFLOW, SIZE_MAX) [DJGPP < 2.04]: Define.
    * src/emacs.c [MSDOS]: Include dosfns.h, to avoid compiler
    warnings.
    * src/dosfns.h: Provide prototypes for dos_cleanup,
    syms_of_dosfns, and init_dosfns.
    * src/deps.mk (atimer.o): Depend on msdos.h.
    (emacs.o): Depend on dosfns.h.
    * src/atimer.c [MSDOS]: Include msdos.h, to avoid compiler
    warnings.
    
    * lisp/window.el (window--adjust-process-windows): Skip the body
    if 'process-list' is not available.  This avoids failure to start
    up on MS-DOS.
    * lisp/vc/diff.el (diff-no-select): Test 'make-process', not
    'start-process', as the latter is now available on all platforms.
    * lisp/textmodes/ispell.el (ispell-async-processp): Replace
    'start-process' with 'make-process' in a comment.
    * lisp/term/internal.el (IT-unicode-translations): Modify and add
    a few translations to display Info files with Unicode markup.  Fix
    an ancient off-by-one mismatch error with Unicode codepoints.
    * lisp/progmodes/compile.el (compilation-start): Test
    'make-process', not 'start-process', as the latter is now
    available on all platforms.
    * lisp/man.el (Man-build-man-command, Man-getpage-in-background):
    Test 'make-process', not 'start-process', as the latter is now
    available on all platforms.
    * lisp/international/mule-cmds.el (set-coding-system-map): Test
    'make-process', not 'start-process', as the latter is now
    available on all platforms.
    * lisp/eshell/esh-cmd.el (eshell-do-pipelines-synchronously): Doc
    fix.
    (eshell-execute-pipeline): Test 'make-process', not
    'start-process', as the latter is now available on all platforms.
---
 config.bat                      |   27 +++++++--
 lisp/eshell/esh-cmd.el          |    4 +-
 lisp/international/mule-cmds.el |    2 +-
 lisp/man.el                     |    4 +-
 lisp/progmodes/compile.el       |    2 +-
 lisp/term/internal.el           |   30 +++++-----
 lisp/textmodes/ispell.el        |    2 +-
 lisp/vc/diff.el                 |    2 +-
 lisp/window.el                  |   21 +++----
 msdos/sed1v2.inp                |  119 ++++++++++++++++++++-------------------
 msdos/sed2v2.inp                |    7 ++-
 msdos/sed3v2.inp                |   13 ++---
 msdos/sed6.inp                  |   28 +++------
 msdos/sedadmin.inp              |   14 ++---
 msdos/sedleim.inp               |   10 +++-
 msdos/sedlibmk.inp              |   34 +++++------
 msdos/sedlisp.inp               |    4 ++
 src/atimer.c                    |    4 ++
 src/conf_post.h                 |    3 +
 src/deps.mk                     |    4 +-
 src/dosfns.h                    |    4 ++
 src/emacs.c                     |    1 +
 src/filelock.c                  |   19 +++++++
 src/fns.c                       |    5 ++
 src/frame.c                     |   11 ++--
 src/lread.c                     |    4 ++
 src/msdos.c                     |   36 ++++++------
 src/msdos.h                     |   14 +++++
 src/process.c                   |   39 +++++++------
 src/w16select.c                 |    5 +-
 30 files changed, 272 insertions(+), 200 deletions(-)

diff --git a/config.bat b/config.bat
index 04fce0f..a5bea71 100644
--- a/config.bat
+++ b/config.bat
@@ -174,7 +174,7 @@ junk
 If ErrorLevel 1 Goto xmlDone
 Echo Configuring with libxml2 ...
 sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 
>config.h3
-mv config.h3 config.h2
+sed -e "/#define EMACS_CONFIG_FEATURES/s/^.*$/#define EMACS_CONFIG_FEATURES 
\"LIBXML2\"/" <config.h3 >config.h2
 set libxml=1
 :xmlDone
 rm -f junk.c junk junk.exe
@@ -194,7 +194,7 @@ if exist dir.h ren dir.h vmsdir.h
 
 rem   Create "makefile" from "makefile.in".
 rm -f Makefile makefile.tmp
-copy Makefile.in+lisp.mk+deps.mk makefile.tmp
+copy Makefile.in+deps.mk makefile.tmp
 sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile
 rm -f makefile.tmp
 
@@ -227,6 +227,10 @@ rem   
----------------------------------------------------------------------
 Echo Configuring the library source directory...
 cd lib-src
 sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile
+mv Makefile makefile.tmp
+sed -n -e "/^AC_INIT/s/[^,]*, \([^,]*\).*/@set emver=\1/p" ../configure.ac > 
emver.bat
+call emver.bat
+sed -e "s/@version@/%emver%/g" <makefile.tmp >Makefile
 if "%X11%" == "" goto libsrc2a
 mv Makefile makefile.tmp
 sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile
@@ -252,16 +256,23 @@ cd ..
 rem   ----------------------------------------------------------------------
 Echo Configuring the doc directory, expect one "File not found" message...
 cd doc
+Rem Rename files like djtar on plain DOS filesystem would.
+If Exist emacs\emacsver.texi.in update emacs/emacsver.texi.in emacs/emacsver.in
+If Exist man\emacs.1.in update man/emacs.1.in man/emacs.in
+If Exist ..\etc\refcards\emacsver.tex.in update 
../etc/refcards/emacsver.tex.in ../etc/refcards/emacsver.in
 Rem The two variants for lispintro below is for when the shell
 Rem supports long file names but DJGPP does not
-for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp 
< %%d\Makefile.in > %%d\Makefile
+for %%d in (emacs lispref lispintro lispintr misc) do sed -e 
"s/@version@/%emver%/g" -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile
+Rem produce emacs.1 from emacs.in
+If Exist man\emacs.1 goto manOk
+sed -e "s/@version@/%emver%/g" -e "s/@PACKAGE_BUGREPORT@/address@hidden/g" < 
man\emacs.in > man\emacs.1
+:manOk
 cd ..
 rem   ----------------------------------------------------------------------
 Echo Configuring the lib directory...
 If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h 
build-aux/snippet/cxxdefs.h
 cd lib
 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
@@ -286,6 +297,7 @@ 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
+Rem Only repository has the msdos/autogen directory
 If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
 If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < 
..\msdos\autogen\Makefile.in > makefile.tmp
 sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile
@@ -311,6 +323,12 @@ If Not Exist admin\unidata goto noadmin
 Echo Configuring the admin/unidata directory...
 cd admin\unidata
 sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
+Echo Configuring the admin/charsets directory...
+cd ..\charsets
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
+Echo Configuring the admin/grammars directory...
+cd ..\grammars
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
 cd ..\..
 :noadmin
 rem   ----------------------------------------------------------------------
@@ -345,3 +363,4 @@ set nodebug=
 set djgpp_ver=
 set sys_malloc=
 set libxml=
+set emver=
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index 6061513..d3613d3 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -800,7 +800,7 @@ This macro calls itself recursively, with NOTFIRST non-nil."
 (defmacro eshell-do-pipelines-synchronously (pipeline)
   "Execute the commands in PIPELINE in sequence synchronously.
 Output of each command is passed as input to the next one in the pipeline.
-This is used on systems where `start-process' is not supported."
+This is used on systems where async subprocesses are not supported."
   (when (setq pipeline (cadr pipeline))
     `(progn
        ,(when (cdr pipeline)
@@ -838,7 +838,7 @@ This is used on systems where `start-process' is not 
supported."
   "Execute the commands in PIPELINE, connecting each to one another."
   `(let ((eshell-in-pipeline-p t) tailproc)
      (progn
-       ,(if (fboundp 'start-process)
+       ,(if (fboundp 'make-process)
            `(eshell-do-pipelines ,pipeline)
          `(let ((tail-handles (eshell-create-handles
                                (car (aref eshell-current-handles
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index dbf1224..001aad1 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -72,7 +72,7 @@
   (let ((map (make-sparse-keymap "Set Coding System")))
     (bindings--define-key map [set-buffer-process-coding-system]
       '(menu-item "For I/O with Subprocess" set-buffer-process-coding-system
-        :visible (fboundp 'start-process)
+        :visible (fboundp 'make-process)
         :enable (get-buffer-process (current-buffer))
         :help "How to en/decode I/O from/to subprocess connected to this 
buffer"))
     (bindings--define-key map [set-next-selection-coding-system]
diff --git a/lisp/man.el b/lisp/man.el
index b483dd1..2b2ee99 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -619,7 +619,7 @@ This is necessary if one wants to dump man.el with Emacs."
                           ;; `call-process' below sends it to /dev/null,
                           ;; so we don't need `2>' even with DOS shells
                           ;; which do support stderr redirection.
-                          ((not (fboundp 'start-process)) " %s")
+                          ((not (fboundp 'make-process)) " %s")
                           ((concat " %s 2>" null-device)))))
        (flist Man-filter-list))
     (while (and flist (car flist))
@@ -1080,7 +1080,7 @@ Return the buffer in which the manpage will appear."
                                        "[cleaning...]")
                                      'face 'mode-line-emphasis)))
        (Man-start-calling
-        (if (fboundp 'start-process)
+        (if (fboundp 'make-process)
             (let ((proc (start-process
                          manual-program buffer
                          (if (memq system-type '(cygwin windows-nt))
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index b7ab408..dbda8a9 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1736,7 +1736,7 @@ Returns the compilation buffer created."
            (funcall compilation-process-setup-function))
        (and outwin (compilation-set-window-height outwin))
        ;; Start the compilation.
-       (if (fboundp 'start-process)
+       (if (fboundp 'make-process)
            (let ((proc
                   (if (eq mode t)
                       ;; comint uses `start-file-process'.
diff --git a/lisp/term/internal.el b/lisp/term/internal.el
index f026c66..6f4866b 100644
--- a/lisp/term/internal.el
+++ b/lisp/term/internal.el
@@ -233,13 +233,13 @@
        "U*!" "U*'" "R*;" "!:" ":'" "!*" nil nil nil "w*j"
        nil nil "w*?" nil "O*!" "O*'" "W*!" "W*'" "W*J" "/*"
        ";;" nil nil nil "1N" "1M" "3M" "4M" "6M" nil          ; Gen Punct
-       nil "1T" "1H" nil nil nil "LRM" "RLM" "-1" nil
-       nil "--" "---" "===" "!2" "=2" "6`" "'9" ".9" "9'"
-       "``" "''" ":9" "9``" "/-" "/=" "sb" "3b" nil ".."
+       nil "1T" "1H" nil nil nil "LRM" "RLM" "-" "-"
+       "-" "--" "---" "===" "!2" "=2" "'" "'" ".9" "9'"
+       "\"" "\"" ":9" "9``" "/-" "/=" "sb" "3b" nil ".."
        "..." ".-" "LSep" "PSep" "LR[" "RL[" "PDF" "LRO" "RLO" 255
        "%o" "%oo" "'" "''" "\"'" "`" "``" "```" ".^" "<,"
        ",>" ":X" "!!" "?!" "'-" nil nil nil nil "-b"
-       "/f" nil nil nil nil nil nil nil nil nil
+       "/f" nil nil "??" "?!" "!?" nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
@@ -265,17 +265,17 @@
        "oK" "AO" nil nil "Est" nil nil nil nil nil
        nil "Aleph" "Bet" "Gimel" "Dalet" "=i=" nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
-       nil nil nil nil nil nil nil nil nil nil
-       nil "1/3" "2/3" "1/5" "2/5" "3/5" "4/5" "1/6" "5/6" "1/8"
+       nil nil nil nil nil nil nil nil "1/7" "1/9"
+       "1/10" "1/3" "2/3" "1/5" "2/5" "3/5" "4/5" "1/6" "5/6" "1/8"
        "3/8" "5/8" "7/8" "1/" ".I" "II" "III" "IV" ".V" "VI"
        "VII" "VIII" "IX" "X" "XI" "XII" ".L" ".C" ".D" ".M"
        ".i" "ii" "iii" "iv" ".v" "vi" "vii" "viii" "ix" ".x"
-       "xi" ".l" ".c" ".d" ".m" "CD" "DD" "CoD" "CI" nil
+       "xi" "xii" ".l" ".c" ".d" ".m" "CD" "DD" "CoD" "CI"
        nil nil nil nil nil nil nil nil nil nil
-       nil "<-" "|^" "->" "|v" "<->" "v|^" "^\\" "/^" "\\v"
-       "v/" "<-/" "/->" "<~" "~>" "<<-" "|^^" "->>" "|vv" "<-<"
-       ">->" "<-|" "_|^" "|->" "-|v" "_v|^" "<-?" "?->" "<-o" "o->"
-       "<~>" "<-/>" nil nil nil nil nil nil nil nil
+       nil nil "<-" "|^" "->" "|v" "<->" "v|^" "^\\" "/^"
+       "\\v" "v/" "<-/" "/->" "<~" "~>" "<<-" "|^^" "->>" "|vv"
+       "<-<" ">->" "<-|" "_|^" "|->" "-|v" "_v|^" "<-?" "?->" "<-o"
+       "o->" "<~>" "<-/>" nil nil nil nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
        nil nil nil nil nil nil nil nil nil nil
        nil nil nil "<=/" "<=/>" "/=>" "<=" "||^" "=>" "||v"
@@ -299,7 +299,7 @@
        "~<'" "`>~" "/<'" "/`>" "(C" ")C" "/(C" "/)C" "(_" ")_"
        "/(_" "/)_" nil nil nil nil nil nil nil nil
        nil nil nil "0+" "0-" "0x" "0/" "0." "0o" "0*"
-       "0=" "0_" nil nil nil nil "|T" "T|" "-T" "_T"
+       "0=" "0_" nil nil nil nil "|-" "-|" "-T" "_T"
        nil nil nil nil nil nil nil nil nil nil
        nil nil nil nil nil nil nil nil nil "-,-"
        nil "XOR" "NAND" "NOR" nil nil nil nil nil nil
@@ -357,8 +357,10 @@
        "M-o" "N-o" "O-o" "P-o" "Q-o" "R-o" "S-o" "T-o" "U-o" "V-o"
        "W-o" "X-o" "Y-o" "Z-o" "a-o" "b-o" "c-o" "d-o" "e-o" "f-o"
        "g-o" "h-o" "i-o" "j-o" "k-o" "l-o" "m-o" "n-o" "o-o" "p-o"
-       "q-o" "r-o" "s-o" "t-o" "u-o" "v-o" "w-o" "x-o" "y-o" "z-o"
-       "0-o" ]
+       "q-o" "r-o" "s-o" "t-o" "u-o" "v-o" "w-o" "x-o" "y-o" "z-o" "0-o" ]
+     )
+    (9733 9734
+      ["-!-" "-*-"]
      )
     )
 
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index db03a32..0cedf86 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1000,7 +1000,7 @@ and added as a submenu of the \"Edit\" menu.")
 (defvar ispell-async-processp (and (fboundp 'delete-process)
                                   (fboundp 'process-send-string)
                                   (fboundp 'accept-process-output)
-                                  ;;(fboundp 'start-process)
+                                  ;;(fboundp 'make-process)
                                   ;;(fboundp 'set-process-filter)
                                   ;;(fboundp 'process-kill-without-query)
                                   )
diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el
index a8c3fcc..6b316c4 100644
--- a/lisp/vc/diff.el
+++ b/lisp/vc/diff.el
@@ -167,7 +167,7 @@ Possible values are:
       (setq default-directory thisdir)
       (let ((inhibit-read-only t))
        (insert command "\n"))
-      (if (and (not no-async) (fboundp 'start-process))
+      (if (and (not no-async) (fboundp 'make-process))
          (let ((proc (start-process "Diff" buf shell-file-name
                                      shell-command-switch command)))
            (set-process-filter proc 'diff-process-filter)
diff --git a/lisp/window.el b/lisp/window.el
index d9ac0e6..f7a547b 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -8543,16 +8543,17 @@ displaying that processes's buffer."
 
 (defun window--adjust-process-windows ()
   "Update process window sizes to match the current window configuration."
-  (dolist (procwin (window--process-window-list))
-    (let ((process (car procwin)))
-      (with-demoted-errors "Error adjusting window size: %S"
-        (with-current-buffer (process-buffer process)
-          (let ((size (funcall
-                       (or (process-get process 'adjust-window-size-function)
-                           window-adjust-process-window-size-function)
-                       process (cdr procwin))))
-            (when size
-              (set-process-window-size process (cdr size) (car size)))))))))
+  (when (fboundp 'process-list)
+    (dolist (procwin (window--process-window-list))
+      (let ((process (car procwin)))
+        (with-demoted-errors "Error adjusting window size: %S"
+          (with-current-buffer (process-buffer process)
+            (let ((size (funcall
+                         (or (process-get process 'adjust-window-size-function)
+                             window-adjust-process-window-size-function)
+                         process (cdr procwin))))
+              (when size
+                (set-process-window-size process (cdr size) (car size))))))))))
 
 (add-hook 'window-configuration-change-hook 'window--adjust-process-windows)
 
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index 7164682..383105a 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -15,32 +15,24 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
 # ----------------------------------------------------------------------
-s/^#.*//
 s/^[ \f\t][ \f\t]*$//
 s/^ /  /
 s/\.h\.in/.h-in/
-/^MAKE *=/s/^/# /
 /^SHELL *=/s/^/# /
 /^srcdir *=/s/@address@hidden@/./
-/^abs_builddir *=/s|@abs_builddir@|../src|
-/^VPATH *=/s/@address@hidden@/./
-/^CC *=/s/@address@hidden@/gcc/
-/^CPP *=/s/@address@hidden@/gcc -e/
+/^top_srcdir *=/s/@address@hidden@/../
+/^CC *=/s/@address@hidden@/gcc -std=gnu99/
 /^CFLAGS *=/s/@address@hidden@/-O2 -gcoff/
 /^ALL_CFLAGS *=/s/@address@hidden@//g
 /^ALL_CFLAGS *=/s/ -I\.//g
 /^CPPFLAGS *=/s|@address@hidden@|-I../msdos|
 /^LDFLAGS *=/s/@address@hidden@//
-/^LD_FIRSTFLAG *=/s/@address@hidden@//
-/^LIBS *=/s/@address@hidden@//
-/^LIBES *=/,/^ *$/ {
-  s/@address@hidden@//g
-}
 /^LIBOBJS *=/s/@address@hidden@//
 /^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
 /^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@//
 /^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@//
 /^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
+/^PNG_CFLAGS *=/s/@PNG_CFLAGS@//
 /^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
 /^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
@@ -64,6 +56,7 @@ s/ address@hidden@//
 s/ address@hidden@//
 s/ address@hidden@//
 /^XFT_LIBS *=/s/@XFT_LIBS@//
+/^XCB_LIBS *=/s/@XCB_LIBS@//
 /^FONTCONFIG_CFLAGS *=/s/@FONTCONFIG_CFLAGS@//
 /^FONTCONFIG_LIBS *=/s/@FONTCONFIG_LIBS@//
 /^FREETYPE_CFLAGS *=/s/@FREETYPE_CFLAGS@//
@@ -78,7 +71,8 @@ s/ address@hidden@//
 /^NOTIFY_OBJ *=/s/@NOTIFY_OBJ@//
 /^SETTINGS_CFLAGS *=/s/@SETTINGS_CFLAGS@//
 /^SETTINGS_LIBS *=/s/@SETTINGS_LIBS@//
-/^GFILENOTIFY_LIBS *=/s/@GFILENOTIFY_LIBS@//
+/^NOTIFY_LIBS *=/s/@NOTIFY_LIBS@//
+/^NOTIFY_CFLAGS *=/s/@NOTIFY_CFLAGS@//
 /^GTK_OBJ *=/s/@GTK_OBJ@//
 /^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@//
 /^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/
@@ -92,7 +86,7 @@ s/ address@hidden@//
 /^XGSELOBJ *=/s/@XGSELOBJ@//
 /^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@//
 /^LIBSOUND *=/s/@LIBSOUND@//
-/^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@//
+/^LIBS_GNUSTEP *=/s/=.*$/=/
 /^CFLAGS_SOUND *=/s/@CFLAGS_SOUND@//
 /^RSVG_LIBS *=/s/@RSVG_LIBS@//
 /^RSVG_CFLAGS *=/s/@RSVG_CFLAGS@//
@@ -101,15 +95,23 @@ s/ address@hidden@//
 /^LIBXML2_LIBS *=/s/@LIBXML2_LIBS@//
 /^LIBXML2_CFLAGS *=/s/@LIBXML2_CFLAGS@//
 /^WIDGET_OBJ *=/s/@WIDGET_OBJ@//
+/^XWIDGETS_OBJ *=/s/@XWIDGETS_OBJ@//
+/^WEBKIT_LIBS *=/s/@WEBKIT_LIBS@//
+/^WEBKIT_CFLAGS *=/s/@WEBKIT_CFLAGS@//
+/^CAIRO_LIBS *=/s/@CAIRO_LIBS@//
+/^CAIRO_CFLAGS *=/s/@CAIRO_CFLAGS@//
+/^XFIXES_LIBS *=/s/@XFIXES_LIBS@//
+/^XFIXES_CFLAGS *=/s/@XFIXES_CFLAGS@//
 /^CYGWIN_OBJ *=/s/@CYGWIN_OBJ@//
 /^WINDOW_SYSTEM_OBJ *=/s/@WINDOW_SYSTEM_OBJ@//
 /^MSDOS_OBJ *=/s/= */= dosfns.o msdos.o w16select.o/
 /^NS_OBJ *=/s/@NS_OBJ@//
 /^NS_OBJC_OBJ *=/s/@NS_OBJC_OBJ@//
-/^GNU_OBJC_CFLAGS*=/s/@GNU_OBJC_CFLAGS@//
+/^GNU_OBJC_CFLAGS*=/s/=.*$/=/
 /^LIBRESOLV *=/s/@LIBRESOLV@//
+/^LIBMODULES *=/s/@LIBMODULES@//
+/^MODULES_OBJ *=/s/@MODULES_OBJ@//
 /^LIBSELINUX_LIBS *=/s/@LIBSELINUX_LIBS@//
-/^LIB_PTHREAD_SIGMASK *=/s/@address@hidden@//
 /^LIB_CLOCK_GETTIME *=/s/@address@hidden@//g
 /^LIB_TIMER_TIME *=/s/@address@hidden@//g
 /^LIB_EXECINFO *=/s/@address@hidden@//g
@@ -145,65 +147,59 @@ s/ address@hidden@//
 /^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-doc/s!>.*$!!
-/^     [       ]*\$(libsrc)\/make-docfile /s!`[^`]*`!$(lisp); cd ../src!
-/^[   ]*$/d
-/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/temacs$(EXEEXT) 
$(BOOTSTRAPEMACS)/
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
+/^AUTO_DEPEND *=/s/@AUTO_DEPEND@/yes/
+/^PAXCTL_if_present *=/s/=.*$/address@hidden/
+/^lisp\.mk:/,/^$/c\
+lisp.mk: $(lispsource)/loadup.el\
+       @rm -f address@hidden
+       ${AM_V_GEN}printf 'shortlisp = \\n' > address@hidden
+       ${AM_V_GEN}sed -n 's/^[ \t]*(load "\([^"]*\)".*/\1/p' $< | sed -e 
"s/$/.elc \/" -e "s/\.el\.elc/.el/" >> address@hidden
+       ${AM_V_GEN}djecho ""  >> $@
+
+#"
+
+/^     [       ]*\$(AM_V_at)\$(libsrc)\/make-docfile 
-d/s!make-docfile!make-docfile -o $(etc)/DOC!
+/ > \$(etc)\/DOC *$/s/ >.*$//
+/^     [       
]*\$(AM_V_GLOBALS)\$(libsrc)\/make-docfile.*>.*globals.tmp/s!make-docfile!make-docfile
 -o globals.tmp!
+/^     [       ]*\$(AM_V_GLOBALS)\$(libsrc)\/make-doc/s!>.*$!!
+/^\$(libsrc)\/make-docfile\$(EXEEXT): /i\
+       cd ../src
+/^\$(leimdir)\/leim-list.el: /s/bootstrap-emacs\$(EXEEXT)/b-emacs$(EXEEXT)/
 /^     if test -f/,/^  fi$/c\
        command.com /c if exist .gdbinit rm -f _gdbinit
-/^      *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)/
+/^      *\$(PAXCTL_if_present) -zex/d
+/^      *ln /s/ln /cp /
+/^      *\$(SETFATTR_if_present) -n/d
 /^     fi/d
+/^      *\$(RUN_TEMACS) /i\
+       stubedit temacs.exe minstack=1024k
 /^      *LC_ALL=C \$(RUN_TEMACS)/i\
        stubedit temacs.exe minstack=1024k
 /^      *LC_ALL=C.*\$(RUN_TEMACS)/s/LC_ALL=C/set &;/
 /-batch -l loadup/a\
        stubify emacs\
-       stubedit emacs.exe minstack=2048k
-s/ || exit 1\; \\$//
-s/ || true\; \\$//
+       stubedit emacs.exe minstack=3072k
 s/ @true *$/ @rem/
 s/^    [^      ]*move-if-change /      update /
-/^     echo[   ][      ]*timestamp/s/echo /djecho /
+/^     [^      ]*echo[         ][      ]*timestamp/s/echo /djecho /
 /^     .*djecho timestamp/a\
-       @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 ..\/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`|.|
+       @rm -f globals.tmp
 /^      address@hidden(MKDEPDIR) *$/d
 /^     mv \.\/\.gdbinit/d
 /^     if test -f/,/^  fi$/c\
        command.com /c if exist .gdbinit rm -f _gdbinit
 /^     #/d
-/^     cd.*make-docfile/s!$!; cd ../src!
 /^     @: /d
 /^     -\{0,1\} *ln /s/ln /cp /
 /^[    ]touch /s/touch/djecho $@ >/
 s/@YMF_PASS_LDFLAGS@/flags/
-s/@lisp_frag@//
-s/@deps_frag@//
-s/@ns_frag@//
 s/@PRE_EDIT_LDFLAGS@//
 s/@POST_EDIT_LDFLAGS@//
 s/bootstrap-emacs/b-emacs/
@@ -211,21 +207,24 @@ s/bootstrap-temacs/b-temacs/
 s/bootstrap-doc/b-doc/
 /rm -f bootstrap-emacs/s/b-emacs/b-emacs b-emacs.exe/
 s/echo.*buildobj.lst/dj&/
-/ --load loadup bootstrap/i\
-       stubedit temacs.exe minstack=1024k
 / --load loadup bootstrap/a\
        stubify emacs
 /^     mv -f emacs/a\
        stubedit b-emacs.exe minstack=3072k\
        djecho bootlisp > bootlisp
 /^     -\{0,1\}rm -f/s/\\#/#/
-/^     @\{0,1\}cd ..\/lisp;.*[^\]$/s|$|\; cd ../src|
-/^      *THEFILE=/s|$|\; cd ../src|
 /^     echo.* buildobj.h/s|echo |djecho |
-/^buildobj\.h:/,/^     mv /{
-  /^    *for /,/^       *done /c\
+/^buildobj\.h:/,/^      *\$(AM_V_at)mv /{
+  /^    *\$(AM_V_GEN)for /,/^   *done /c\
        djecho "$(ALLOBJS)" | sed -e 's/^ */"/' -e 's/ *$$/"/' -e 's/  */", 
"/g' >>address@hidden
 }
+# Remove or replace dependencies we cannot have
+/^\.PRECIOUS: /s!\.\./config.status !!
+/^\.\.\/config.status: /d
+/^Makefile: /s!\.\./config.status !!
+/^\$(top_srcdir)\/aclocal\.m4 /,/^doc\.o:/c\
+\
+doc.o: buildobj.h
 # Make the GCC command line fit one screen line
 /^[    ][      ]*\$(GNUSTEP_CFLAGS)/d
 /^[    ][      ]*\$(GCONF_CFLAGS)/d
@@ -233,7 +232,13 @@ s/echo.*buildobj.lst/dj&/
 s/\$(LIBOTF_CFLAGS) \$(M17N_FLT_CFLAGS) \$(DEPFLAGS) //
 s/ \$(C_SWITCH_X_SITE)//
 s/ \$(DBUS_CFLAGS)//
-s| -I\$(srcdir)/../lib||
+s/ \$(PNG_CFLAGS) //
+s/ \$(XINERAMA_CFLAGS)//
+s/ \$(XFIXES_CFLAGS)//
+s/ \$(FREETYPE_CFLAGS)//
+s/ \$(FONTCONFIG_CFLAGS)//
+s| -I\$(srcdir)/\.\./lib||
+s| -I\$(top_srcdir)/lib||
 # Add our local inttypes.h to prerequisites where needed
 /^lread\.o:/s|lread\.c|& ../msdos/inttypes.h|
 /^      *test "X/d
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index aa948fd..9f4ff83 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -64,7 +64,7 @@
 /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
 /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
 /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
-/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/
+/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION VERSION/
 /^#undef PENDING_OUTPUT_COUNT/s/^.*$/#define PENDING_OUTPUT_COUNT(FILE) 
((FILE)->_ptr - (FILE)->_base)/
 /^#undef VERSION/s/^.*$/#define VERSION "25.0.93"/
 /^#undef SYSTEM_TYPE/s/^.*$/#define SYSTEM_TYPE "ms-dos"/
@@ -82,7 +82,6 @@
 /^#undef HAVE_SIGNED_SIG_ATOMIC_T *$/s/^.*$/#define HAVE_SIGNED_SIG_ATOMIC_T 1/
 /^#undef HAVE_SIGNED_WINT_T *$/s/^.*$/#define HAVE_SIGNED_WINT_T 1/
 /^#undef HAVE_UNSIGNED_LONG_LONG_INT *$/s/^.*$/#define 
HAVE_UNSIGNED_LONG_LONG_INT 1/
-/^#undef HAVE_WCHAR_H *$/s/^.*$/#define HAVE_WCHAR_H 1/
 /^#undef DEVICE_SEP *$/s/^.*$/#define DEVICE_SEP ':'/
 /^#undef IS_DIRECTORY_SEP *$/s,^.*$,#define IS_DIRECTORY_SEP(_c_) ((_c_) == 
'/' || (_c_) == '\\\\'),
 /^#undef IS_DEVICE_SEP *$/s/^.*$/#define IS_DEVICE_SEP(_c_) ((_c_) == ':')/
@@ -91,6 +90,7 @@
 /^#undef NULL_DEVICE *$/s/^.*$/#define NULL_DEVICE "nul"/
 /^#undef SEPCHAR *$/s/^.*$/#define SEPCHAR '\;'/
 /^#undef USER_FULL_NAME *$/s/^.*$/#define USER_FULL_NAME (getenv ("NAME"))/
+/^# *undef _GNU_SOURCE *$/s/^.*$/#define _GNU_SOURCE 1/
 /^#undef inline/s/^.*$/#define inline __inline__/
 /^#undef my_strftime/s/^.*$/#define my_strftime nstrftime/
 /^#undef restrict/s/^.*$/#define restrict __restrict/
@@ -101,6 +101,7 @@
 s/^#undef STACK_DIRECTION *$/#define STACK_DIRECTION -1/
 s/^#undef EMACS_CONFIGURATION *$/#define EMACS_CONFIGURATION 
"i386-pc-msdosdjgpp"/
 s/^#undef EMACS_CONFIG_OPTIONS *$/#define EMACS_CONFIG_OPTIONS "msdos"/
+s/^#undef EMACS_CONFIG_FEATURES *$/#define EMACS_CONFIG_FEATURES ""/
 s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/
 s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
 /^#undef HAVE_INTTYPES_H/c\
@@ -115,12 +116,14 @@ s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
 #else\
 #undef HAVE_STDINT_H\
 #endif
+s/^#undef HAVE_C_VARARRAYS *$/#define HAVE_C_VARARRAYS 1/
 s/^#undef HAVE_DECL_STRTOLL *$/#define HAVE_DECL_STRTOLL 1/
 s/^#undef HAVE_DECL_STRTOULL *$/#define HAVE_DECL_STRTOULL 1/
 s/^#undef HAVE_DECL_STRTOIMAX *$/#define HAVE_DECL_STRTOIMAX 1/
 s/^#undef HAVE_DECL_STRTOUMAX *$/#define HAVE_DECL_STRTOUMAX 1/
 s/^#undef HAVE_STRTOLL *$/#define HAVE_STRTOLL 1/
 s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/
+s/^#undef HAVE_PUTENV *$/#define HAVE_PUTENV 1/
 /^#undef HAVE_SIGSET_T *$/s/^.*$/#define HAVE_SIGSET_T 1/
 /^#undef HAVE_SNPRINTF/c\
 #if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3\
diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp
index 711f8fe..49f2b76 100644
--- a/msdos/sed3v2.inp
+++ b/msdos/sed3v2.inp
@@ -15,11 +15,8 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
 # ----------------------------------------------------------------------
-/^# DIST: /d
 /^SHELL *=/s/^/# /
-/^CC *=/s/=.*$/=gcc/
-s/-DVERSION[^ ]* //
-/^configname *=/s/=.*$/=msdos/
+/^CC *=/s/=.*$/=gcc -std=gnu99/
 /^archlibdir *=/s!=.*$!=/emacs/bin!
 /^bindir *=/s!=.*$!=/emacs/bin!
 /^libdir *=/s!=.*$!=/emacs/bin!
@@ -38,12 +35,17 @@ s/-DVERSION[^ ]* //
 /^LIB_CLOCK_GETTIME *=/s/@address@hidden@//g
 /^LIB_TIMER_TIME *=/s/@address@hidden@//g
 /^CFLAGS *=/s!=.*$!=-O2 -g!
+/^CPPFLAGS *=/s/@CPPFLAGS@//
+/^LDFLAGS *=/s/@LDFLAGS@//
 /^C_SWITCH_SYSTEM *=/s!=.*$!=-DMSDOS -I../msdos!
 /^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@//
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
 /^ALLOCA *=/address@hidden@!!
 /^EXEEXT *=/address@hidden@!.exe!
 /^CLIENTW *=/s/@CLIENTW@//
@@ -56,9 +58,6 @@ s/-DVERSION[^ ]* //
 /^GETOPT_H *=/address@hidden@!getopt.h!
 /^GETOPTOBJS *=/address@hidden@!getopt.o getopt1.o!
 /^INSTALLABLES/s/emacsclient[^ ]* *//
-s!^    \./!    !
 /^UTILITIES *=/,/^$/{
   s/movemail[^ ]* *//
 }
-/^insrcdir=/s/^.*$/\#&/
-/^      *\$(insrcdir) ||/s,\$(insrcdir) ||,command.com /c if not exist $(<F),
diff --git a/msdos/sed6.inp b/msdos/sed6.inp
index 5df8c27..a209d7a 100644
--- a/msdos/sed6.inp
+++ b/msdos/sed6.inp
@@ -19,28 +19,16 @@
 /^srcdir *=/s/@address@hidden@/./
 /^VPATH *=/s/@address@hidden@/./
 /^MAKEINFO *=/s/@address@hidden@/makeinfo/
-/^INFO_EXT *=/s/@address@hidden@/.info/
-/^INFO_OPTS *=/s/@address@hidden@/--no-split/
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
 /^ENVADD/,/^$/c\
 ENVADD =\
-export TEXINPUTS := $(srcdir)";"$(TEXINPUTS)\
+export TEXINPUTS := $(srcdir)";"$(texinfodir)";"$(TEXINPUTS)\
 export MAKEINFO := $(MAKEINFO) $(MAKEINFO_OPTS)
 /^SHELL *=/s/^/# /
-/^elisp.dvi:/,/^$/ {
-  /^    *if \[ *\a${permuted_index}/,/^         *fi *$/c\
-       command.com /c 'if not a${permuted_index}==a sh ./permute-index' \
-       command.com /c 'if not a${permuted_index}==a mv permuted.fns elisp.fns' 
\
-       command.com /c 'if not a${permuted_index}==a texindex elisp.tp' \
-       command.com /c 'if a${permuted_index}==a texindex elisp.??'
+/^doc-emacsver:/,/^$/ {
+  s/emacsver\.texi\.in/emacsver.in/g
+  s/\.texi\.\$\$\$\$/.tmp/g
+  s/[^  ]*move-if-change/update/
 }
-/^index.texi:/,/^$/ {
-  /^    *if \[ *\a${permuted_index}/,/^         *fi *$/c\
-       command.com /c 'if not a${permuted_index}==a cp -p ./index.perm 
index.texi' \
-       command.com /c 'if a${permuted_index}==a cp -p ./index.unperm 
index.texi'
-}
-/^maintainer-clean:/,/^$/ {
-  s/^  for file in $(INFO_TARGETS)\; do rm -f.*$/      rm -f $(INFO_TARGETS)/
-}
-
-/^mkinfodir *=/s| @.*$|@command.com /c if not exist 
..\\..\\info\\emacs$(INFO_EXT) mkdir ..\\..\\info|
-
diff --git a/msdos/sedadmin.inp b/msdos/sedadmin.inp
index 95c7c06..77812e8 100644
--- a/msdos/sedadmin.inp
+++ b/msdos/sedadmin.inp
@@ -15,15 +15,11 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
 # ----------------------------------------------------------------------
-/^SHELL *=/s/^/# /
+/^SHELL *=/address@hidden@!/bin/sh!
+/^AWK *=/s/@AWK@/gawk/
 /^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}
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp
index fcfcd08..ecbfd4a 100644
--- a/msdos/sedleim.inp
+++ b/msdos/sedleim.inp
@@ -19,6 +19,11 @@
 SHELL=/xyzzy/command\
 MAKESHELL=/xyzzy/command
 
+/^EXEEXT *=/s/@EXEEXT@/.exe/
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
+
 /^srcdir=/s|address@hidden@|srcdir := $(subst \\,/,$(shell cd))|
 
 # Need a relative directory name for the md command, otherwise it
@@ -33,7 +38,6 @@ s|\([         ]\)echo|\1djecho|g
 export EMACSLOADPATH=\
 RUN_EMACS = ${EMACS} -batch --no-site-file --no-site-lisp
 
-/^MKDIR_P *=/s,@MKDIR_P@,-command.com /c md,
+/^MKDIR_P *=/s,@MKDIR_P@,gmkdir -p,
 
-/MKDIR_P.* \${leimdir}\/.*$/s|\${leimdir}/|$(rel_leimdir)\\|
-/MKDIR_P.* \$(leimdir)\/.*$/s|\$(leimdir)/|$(rel_leimdir)\\|
+/^\${leimdir}\/quail \${leimdir}\/ja-dic: *$/s|\${leimdir}/|$(rel_leimdir)\\|
diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp
index a5f9381..9d71ef0 100644
--- a/msdos/sedlibmk.inp
+++ b/msdos/sedlibmk.inp
@@ -146,7 +146,7 @@ am__cd = cd
 /^ARFLAGS *=/s/@address@hidden@/cru/
 /^AWK *=/s/@address@hidden@/gawk/
 /^CANNOT_DUMP *=/s/@address@hidden@/no/
-/^CC *=/s/@address@hidden@/gcc/
+/^CC *=/s/@address@hidden@/gcc -std=gnu99/
 /^CPP *=/s/@address@hidden@/gcc -e/
 /^CPPFLAGS *=/s/@address@hidden@//
 /^CCDEPMODE *=/s/@address@hidden@/depmode=gcc3/
@@ -163,7 +163,6 @@ am__cd = cd
 /^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
 /^DEFS *=/s/@address@hidden@//
 /^DEPDIR *=/s/@address@hidden@/deps/
-/^DEPFLAGS *=/s/@address@hidden@/-MMD -MF ${DEPDIR}\/$*.d/
 /^ECHO_N *=/s/@address@hidden@/-n/
 /^EXEEXT *=/s/@address@hidden@/.exe/
 /^EXECINFO_H *=/s/@address@hidden@/execinfo.h/
@@ -190,7 +189,9 @@ am__cd = cd
 /^GNULIB_GL_UNISTD_H_GETOPT *=/s/@GNULIB_GL_UNISTD_H_GETOPT@/1/
 /^GNULIB_MEMRCHR *=/s/@GNULIB_MEMRCHR@/1/
 /^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/1/
+/^GNULIB_MKTIME *=/s/@GNULIB_MKTIME@/1/
 /^GNULIB_TIME_R *=/s/@GNULIB_TIME_R@/1/
+/^GNULIB_TIME_RZ *=/s/@GNULIB_TIME_RZ@/1/
 /^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/
 /^GNULIB_[^ =]* *= *@/s/@address@hidden@/0/
 /^GSETTINGS_CFLAGS *=/s/@address@hidden@//
@@ -218,6 +219,7 @@ am__cd = cd
 /^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/
 /^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/
 /^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/
+/^HAVE_MAX_ALIGN_T *=/s/@HAVE_MAX_ALIGN_T@/0/
 /^HAVE_MEMCHR *=/s/@HAVE_MEMCHR@/1/
 /^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/
 /^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/
@@ -272,8 +274,7 @@ am__cd = cd
 /^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@//
-/^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@address@hidden@//
+/^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H *=/s/@address@hidden@/<stddef.h>/
 /^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>/
@@ -288,9 +289,8 @@ am__cd = cd
 /^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>/
-/^NEXT_STDDEF_H *=/s/@address@hidden@//
+/^NEXT_STDDEF_H *=/s/@address@hidden@/<stddef.h>/
 /^NEXT_STDIO_H *=/s/@address@hidden@/<stdio.h>/
 /^NEXT_STDINT_H *=/s/@address@hidden@/<stdint.h>/
 /^NEXT_STDLIB_H *=/s/@address@hidden@/<stdlib.h>/
@@ -307,7 +307,8 @@ am__cd = cd
 /^PTHREAD_H_DEFINES_STRUCT_TIMESPEC *=/s/@address@hidden@/0/
 /^PTRDIFF_T_SUFFIX *=/s/@address@hidden@//
 /^RANLIB *=/s/@address@hidden@/ranlib/
-# We never want any gnulib replacement functions
+/^REPLACE_MKTIME *=/s/@address@hidden@/1/
+# We don't want any other 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/
@@ -316,15 +317,14 @@ am__cd = cd
 /^DIRENT_H *=/s/@address@hidden@//
 /^ERRNO_H *=/s/@address@hidden@//
 /^EXECINFO_H *=/s/@address@hidden@/execinfo.h/
-/^STDBOOL_H *=/s/@address@hidden@//
 /^STDALIGN_H *=/s/@address@hidden@/stdalign.h/
-/^STDARG_H *=/s/@address@hidden@//
-/^STDDEF_H *=/s/@address@hidden@//
+/^STDDEF_H *=/s/@address@hidden@/stddef.h/
 /^STDINT_H *=/s/@address@hidden@/stdint.h/
 /^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@address@hidden@/0/
 /^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/
+/^UNISTD_H_DEFINES_STRUCT_TIMESPEC *=/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@//
@@ -334,7 +334,7 @@ am__cd = cd
 /am__append_[1-9][0-9]* *=.*gettext\.h/s/@address@hidden@/\#/
 /am__append_2 *=.*verify\.h/s/@address@hidden@//
 /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 
execinfo.o/
+/^gl_LIBOBJS *=/s/@address@hidden@/getopt.o getopt1.o memrchr.o sig2str.o 
time_r.o time_rz.o timegm.o mktime.o getloadavg.o pthread_sigmask.o mkostemp.o 
fpending.o fdatasync.o execinfo.o/
 /^am__append_[1-9][0-9]* *=/,/^[^      ]/{
   s/ *inttypes\.h//
   s| *sys/select\.h||
@@ -342,13 +342,13 @@ am__cd = cd
 }
 /^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/acl-internal\.\$(OBJEXT) //
+  s/get-permissions\.\$(OBJEXT) //
+  s/set-permissions\.\$(OBJEXT) //
   s/qcopy-acl\.\$(OBJEXT) //
-  s/qset-acl\.\$(OBJEXT) //
   s/openat-die\.\$(OBJEXT) //
   s/save-cwd\.\$(OBJEXT) //
 }
@@ -396,13 +396,9 @@ 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@/\#/
-s/address@hidden@/\#/
-s/address@hidden@/\#/
+s/address@hidden@//
 s/address@hidden@/\#/
 s/address@hidden@//
 s/address@hidden@/\#/
diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp
index 7fa476e..17aa168 100644
--- a/msdos/sedlisp.inp
+++ b/msdos/sedlisp.inp
@@ -23,5 +23,9 @@ export FNCASE=y
 /^lisp *=/s|\$(srcdir)|$(CURDIR)|
 /^srcdir *=/s|@srcdir@|.|
 /^top_srcdir *=/s|@top_srcdir@|./..|
+/^EXEEXT *=/s/@EXEEXT@/.exe/
 /^XARGS_LIMIT *=/s|@XARGS_LIMIT@||
+/^AM_DEFAULT_VERBOSITY *=/s/@AM_DEFAULT_VERBOSITY@/1/
+/^[Aa][Mm]_/s/@AM_V@/$(V)/
+/^[Aa][Mm]_/s/@AM_DEFAULT_V@/$(AM_DEFAULT_VERBOSITY)/
 
diff --git a/src/atimer.c b/src/atimer.c
index 70d9bf5..64c9e8a 100644
--- a/src/atimer.c
+++ b/src/atimer.c
@@ -30,6 +30,10 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 # include <sys/timerfd.h>
 #endif
 
+#ifdef MSDOS
+#include "msdos.h"
+#endif
+
 /* Free-list of atimer structures.  */
 
 static struct atimer *free_atimers;
diff --git a/src/conf_post.h b/src/conf_post.h
index d0f04b6..209f607 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -145,6 +145,9 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
 # define HAVE_LSTAT 1
 #else
 # define lstat stat
+/* DJGPP 2.03 and older don't have the next two.  */
+# define EOVERFLOW ERANGE
+# define SIZE_MAX  4294967295U
 #endif
 
 /* We must intercept 'opendir' calls to stash away the directory name,
diff --git a/src/deps.mk b/src/deps.mk
index 0295e70..72f68ca 100644
--- a/src/deps.mk
+++ b/src/deps.mk
@@ -35,7 +35,7 @@
 ### Code:
 
 atimer.o: atimer.c atimer.h syssignal.h systime.h lisp.h blockinput.h \
- globals.h ../lib/unistd.h $(config_h)
+ globals.h ../lib/unistd.h msdos.h $(config_h)
 bidi.o: bidi.c buffer.h character.h dispextern.h msdos.h lisp.h \
    globals.h $(config_h)
 buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
@@ -92,7 +92,7 @@ editfns.o: editfns.c window.h buffer.h systime.h 
$(INTERVALS_H) character.h \
 emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
    termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) lisp.h $(config_h) \
    globals.h ../lib/unistd.h window.h dispextern.h keyboard.h keymap.h \
-   frame.h coding.h gnutls.h msdos.h unexec.h
+   frame.h coding.h gnutls.h msdos.h dosfns.h unexec.h
 fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
    coding.h msdos.h blockinput.h atimer.h lisp.h $(config_h) frame.h \
    commands.h globals.h ../lib/unistd.h
diff --git a/src/dosfns.h b/src/dosfns.h
index 9fbf7ed..849fb91 100644
--- a/src/dosfns.h
+++ b/src/dosfns.h
@@ -24,6 +24,10 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 extern unsigned char dos_country_info[DOS_COUNTRY_INFO];
 extern int dos_memory_info (unsigned long *, unsigned long *,
                            unsigned long *, unsigned long *);
+void dos_cleanup (void);
+void syms_of_dosfns (void);
+void init_dosfns (void);
+
 #ifndef HAVE_X_WINDOWS
 extern int         msdos_stdcolor_idx  (const char *);
 extern Lisp_Object msdos_stdcolor_name (int);
diff --git a/src/emacs.c b/src/emacs.c
index d1d649d..5c187e7 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -54,6 +54,7 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #ifdef MSDOS
 #include <binary-io.h>
+#include "dosfns.h"
 #endif
 
 #ifdef HAVE_WINDOW_SYSTEM
diff --git a/src/filelock.c b/src/filelock.c
index bc3a620..8aaa656 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -53,6 +53,8 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "w32.h"       /* for dostounix_filename */
 #endif
 
+#ifndef MSDOS
+
 #ifdef HAVE_UTMP_H
 #include <utmp.h>
 #endif
@@ -742,6 +744,19 @@ unlock_file (Lisp_Object fn)
   SAFE_FREE ();
 }
 
+#else  /* MSDOS */
+void
+lock_file (Lisp_Object fn)
+{
+}
+
+void
+unlock_file (Lisp_Object fn)
+{
+}
+
+#endif /* MSDOS */
+
 void
 unlock_all_files (void)
 {
@@ -805,6 +820,9 @@ The value is nil if the FILENAME is not locked,
 t if it is locked by you, else a string saying which user has locked it.  */)
   (Lisp_Object filename)
 {
+#ifdef MSDOS
+  return Qnil;
+#else
   Lisp_Object ret;
   char *lfname;
   int owner;
@@ -825,6 +843,7 @@ t if it is locked by you, else a string saying which user 
has locked it.  */)
 
   SAFE_FREE ();
   return ret;
+#endif
 }
 
 void
diff --git a/src/fns.c b/src/fns.c
index 47ed2d8..a65863c 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -32,8 +32,13 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include "intervals.h"
 #include "window.h"
 
+#if __GNUC__ >= 4
 static void sort_vector_copy (Lisp_Object, ptrdiff_t,
                              Lisp_Object [restrict], Lisp_Object [restrict]);
+#else
+static void sort_vector_copy (Lisp_Object, ptrdiff_t,
+                             Lisp_Object [], Lisp_Object []);
+#endif
 static bool internal_equal (Lisp_Object, Lisp_Object, int, bool, Lisp_Object);
 
 DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0,
diff --git a/src/frame.c b/src/frame.c
index 53ff059..00f25f7 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -509,10 +509,13 @@ adjust_frame_size (struct frame *f, int new_width, int 
new_height, int inhibit,
   block_input ();
 
 #ifdef MSDOS
-  /* We only can set screen dimensions to certain values supported
-     by our video hardware.  Try to find the smallest size greater
-     or equal to the requested dimensions.  */
-  dos_set_window_size (&new_lines, &new_cols);
+  /* We only can set screen dimensions to certain values supported by
+     our video hardware.  Try to find the smallest size greater or
+     equal to the requested dimensions, while accounting for the fact
+     that the menu-bar lines are not counted in the frame height.  */
+  int dos_new_lines = new_lines + FRAME_TOP_MARGIN (f);
+  dos_set_window_size (&dos_new_lines, &new_cols);
+  new_lines = dos_new_lines - FRAME_TOP_MARGIN (f);
 #endif
 
   if (new_windows_width != old_windows_width)
diff --git a/src/lread.c b/src/lread.c
index 9146923..d374406 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -46,6 +46,10 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 
 #ifdef MSDOS
 #include "msdos.h"
+#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 5
+# define INFINITY  __builtin_inf()
+# define NAN       __builtin_nan("")
+#endif
 #endif
 
 #ifdef HAVE_NS
diff --git a/src/msdos.c b/src/msdos.c
index 84e8c39..62411ea 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -59,6 +59,12 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #include <libc/dosio.h>  /* for _USE_LFN */
 #include <conio.h>      /* for cputs */
 
+#if (__DJGPP__ + (__DJGPP_MINOR__ > 3)) >= 3
+#define SYS_ENVIRON _environ
+#else
+#define SYS_ENVIRON environ
+#endif
+
 #include "msdos.h"
 #include "systime.h"
 #include "frame.h"
@@ -422,8 +428,6 @@ static unsigned long screen_old_address = 0;
 /* Segment and offset of the virtual screen.  If 0, DOS/V is NOT loaded.  */
 static unsigned short screen_virtual_segment = 0;
 static unsigned short screen_virtual_offset = 0;
-extern Lisp_Object Qcursor_type;
-extern Lisp_Object Qbar, Qhbar;
 
 /* The screen colors of the current frame, which serve as the default
    colors for newly-created frames.  */
@@ -1384,11 +1388,6 @@ IT_delete_glyphs (struct frame *f, int n)
 
 /* This was copied from xfaces.c  */
 
-extern Lisp_Object Qbackground_color;
-extern Lisp_Object Qforeground_color;
-Lisp_Object Qreverse;
-extern Lisp_Object Qtitle;
-
 /* IT_set_terminal_modes is called when emacs is started,
    resumed, and whenever the screen is redrawn!  */
 
@@ -3710,7 +3709,7 @@ dos_ttcooked (void)
    file TEMPOUT and stderr to TEMPERR.  */
 
 int
-run_msdos_command (unsigned char **argv, const char *working_dir,
+run_msdos_command (char **argv, const char *working_dir,
                   int tempin, int tempout, int temperr, char **envv)
 {
   char *saveargv1, *saveargv2, *lowcase_argv0, *pa, *pl;
@@ -3796,8 +3795,8 @@ run_msdos_command (unsigned char **argv, const char 
*working_dir,
        ;
       if (*cmnd)
        {
-         extern char **environ;
-         char **save_env = environ;
+         extern char **SYS_ENVIRON;
+         char **save_env = SYS_ENVIRON;
          int save_system_flags = __system_flags;
 
          /* Request the most powerful version of `system'.  We need
@@ -3809,16 +3808,16 @@ run_msdos_command (unsigned char **argv, const char 
*working_dir,
                             | __system_handle_null_commands
                             | __system_emulate_chdir);
 
-         environ = envv;
+         SYS_ENVIRON = envv;
          result = system (cmnd);
          __system_flags = save_system_flags;
-         environ = save_env;
+         SYS_ENVIRON = save_env;
        }
       else
        result = 0;     /* emulate Unixy shell behavior with empty cmd line */
     }
   else
-    result = spawnve (P_WAIT, argv[0], (char **)argv, envv);
+    result = spawnve (P_WAIT, argv[0], argv, envv);
 
   dup2 (inbak, 0);
   dup2 (outbak, 1);
@@ -4085,11 +4084,14 @@ sys_select (int nfds, fd_set *rfds, fd_set *wfds, 
fd_set *efds,
          gettime (&t);
          clnow = make_timespec (t.tv_sec, t.tv_nsec);
          cldiff = timespec_sub (clnow, cllast);
+         /* Stop when timeout value is about to cross zero.  */
+         if (timespec_cmp (*timeout, cldiff) <= 0)
+           {
+             timeout->tv_sec = 0;
+             timeout->tv_nsec = 0;
+             return 0;
+           }
          *timeout = timespec_sub (*timeout, cldiff);
-
-         /* Stop when timeout value crosses zero.  */
-         if (timespec_sign (*timeout) <= 0)
-           return 0;
          cllast = clnow;
          dos_yield_time_slice ();
        }
diff --git a/src/msdos.h b/src/msdos.h
index 863ca48..0c3ba2b 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -41,8 +41,12 @@ void mouse_on (void);
 void mouse_off (void);
 void mouse_moveto (int, int);
 
+void IT_set_frame_parameters (struct frame *, Lisp_Object);
+
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <pc.h>
+#include <signal.h>
 
 #if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
 int readlink (const char *, char *, size_t);
@@ -50,6 +54,16 @@ int readlink (const char *, char *, size_t);
 ssize_t readlinkat (int, const char *, char *, size_t);
 int fstatat (int, char const *, struct stat *, int);
 int unsetenv (const char *);
+int faccessat (int, const char *, int, int);
+void msdos_fatal_signal (int);
+void syms_of_msdos (void);
+int pthread_sigmask (int, const sigset_t *, sigset_t *);
+int dos_keysns (void);
+int dos_keyread (void);
+int run_msdos_command (char **, const char *, int, int, int, char **);
+
+void syms_of_win16select (void);
+
 
 /* Constants.  */
 #define EINPROGRESS 112
diff --git a/src/process.c b/src/process.c
index dd50883..2c758a4 100644
--- a/src/process.c
+++ b/src/process.c
@@ -4085,19 +4085,6 @@ Data that is unavailable is returned as nil.  */)
 #endif
 }
 
-/* If program file NAME starts with /: for quoting a magic
-   name, remove that, preserving the multibyteness of NAME.  */
-
-Lisp_Object
-remove_slash_colon (Lisp_Object name)
-{
-  return
-    ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':')
-     ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2,
-                             SBYTES (name) - 2, STRING_MULTIBYTE (name))
-     : name);
-}
-
 /* Turn off input and output for process PROC.  */
 
 static void
@@ -7118,6 +7105,19 @@ add_timer_wait_descriptor (int fd)
 
 #endif /* HAVE_TIMERFD */
 
+/* If program file NAME starts with /: for quoting a magic
+   name, remove that, preserving the multibyteness of NAME.  */
+
+Lisp_Object
+remove_slash_colon (Lisp_Object name)
+{
+  return
+    ((SBYTES (name) > 2 && SREF (name, 0) == '/' && SREF (name, 1) == ':')
+     ? make_specified_string (SSDATA (name) + 2, SCHARS (name) - 2,
+                             SBYTES (name) - 2, STRING_MULTIBYTE (name))
+     : name);
+}
+
 /* Add DESC to the set of keyboard input descriptors.  */
 
 void
@@ -7643,13 +7643,6 @@ The variable takes effect when `start-process' is 
called.  */);
   defsubr (&Sset_process_filter_multibyte);
   defsubr (&Sprocess_filter_multibyte_p);
 
-#endif /* subprocesses */
-
-  defsubr (&Sget_buffer_process);
-  defsubr (&Sprocess_inherit_coding_system_flag);
-  defsubr (&Slist_system_processes);
-  defsubr (&Sprocess_attributes);
-
  {
    Lisp_Object subfeatures = Qnil;
    const struct socket_options *sopt;
@@ -7684,4 +7677,10 @@ The variable takes effect when `start-process' is 
called.  */);
    Fprovide (intern_c_string ("make-network-process"), subfeatures);
  }
 
+#endif /* subprocesses */
+
+  defsubr (&Sget_buffer_process);
+  defsubr (&Sprocess_inherit_coding_system_flag);
+  defsubr (&Slist_system_processes);
+  defsubr (&Sprocess_attributes);
 }
diff --git a/src/w16select.c b/src/w16select.c
index 434a598..208cfcc 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -65,8 +65,6 @@ unsigned get_clipboard_data (unsigned, void *, unsigned, int);
 unsigned close_clipboard (void);
 unsigned clipboard_compact (unsigned);
 
-Lisp_Object QCLIPBOARD, QPRIMARY;
-
 /* The segment address and the size of the buffer in low
    memory used to move data between us and WinOldAp module.  */
 static struct {
@@ -719,8 +717,7 @@ variable is set, it is used for the next communication only.
 After the communication, this variable is set to nil.  */);
   Vnext_selection_coding_system = Qnil;
 
-  QPRIMARY   = intern ("PRIMARY");     staticpro (&QPRIMARY);
-  QCLIPBOARD = intern ("CLIPBOARD");   staticpro (&QCLIPBOARD);
+  DEFSYM (QCLIPBOARD, "CLIPBOARD");
 }
 
 #endif /* MSDOS */



reply via email to

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