aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2014-04-16 16:27:28 +0300
committerEli Zaretskii2014-04-16 16:27:28 +0300
commitbf6b4923f7eedea193dee2130bf7fa597a5932d4 (patch)
tree62bd144e45df20c0fc1600eedb3f744dcfe959a2
parent3a31cae4677c7c5e501dcf7e5c520e49db16f75e (diff)
downloademacs-bf6b4923f7eedea193dee2130bf7fa597a5932d4.tar.gz
emacs-bf6b4923f7eedea193dee2130bf7fa597a5932d4.zip
Fix the MSDOS build.
src/unexcoff.c [MSDOS]: Include libc/atexit.h. (copy_text_and_data): Zero out the atexit chain pointer before dumping Emacs. src/termhooks.h (encode_terminal_code): Update prototype. src/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. src/sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD unless it is defined. (emacs_pipe) [MSDOS]: Redirect to 'pipe'. src/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". src/msdos.h: Add prototypes for new functions. (EINPROGRESS): Define. (O_CLOEXEC): Define to zero. src/msdos.c (check_window_system): Remove unnecessary an incompatible duplicate function. (sys_opendir, readlinkat, faccessat, fstatat, unsetenv): New functions in support of new functionality. src/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. src/lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define when async subprocesses aren't supported. src/font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition. src/emacs.c (close_output_streams): Zero out errno before calling close_stream. src/dired.c [MSDOS]: Include msdos.h. src/conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir. (DATA_START) [MSDOS]: Define. (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K. src/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. lisp/term/pc-win.el (x-list-fonts, x-get-selection-value): Provide doc strings, as required by snarf-documentation. msdos/sedlisp.inp: msdos/sedlibmk.inp: msdos/sedleim.inp: msdos/sed3v2.inp: msdos/sed2v2.inp: msdos/sed1v2.inp: Update Sed scripts for Emacs 24.4. msdos/inttypes.h: Add PRIdMAX. msdos/INSTALL: Update for Emacs 24.4. msdos/sedadmin.inp: New file.
-rw-r--r--ChangeLog4
-rw-r--r--config.bat18
-rw-r--r--lib-src/ChangeLog5
-rw-r--r--lib-src/update-game-score.c4
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/term/pc-win.el25
-rw-r--r--msdos/ChangeLog15
-rw-r--r--msdos/INSTALL58
-rw-r--r--msdos/inttypes.h1
-rw-r--r--msdos/sed1v2.inp37
-rw-r--r--msdos/sed2v2.inp1
-rw-r--r--msdos/sed3v2.inp10
-rw-r--r--msdos/sed6.inp2
-rw-r--r--msdos/sedleim.inp53
-rw-r--r--msdos/sedlibmk.inp468
-rw-r--r--msdos/sedlisp.inp3
-rw-r--r--src/ChangeLog59
-rw-r--r--src/callproc.c20
-rw-r--r--src/conf_post.h10
-rw-r--r--src/dired.c4
-rw-r--r--src/emacs.c7
-rw-r--r--src/font.h4
-rw-r--r--src/lisp.h3
-rw-r--r--src/menu.c5
-rw-r--r--src/msdos.c127
-rw-r--r--src/msdos.h17
-rw-r--r--src/process.c50
-rw-r--r--src/sysdep.c8
-rw-r--r--src/term.c4
-rw-r--r--src/termhooks.h2
-rw-r--r--src/unexcoff.c13
31 files changed, 536 insertions, 506 deletions
diff --git a/ChangeLog b/ChangeLog
index f70e461cd5b..e23703edd07 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12014-04-16 Eli Zaretskii <eliz@gnu.org>
2
3 * config.bat: Update for Emacs 24.4.
4
12014-04-13 Paul Eggert <eggert@cs.ucla.edu> 52014-04-13 Paul Eggert <eggert@cs.ucla.edu>
2 6
3 Port to IRIX 6.5 (Bug#9684). 7 Port to IRIX 6.5 (Bug#9684).
diff --git a/config.bat b/config.bat
index 8af3756222b..cc354478ee9 100644
--- a/config.bat
+++ b/config.bat
@@ -264,8 +264,14 @@ cd lib
264Rem Rename files like djtar on plain DOS filesystem would. 264Rem Rename files like djtar on plain DOS filesystem would.
265If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h 265If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h
266If Exist alloca.in.h update alloca.in.h alloca.in-h 266If Exist alloca.in.h update alloca.in.h alloca.in-h
267If Exist byteswap.in.h update byteswap.in.h byteswap.in-h
268If Exist dirent.in.h update dirent.in.h dirent.in-h
269If Exist errno.in.h update errno.in.h errno.in-h
267If Exist execinfo.in.h update execinfo.in.h execinfo.in-h 270If Exist execinfo.in.h update execinfo.in.h execinfo.in-h
271If Exist fcntl.in.h update fcntl.in.h fcntl.in-h
268If Exist getopt.in.h update getopt.in.h getopt.in-h 272If Exist getopt.in.h update getopt.in.h getopt.in-h
273If Exist inttypes.in.h update inttypes.in.h inttypes.in-h
274If Exist stdarg.in.h update stdarg.in.h stdarg.in-h
269If Exist stdalign.in.h update stdalign.in.h stdalign.in-h 275If Exist stdalign.in.h update stdalign.in.h stdalign.in-h
270If Exist stdbool.in.h update stdbool.in.h stdbool.in-h 276If Exist stdbool.in.h update stdbool.in.h stdbool.in-h
271If Exist signal.in.h update signal.in.h signal.in-h 277If Exist signal.in.h update signal.in.h signal.in-h
@@ -274,8 +280,11 @@ If Exist stddef.in.h update stddef.in.h stddef.in-h
274If Exist stdint.in.h update stdint.in.h stdint.in-h 280If Exist stdint.in.h update stdint.in.h stdint.in-h
275If Exist stdio.in.h update stdio.in.h stdio.in-h 281If Exist stdio.in.h update stdio.in.h stdio.in-h
276If Exist stdlib.in.h update stdlib.in.h stdlib.in-h 282If Exist stdlib.in.h update stdlib.in.h stdlib.in-h
283If Exist string.in.h update string.in.h string.in-h
284If Exist sys_select.in.h update sys_select.in.h sys_select.in-h
277If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h 285If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h
278If Exist sys_types.in.h update sys_types.in.h sys_types.in-h 286If Exist sys_types.in.h update sys_types.in.h sys_types.in-h
287If Exist sys_time.in.h update sys_time.in.h sys_time.in-h
279If Exist time.in.h update time.in.h time.in-h 288If Exist time.in.h update time.in.h time.in-h
280If Exist unistd.in.h update unistd.in.h unistd.in-h 289If Exist unistd.in.h update unistd.in.h unistd.in-h
281If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp 290If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp
@@ -294,13 +303,18 @@ If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el
294sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile 303sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
295cd .. 304cd ..
296rem ---------------------------------------------------------------------- 305rem ----------------------------------------------------------------------
297If not Exist leim\quail\latin-pre.el goto maindir
298Echo Configuring the leim directory... 306Echo Configuring the leim directory...
299cd leim 307cd leim
300sed -f ../msdos/sedleim.inp < Makefile.in > Makefile 308sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
301cd .. 309cd ..
302rem ---------------------------------------------------------------------- 310rem ----------------------------------------------------------------------
303:maindir 311If Not Exist admin\unidata goto noadmin
312Echo Configuring the admin/unidata directory...
313cd admin\unidata
314sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile
315cd ..\..
316:noadmin
317rem ----------------------------------------------------------------------
304Echo Configuring the main directory... 318Echo Configuring the main directory...
305If Exist .dir-locals.el update .dir-locals.el _dir-locals.el 319If Exist .dir-locals.el update .dir-locals.el _dir-locals.el
306If Exist src\.dbxinit update src/.dbxinit src/_dbxinit 320If Exist src\.dbxinit update src/.dbxinit src/_dbxinit
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 7e7f6bf3771..5a783d32660 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,8 @@
12014-04-16 Eli Zaretskii <eliz@gnu.org>
2
3 * update-game-score.c (write_scores): Condition fchmod call on
4 DOS_NT, not WINDOWSNT.
5
12014-03-10 Juanma Barranquero <lekktu@gmail.com> 62014-03-10 Juanma Barranquero <lekktu@gmail.com>
2 7
3 * emacsclient.c (main): #ifdef out previous change on Windows. 8 * emacsclient.c (main): #ifdef out previous change on Windows.
diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c
index ad591cca87a..cb6fdf73590 100644
--- a/lib-src/update-game-score.c
+++ b/lib-src/update-game-score.c
@@ -443,7 +443,7 @@ write_scores (const char *filename, const struct score_entry *scores,
443 fd = mkostemp (tempfile, 0); 443 fd = mkostemp (tempfile, 0);
444 if (fd < 0) 444 if (fd < 0)
445 return -1; 445 return -1;
446#ifndef WINDOWSNT 446#ifndef DOS_NT
447 if (fchmod (fd, 0644) != 0) 447 if (fchmod (fd, 0644) != 0)
448 return -1; 448 return -1;
449#endif 449#endif
@@ -459,7 +459,7 @@ write_scores (const char *filename, const struct score_entry *scores,
459 return -1; 459 return -1;
460 if (rename (tempfile, filename) != 0) 460 if (rename (tempfile, filename) != 0)
461 return -1; 461 return -1;
462#ifdef WINDOWSNT 462#ifdef DOS_NT
463 if (chmod (filename, 0644) < 0) 463 if (chmod (filename, 0644) < 0)
464 return -1; 464 return -1;
465#endif 465#endif
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d8e66425d75..50dcc78c947 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
12014-04-16 Eli Zaretskii <eliz@gnu.org>
2
3 * term/pc-win.el (x-list-fonts, x-get-selection-value): Provide
4 doc strings, as required by snarf-documentation.
5
12014-04-15 Stefan Monnier <monnier@iro.umontreal.ca> 62014-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
2 7
3 * ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted' 8 * ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'
diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el
index 00b860f8dcc..f24a54fbe28 100644
--- a/lisp/term/pc-win.el
+++ b/lisp/term/pc-win.el
@@ -165,6 +165,27 @@ created."
165 165
166;; From src/xfns.c 166;; From src/xfns.c
167(defun x-list-fonts (_pattern &optional _face _frame _maximum width) 167(defun x-list-fonts (_pattern &optional _face _frame _maximum width)
168 "Return a list of the names of available fonts matching PATTERN.
169If optional arguments FACE and FRAME are specified, return only fonts
170the same size as FACE on FRAME.
171
172PATTERN should be a string containing a font name in the XLFD,
173Fontconfig, or GTK format. A font name given in the XLFD format may
174contain wildcard characters:
175 the * character matches any substring, and
176 the ? character matches any single character.
177 PATTERN is case-insensitive.
178
179The return value is a list of strings, suitable as arguments to
180\`set-face-font'.
181
182Fonts Emacs can't use may or may not be excluded
183even if they match PATTERN and FACE.
184The optional fourth argument MAXIMUM sets a limit on how many
185fonts to match. The first MAXIMUM fonts are reported.
186The optional fifth argument WIDTH, if specified, is a number of columns
187occupied by a character of a font. In that case, return only fonts
188the WIDTH times as wide as FACE on FRAME."
168 (if (or (null width) (and (numberp width) (= width 1))) 189 (if (or (null width) (and (numberp width) (= width 1)))
169 (list "ms-dos") 190 (list "ms-dos")
170 (list "no-such-font"))) 191 (list "no-such-font")))
@@ -232,9 +253,9 @@ is not used)."
232 (w16-set-clipboard-data text)) 253 (w16-set-clipboard-data text))
233 (setq x-last-selected-text text)) 254 (setq x-last-selected-text text))
234 255
235;;; Return the value of the current selection.
236;;; Consult the selection. Treat empty strings as if they were unset.
237(defun x-get-selection-value () 256(defun x-get-selection-value ()
257 "Return the value of the current selection.
258Consult the selection. Treat empty strings as if they were unset."
238 (if x-select-enable-clipboard 259 (if x-select-enable-clipboard
239 (let (text) 260 (let (text)
240 ;; Don't die if x-get-selection signals an error. 261 ;; Don't die if x-get-selection signals an error.
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index 65122a01659..f1d6c322bc2 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,18 @@
12014-04-16 Eli Zaretskii <eliz@gnu.org>
2
3 * sedlisp.inp:
4 * sedlibmk.inp:
5 * sedleim.inp:
6 * sed3v2.inp:
7 * sed2v2.inp:
8 * sed1v2.inp: Update Sed scripts for Emacs 24.4.
9
10 * inttypes.h: Add PRIdMAX.
11
12 * INSTALL: Update for Emacs 24.4.
13
14 * sedadmin.inp: New file.
15
12013-12-24 Paul Eggert <eggert@cs.ucla.edu> 162013-12-24 Paul Eggert <eggert@cs.ucla.edu>
2 17
3 * autogen/Makefile.in: Update copyright year. 18 * autogen/Makefile.in: Update copyright year.
diff --git a/msdos/INSTALL b/msdos/INSTALL
index 815da38bd77..de950b89def 100644
--- a/msdos/INSTALL
+++ b/msdos/INSTALL
@@ -4,18 +4,19 @@ Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation,
4Inc. 4Inc.
5See the end of the file for license conditions. 5See the end of the file for license conditions.
6 6
7The DJGPP port of GNU Emacs builds and runs on plain DOS and also on 7The DJGPP port of GNU Emacs builds and runs on all versions of
8all versions of MS-Windows from version 3.X on, including Windows XP, 8MS-Windows from version 3.X on, including Windows XP, Vista, and
9Vista, and Windows 7 (however, see below for issues with Windows Vista 9Windows 7 (however, see below for issues with Windows Vista and 7).
10and 7). 10Building on plain MS-DOS is supported only if long file names are
11supported (e.g., with a specialized driver such as doslfn).
11 12
12To build and install the DJGPP port, you need to have the DJGPP ports 13To build and install the DJGPP port, you need to have the DJGPP ports
13of GCC (the GNU C compiler), GNU Make, rm, mv, and sed. See the 14of GCC (the GNU C compiler), GNU Make, rm, mv, cp, and sed. See the
14remarks in CONFIG.BAT for more information about locations and 15remarks in CONFIG.BAT for more information about locations and
15versions. The Emacs FAQ (see info/efaq) includes pointers to Internet 16versions. The Emacs FAQ (see info/efaq.info) includes pointers to
16sites where you can find the necessary utilities; search for "MS-DOS". 17Internet sites where you can find the necessary utilities; search for
17The configuration step (see below) will test for these utilities and 18"MS-DOS". The configuration step (see below) will test for these
18will refuse to continue if any of them isn't found. 19utilities and will refuse to continue if any of them isn't found.
19 20
20Bootstrapping Emacs or recompiling Lisp files in the `lisp' 21Bootstrapping Emacs or recompiling Lisp files in the `lisp'
21subdirectory using the various targets in the lisp/Makefile file 22subdirectory using the various targets in the lisp/Makefile file
@@ -27,18 +28,14 @@ are distributed in byte-compiled form as well. As for bootstrapping
27itself, you will only need that if you check-out development sources 28itself, you will only need that if you check-out development sources
28from the Emacs source repository. 29from the Emacs source repository.
29 30
30If you are building the DJGPP version of Emacs on a DOS-like system 31Building the DJGPP version of Emacs is currently supported only on
31which supports long file names (e.g. Windows 9X or Windows XP), you 32systems which support long file names (e.g. Windows 9X or Windows XP).
32need to make sure that long file names are handled consistently both 33You need to unpack Emacs distribution in a way that doesn't truncate
33when you unpack the distribution and compile it. With DJGPP v2.0 or 34the original long filenames to the DOS 8.3 namespace; the easiest way
34later, long file names support is by default, so you need to unpack 35to do this is to use djtar program which comes with DJGPP, since it
35Emacs distribution in a way that doesn't truncate the original long 36will behave consistently with the rest of DJGPP tools. Do _not_
36filenames to the DOS 8.3 namespace; the easiest way to do this is to 37disable the DJGPP long-file-name support (a.k.a. "LFN") while building
37use djtar program which comes with DJGPP, since it will behave 38Emacs.
38consistently with the rest of DJGPP tools. Alternatively, you can
39build Emacs with LFN=n, if some of your tools don't support long file
40names: just ensure that LFN is set to `n' during both unpacking and
41compiling.
42 39
43(By the time you read this, you have already unpacked the Emacs 40(By the time you read this, you have already unpacked the Emacs
44distribution, but if the explanations above imply that you should have 41distribution, but if the explanations above imply that you should have
@@ -46,18 +43,6 @@ done it differently, it's safer to delete the directory tree created
46by the unpacking program and unpack Emacs again, than to risk running 43by the unpacking program and unpack Emacs again, than to risk running
47into strange problems during the build process.) 44into strange problems during the build process.)
48 45
49It is important to understand that the runtime support of long file
50names by the Emacs binary is NOT affected by the LFN setting during
51compilation; Emacs compiled with DJGPP v2.0 or later will always
52support long file names on Windows no matter what was the setting
53of LFN at compile time. However, if you compiled with LFN disabled
54and want to enable LFN support after Emacs was already built, you need
55to make sure that the support files in the lisp, etc and info
56directories are called by their original long names as found in the
57distribution. You can do this either by renaming the files manually,
58or by extracting them from the original distribution archive with
59djtar after you set LFN=y in the environment.
60
61To unpack Emacs with djtar, type this command: 46To unpack Emacs with djtar, type this command:
62 47
63 djtar -x emacs.tgz 48 djtar -x emacs.tgz
@@ -68,13 +53,6 @@ your system.)
68When unpacking Emacs is done, a directory called `emacs-XX.YY' will be 53When unpacking Emacs is done, a directory called `emacs-XX.YY' will be
69created, where XX.YY is the Emacs version. 54created, where XX.YY is the Emacs version.
70 55
71On plain DOS, unpacking can complain about several directories and
72files in the `nextstep' subdirectory of the `emacs-XX.YY' top-level
73directory. This is because the names of these files overflow the
7467-character limit on the file-name length imposed by DOS filesystems.
75When prompted by `djtar' for a different name for these files, just
76press [Enter] to skip them: they are not needed for the DJGPP build.
77
78If you want to print international characters, install the intlfonts 56If you want to print international characters, install the intlfonts
79distribution. For this, create a directory called `fonts' under the 57distribution. For this, create a directory called `fonts' under the
80`emacs-XX.YY' top-level directory created by unpacking emacs.tgz, 58`emacs-XX.YY' top-level directory created by unpacking emacs.tgz,
diff --git a/msdos/inttypes.h b/msdos/inttypes.h
index 9f59d4e1a2e..7469ea07b71 100644
--- a/msdos/inttypes.h
+++ b/msdos/inttypes.h
@@ -32,6 +32,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
32#define strtoumax strtoull 32#define strtoumax strtoull
33#define strtoimax strtoll 33#define strtoimax strtoll
34#define PRIuMAX "llu" 34#define PRIuMAX "llu"
35#define PRIdMAX "lld"
35#endif /* __DJGPP__ < 2.04 */ 36#endif /* __DJGPP__ < 2.04 */
36 37
37#endif 38#endif
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index c7e770cb3ee..77c74fe2f0c 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -48,12 +48,16 @@ s/\.h\.in/.h-in/
48/^LD_SWITCH_SYSTEM_TEMACS *=/s/@LD_SWITCH_SYSTEM_TEMACS@// 48/^LD_SWITCH_SYSTEM_TEMACS *=/s/@LD_SWITCH_SYSTEM_TEMACS@//
49/^LD_SWITCH_X_SITE_AUX *=/s/@LD_SWITCH_X_SITE_AUX@// 49/^LD_SWITCH_X_SITE_AUX *=/s/@LD_SWITCH_X_SITE_AUX@//
50/^LD_SWITCH_X_SITE_AUX_RPATH *=/s/@LD_SWITCH_X_SITE_AUX_RPATH@// 50/^LD_SWITCH_X_SITE_AUX_RPATH *=/s/@LD_SWITCH_X_SITE_AUX_RPATH@//
51/^LD_SWITCH_X_SITE_RPATH *=/s/@LD_SWITCH_X_SITE_RPATH@//
51/^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@// 52/^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@//
52/^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@// 53/^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@//
53/^LIB_GCC *=/s/@LIB_GCC@// 54/^LIB_GCC *=/s/@LIB_GCC@//
54/^LIB_STANDARD *=/s/@LIB_STANDARD@// 55/^LIB_STANDARD *=/s/@LIB_STANDARD@//
55/^LIB_MATH *=/s/@LIB_MATH@/-lm/ 56/^LIB_MATH *=/s/@LIB_MATH@/-lm/
56/^LIB_PTHREAD *=/s/@LIB_PTHREAD@// 57/^LIB_PTHREAD *=/s/@LIB_PTHREAD@//
58/^LIB_ACL *=/s/@LIB_ACL@//
59/^LIB_EACCESS *=/s/@LIB_EACCESS@//
60/^LIB_FDATASYNC *=/s/@LIB_FDATASYNC@//
57s/ *@LIBTIFF@// 61s/ *@LIBTIFF@//
58s/ *@LIBJPEG@// 62s/ *@LIBJPEG@//
59s/ *@LIBPNG@// 63s/ *@LIBPNG@//
@@ -71,8 +75,10 @@ s/ *@LIBXPM@//
71/^DBUS_CFLAGS *=/s/@DBUS_CFLAGS@// 75/^DBUS_CFLAGS *=/s/@DBUS_CFLAGS@//
72/^DBUS_LIBS *=/s/@DBUS_LIBS@// 76/^DBUS_LIBS *=/s/@DBUS_LIBS@//
73/^DBUS_OBJ *=/s/@DBUS_OBJ@// 77/^DBUS_OBJ *=/s/@DBUS_OBJ@//
78/^NOTIFY_OBJ *=/s/@NOTIFY_OBJ@//
74/^SETTINGS_CFLAGS *=/s/@SETTINGS_CFLAGS@// 79/^SETTINGS_CFLAGS *=/s/@SETTINGS_CFLAGS@//
75/^SETTINGS_LIBS *=/s/@SETTINGS_LIBS@// 80/^SETTINGS_LIBS *=/s/@SETTINGS_LIBS@//
81/^GFILENOTIFY_LIBS *=/s/@GFILENOTIFY_LIBS@//
76/^GTK_OBJ *=/s/@GTK_OBJ@// 82/^GTK_OBJ *=/s/@GTK_OBJ@//
77/^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@// 83/^LIBS_TERMCAP *=/s/@LIBS_TERMCAP@//
78/^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/ 84/^TERMCAP_OBJ *=/s/@TERMCAP_OBJ@/termcap.o tparam.o/
@@ -83,6 +89,7 @@ s/ *@LIBXPM@//
83/^OLDXMENU_TARGET *=/s/@OLDXMENU_TARGET@// 89/^OLDXMENU_TARGET *=/s/@OLDXMENU_TARGET@//
84/^OLDXMENU_DEPS *=/s/@OLDXMENU_DEPS@// 90/^OLDXMENU_DEPS *=/s/@OLDXMENU_DEPS@//
85/^XOBJ *=/s/@XOBJ@// 91/^XOBJ *=/s/@XOBJ@//
92/^XGSELOBJ *=/s/@XGSELOBJ@//
86/^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@// 93/^TOOLKIT_LIBW *=/s/@TOOLKIT_LIBW@//
87/^LIBSOUND *=/s/@LIBSOUND@// 94/^LIBSOUND *=/s/@LIBSOUND@//
88/^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@// 95/^LIBS_GNUSTEP *=/s/@LIBS_GNUSTEP@//
@@ -114,12 +121,19 @@ s/ *@LIBXPM@//
114/^XMENU_OBJ *=/s/@XMENU_OBJ@/xmenu.o/ 121/^XMENU_OBJ *=/s/@XMENU_OBJ@/xmenu.o/
115/^FONT_OBJ *=/s/@FONT_OBJ@// 122/^FONT_OBJ *=/s/@FONT_OBJ@//
116/^LIBGPM *=/s/@LIBGPM@// 123/^LIBGPM *=/s/@LIBGPM@//
124/^LIBZ *=/s/@LIBZ@//
117/^EXEEXT *=/s/@EXEEXT@/.exe/ 125/^EXEEXT *=/s/@EXEEXT@/.exe/
126/^MKDIR_P *=/s/@MKDIR_P@/gmkdir -p/
118/^OLDXMENU *=/s/@OLDXMENU@/nothing/ 127/^OLDXMENU *=/s/@OLDXMENU@/nothing/
119/^LIBXMENU *=/s/@LIBXMENU@// 128/^LIBXMENU *=/s/@LIBXMENU@//
120/^LIBX_OTHER *=/s/@LIBX_OTHER@// 129/^LIBX_OTHER *=/s/@LIBX_OTHER@//
130/^XRANDR_LIBS *=/s/@XRANDR_LIBS@//
131/^XRANDR_CFLAGS *=/s/@XRANDR_CFLAGS@//
132/^XINERAMA_LIBS *=/s/@XINERAMA_LIBS@//
133/^XINERAMA_CFLAGS *=/s/@XINERAMA_CFLAGS@//
121/^GMALLOC_OBJ *=/s/@GMALLOC_OBJ@/gmalloc.o/ 134/^GMALLOC_OBJ *=/s/@GMALLOC_OBJ@/gmalloc.o/
122/^VMLIMIT_OBJ *=/s/@VMLIMIT_OBJ@/vm-limit.o/ 135/^VMLIMIT_OBJ *=/s/@VMLIMIT_OBJ@/vm-limit.o/
136/^FIRSTFILE_OBJ *=/s/@FIRSTFILE_OBJ@//
123/^RALLOC_OBJ *=/s/@RALLOC_OBJ@/ralloc.o/ 137/^RALLOC_OBJ *=/s/@RALLOC_OBJ@/ralloc.o/
124/^PRE_ALLOC_OBJ *=/s/@PRE_ALLOC_OBJ@/lastfile.o/ 138/^PRE_ALLOC_OBJ *=/s/@PRE_ALLOC_OBJ@/lastfile.o/
125/^POST_ALLOC_OBJ *=/s/@POST_ALLOC_OBJ@/$(vmlimitobj)/ 139/^POST_ALLOC_OBJ *=/s/@POST_ALLOC_OBJ@/$(vmlimitobj)/
@@ -130,9 +144,15 @@ s/ *@LIBXPM@//
130/^W32_OBJ *=/s/@W32_OBJ@// 144/^W32_OBJ *=/s/@W32_OBJ@//
131/^W32_LIBS *=/s/@W32_LIBS@// 145/^W32_LIBS *=/s/@W32_LIBS@//
132/^version *=/s/@[^@\n]*@// 146/^version *=/s/@[^@\n]*@//
147/^EMACSRES *=/s/@EMACSRES@//
148/^EMACS_MANIFEST *=/s/@EMACS_MANIFEST@//
149/^W32_RES_LINK *=/s/@W32_RES_LINK@//
150/^CM_OBJ *=/s/@CM_OBJ@/cm.o/
133/^@SET_MAKE@$/s/@SET_MAKE@// 151/^@SET_MAKE@$/s/@SET_MAKE@//
152/^TEMACS_POST_LINK *=/s/@TEMACS_POST_LINK@/stubedit temacs.exe minstack=1024k/
153/^ADDSECTION *=/s/@ADDSECTION@//
134/^ [ ]*\$(libsrc)\/make-docfile.*>.*\/DOC/s!make-docfile!make-docfile -o $(etc)/DOC! 154/^ [ ]*\$(libsrc)\/make-docfile.*>.*\/DOC/s!make-docfile!make-docfile -o $(etc)/DOC!
135/^ [ ]*\$(libsrc)\/make-docfile.*>.*gl-tmp/s!make-docfile!make-docfile -o gl-tmp! 155/^ [ ]*\$(libsrc)\/make-docfile.*>.*gl.tmp/s!make-docfile!make-docfile -o gl.tmp!
136/^.\$(libsrc)\/make-doc/s!>.*$!! 156/^.\$(libsrc)\/make-doc/s!>.*$!!
137/^ [ ]*\$(libsrc)\/make-docfile /s!`[^`]*`!$(lisp); cd ../src! 157/^ [ ]*\$(libsrc)\/make-docfile /s!`[^`]*`!$(lisp); cd ../src!
138/^[ ]*$/d 158/^[ ]*$/d
@@ -142,6 +162,7 @@ s/ *@LIBXPM@//
142/^ *test "X\$(PAXCTL)" = X/d 162/^ *test "X\$(PAXCTL)" = X/d
143/^ *test "\$(CANNOT_DUMP)" = "yes"/d 163/^ *test "\$(CANNOT_DUMP)" = "yes"/d
144/^ if test "\$(CANNOT_DUMP)" =/,/^ else /d 164/^ if test "\$(CANNOT_DUMP)" =/,/^ else /d
165/^ *\$(SETFATTR) -n/d
145/^ -\{0,1\} *ln /s/bootstrap-emacs\$(EXEEXT).*$/bootstrap-emacs$(EXEEXT)/ 166/^ -\{0,1\} *ln /s/bootstrap-emacs\$(EXEEXT).*$/bootstrap-emacs$(EXEEXT)/
146/^ fi/d 167/^ fi/d
147/^ *LC_ALL=C \$(RUN_TEMACS)/i\ 168/^ *LC_ALL=C \$(RUN_TEMACS)/i\
@@ -156,15 +177,17 @@ s/ @true *$/ @rem/
156s/^ [^ ]*move-if-change / update / 177s/^ [^ ]*move-if-change / update /
157/^ echo[ ][ ]*timestamp/s/echo /djecho / 178/^ echo[ ][ ]*timestamp/s/echo /djecho /
158/^ .*djecho timestamp/a\ 179/^ .*djecho timestamp/a\
159 @rm -f gl-tmp 180 @rm -f gl.tmp
160/^ cd \$(leimdir) && \$(MAKE)/i\ 181/^ cd ..\/leim && \$(MAKE)/i\
161 $(RUN_TEMACS) -batch -l loadup dump\ 182 $(RUN_TEMACS) -batch -l loadup dump\
162 stubify emacs\ 183 stubify emacs\
163 stubedit emacs.exe minstack=2048k\ 184 stubedit emacs.exe minstack=2048k\
164 rm -f b-emacs$(EXEEXT)\ 185 rm -f b-emacs$(EXEEXT)\
165 cp emacs$(EXEEXT) b-emacs$(EXEEXT) 186 cp emacs$(EXEEXT) b-emacs$(EXEEXT)
166/^ cd \$(leimdir) && \$(MAKE)/c\ 187/^ cd ..\/leim && \$(MAKE)/c\
167 $(MAKE) $(MFLAGS) -C $(leimdir) leim-list.el EMACS=$(bootstrap_exe) 188 $(MAKE) $(MFLAGS) -C ../leim leim-list.el EMACS=$(bootstrap_exe)
189/^ cd ..\/admin\/unidata && \$(MAKE)/c\
190 $(MAKE) $(MFLAGS) -C ../admin/unidata all EMACS="../$(bootstrap_exe)"
168/^ cd \$(lib) && \$(MAKE)/c\ 191/^ cd \$(lib) && \$(MAKE)/c\
169 $(MAKE) $(MFLAGS) -C $(lib) libgnu.a 192 $(MAKE) $(MFLAGS) -C $(lib) libgnu.a
170/^RUN_TEMACS *=/s|`/bin/pwd`|.| 193/^RUN_TEMACS *=/s|`/bin/pwd`|.|
@@ -199,6 +222,10 @@ s/echo.*buildobj.lst/dj&/
199/^ @\{0,1\}cd ..\/lisp;.*[^\]$/s|$|\; cd ../src| 222/^ @\{0,1\}cd ..\/lisp;.*[^\]$/s|$|\; cd ../src|
200/^ *THEFILE=/s|$|\; cd ../src| 223/^ *THEFILE=/s|$|\; cd ../src|
201/^ echo.* buildobj.h/s|echo |djecho | 224/^ echo.* buildobj.h/s|echo |djecho |
225/^buildobj\.h:/,/^ mv /{
226 /^ *for /,/^ *done /c\
227 djecho "$(ALLOBJS)" | sed -e 's/^ */"/' -e 's/ *$$/"/' -e 's/ */", "/g' >>$@.tmp
228}
202# Make the GCC command line fit one screen line 229# Make the GCC command line fit one screen line
203/^[ ][ ]*\$(GNUSTEP_CFLAGS)/d 230/^[ ][ ]*\$(GNUSTEP_CFLAGS)/d
204/^[ ][ ]*\$(GCONF_CFLAGS)/d 231/^[ ][ ]*\$(GCONF_CFLAGS)/d
diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp
index 421ccd4be05..806e2b416ea 100644
--- a/msdos/sed2v2.inp
+++ b/msdos/sed2v2.inp
@@ -132,6 +132,7 @@ s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/
132#else\ 132#else\
133#undef HAVE_SNPRINTF\ 133#undef HAVE_SNPRINTF\
134#endif 134#endif
135s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - fp->_base/
135 136
136# Comment out any remaining undef directives, because some of them 137# Comment out any remaining undef directives, because some of them
137# might be defined in sys/config.h we include at the top of config.h. 138# might be defined in sys/config.h we include at the top of config.h.
diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp
index dcc09ddeb3c..09f2f089831 100644
--- a/msdos/sed3v2.inp
+++ b/msdos/sed3v2.inp
@@ -42,9 +42,17 @@ s/-DVERSION[^ ]* //
42/^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@// 42/^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
43/^WARN_CFLAGS *=/s/@WARN_CFLAGS@// 43/^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
44/^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@// 44/^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
45/^UPDATE_MANIFEST *=/s/@UPDATE_MANIFEST@//
45/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@// 46/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
46/^ALLOCA *=/s!@ALLOCA@!! 47/^ALLOCA *=/s!@ALLOCA@!!
47/^EXEEXT *=/s!@EXEEXT@!! 48/^EXEEXT *=/s!@EXEEXT@!.exe!
49/^CLIENTW *=/s/@CLIENTW@//
50/^LIB_FDATASYNC *=/s/@LIB_FDATASYNC@//
51/^LIB_WSOCK32 *=/s/@LIB_WSOCK32@//
52/^LIBS_ECLIENT *=/s/@LIBS_ECLIENT@//
53/^NTLIB *=/s/@NTLIB@//
54/^CLIENTRES *=/s/@CLIENTRES@//
55/^WINDRES *=/s/@WINDRES@//
48/^GETOPT_H *=/s!@GETOPT_H@!getopt.h! 56/^GETOPT_H *=/s!@GETOPT_H@!getopt.h!
49/^GETOPTOBJS *=/s!@GETOPTOBJS@!getopt.o getopt1.o! 57/^GETOPTOBJS *=/s!@GETOPTOBJS@!getopt.o getopt1.o!
50/^INSTALLABLES/s/emacsclient[^ ]* *// 58/^INSTALLABLES/s/emacsclient[^ ]* *//
diff --git a/msdos/sed6.inp b/msdos/sed6.inp
index 32f39dd543c..a15f4236f57 100644
--- a/msdos/sed6.inp
+++ b/msdos/sed6.inp
@@ -42,5 +42,5 @@ export MAKEINFO := $(MAKEINFO) $(MAKEINFO_OPTS)
42 s/^ for file in $(INFO_TARGETS)\; do rm -f.*$/ rm -f $(INFO_TARGETS)/ 42 s/^ for file in $(INFO_TARGETS)\; do rm -f.*$/ rm -f $(INFO_TARGETS)/
43} 43}
44 44
45/^mkinfodir *=/s| @.*$|@command.com /c if not exist ..\\..\\info\\emacs mkdir ..\\..\\info| 45/^mkinfodir *=/s| @.*$|@command.com /c if not exist ..\\..\\info\\emacs$(INFO_EXT) mkdir ..\\..\\info|
46 46
diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp
index 07aa3c6d2fb..fab8094a7e9 100644
--- a/msdos/sedleim.inp
+++ b/msdos/sedleim.inp
@@ -19,56 +19,21 @@
19SHELL=/xyzzy/command\ 19SHELL=/xyzzy/command\
20MAKESHELL=/xyzzy/command 20MAKESHELL=/xyzzy/command
21 21
22/^version=/d
23/^prefix=/d
24/^datadir=/s|@datadir@|../..|
25/^srcdir=/s|srcdir=@srcdir@|srcdir := $(subst \\,/,$(shell cd))| 22/^srcdir=/s|srcdir=@srcdir@|srcdir := $(subst \\,/,$(shell cd))|
26 23
27/^INSTALLDIR=/c\ 24# Need a relative directory name for the md command, otherwise it
28INSTALLDIR=. 25# chokes, perhaps due to multiple dots in emacs-XX.YY.NN name.
26/^leimdir *=/a\
27rel_leimdir = ..\\lisp\\leim
29 28
30/touch stamp-subdir/s|touch|djecho "stamp-subdir" >|
31s|\([ ]\)echo|\1djecho|g 29s|\([ ]\)echo|\1djecho|g
32/^ @true *$/d 30/^ @true *$/d
33 31
34/RUN_EMACS *=/,/^$/c\ 32/RUN_EMACS *=/,/^$/c\
35export EMACSLOADPATH=${buildlisppath}\ 33export EMACSLOADPATH=\
36RUN_EMACS = ${EMACS} -batch --no-site-file 34RUN_EMACS = ${EMACS} -batch --no-site-file --no-site-lisp
37 35
38/^MKDIR_P *=/s,@MKDIR_P@,command.com /c md, 36/^MKDIR_P *=/s,@MKDIR_P@,-command.com /c md,
39
40/^ cd ../c\
41 ${MAKE} -C ../src ${MFLAGS} emacs
42
43/if \[ -f $@ \]\; then true/d
44/fi$/s/; fi$//
45
46/^leim-list.el:/,/^$/ {
47 /^ if/d
48 /^ else/,/^ fi/d
49 s| *| |
50 /^ --eval/,/; \\$/s|\; \\||
51}
52
53/^setwins=/,/^$/d
54/^\.PHONY: compile-targets/d
55/^compile-targets:/d
56/^compile-main:/,/^$/c\
57compile-main: ${TIT_MISC}\
58 $(MAKE) $(MFLAGS) $(foreach f,$(wildcard ja-dic/*.el),$(basename $f).elc)\
59 $(MAKE) $(MFLAGS) $(foreach f,$(wildcard quail/*.el),$(basename $f).elc)\
60
61
62/^install:/,/^$/c\
63install: all\
64
65/^bootstrap-clean:/,/^$/c\
66bootstrap-clean: clean\
67 rm -f ja-dic/*.elc quail/*.elc\
68
69
70/^ if test -f/d
71/^distclean:/,/^$/ {
72 s|\(rm -f Makefile\)|\1 stamp-subdir|
73}
74 37
38/MKDIR_P.* \${leimdir}\/.*$/s|\${leimdir}/|$(rel_leimdir)\\|
39/MKDIR_P.* \$(leimdir)\/.*$/s|\$(leimdir)/|$(rel_leimdir)\\|
diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp
index 40737fa5133..badb30b0b65 100644
--- a/msdos/sedlibmk.inp
+++ b/msdos/sedlibmk.inp
@@ -18,15 +18,25 @@
18# 18#
19# Checklist to add a new gnulib module: 19# Checklist to add a new gnulib module:
20# 20#
21# . If the module includes source files that need to be compiled, add 21# . If the module includes source files that need to be compiled, and
22# the corresponding .o file names to the list that gets assigned to 22# does not appear in the am_libgnu_a_OBJECTS list, add the
23# the gl_LIBOBJS variable. 23# corresponding .o file names to the list that gets assigned to the
24# gl_LIBOBJS variable.
25#
26# . If a module appears in am_libgnu_a_OBJECTS that is not required
27# for the MSDOS build, edit it out by adding an appropriate command
28# to the set that edits the am_libgnu_a_OBJECTS block.
24# 29#
25# . If the module defines functions that need to replace DJGPP 30# . If the module defines functions that need to replace DJGPP
26# functions, edit the appropriate REPLACE_foo variables to 1; 31# functions, edit the appropriate REPLACE_foo variables to 1:
27# otherwise edit them to zero: 32#
33# /^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/1/
28# 34#
29# /^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/0/ 35# Note that this file already has a command to edit all the
36# REPLACE_foo variables to zero, so if some gnulib replacement
37# function is ever needed, the corresponding editing command such
38# as above should be placed before that catchall rule (search for
39# "REPLACE_" below).
30# 40#
31# . If the module is a header or adds headers, edit the corresponding 41# . If the module is a header or adds headers, edit the corresponding
32# variable to either an empty value or to the name of the header. 42# variable to either an empty value or to the name of the header.
@@ -45,10 +55,10 @@
45# s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/ 55# s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/
46# s/^@GL_GENERATE_STDBOOL_H_FALSE@// 56# s/^@GL_GENERATE_STDBOOL_H_FALSE@//
47# 57#
48# . Also edit the NEXT_foo and NEXT_AS_FIRST_DIRECTIVE_foo_H variable 58# . Also edit the NEXT_foo_H and NEXT_AS_FIRST_DIRECTIVE_foo_H
49# as appropriately: to an empty value if the gnulib header is not 59# variables as appropriately: to an empty value if the gnulib
50# used, and to the corresponding DJGPP header name otherwise. 60# header is not used, and to the corresponding DJGPP header name
51# Examples: 61# otherwise. Examples:
52# 62#
53# /^NEXT_STDDEF_H *=/s/@[^@\n]*@// 63# /^NEXT_STDDEF_H *=/s/@[^@\n]*@//
54# /^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/ 64# /^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/
@@ -57,7 +67,7 @@
57# 67#
58# . Note that some gnulib headers cannot be left unused: those for 68# . Note that some gnulib headers cannot be left unused: those for
59# which there's no corresponding foo_H variable in 69# which there's no corresponding foo_H variable in
60# autogen/Makefile.in (example: stdio.h). For these the "not 70# msdos/autogen/Makefile.in (example: stdio.h). For these the "not
61# needed" path is not applicable. 71# needed" path is not applicable.
62# 72#
63# . If the header is needed, edit all the variables it uses as 73# . If the header is needed, edit all the variables it uses as
@@ -68,12 +78,14 @@
68# variable should be edited to zero and the corresponding 78# variable should be edited to zero and the corresponding
69# GNULIB_foo variable should be edited to 1 if the gnulib 79# GNULIB_foo variable should be edited to 1 if the gnulib
70# replacement can work for DJGPP (a rare phenomenon), zero 80# replacement can work for DJGPP (a rare phenomenon), zero
71# otherwise. 81# otherwise. Note that by default all HAVE_foo and GNULIB_foo
82# variables that don't have a specific editing rule will be edited
83# to zero.
72# 84#
73# . Some gnulib header files have more complex recipes in 85# . Some gnulib header files have more complex recipes in
74# autogen/Makefile.in than others. The tell-tale sign of such a 86# msdos/autogen/Makefile.in than others. The tell-tale sign of
75# recipe is that the input redirection from the .in.h file is not 87# such a recipe is that the input redirection from the .in.h file
76# present at the end of the command, like this: 88# is not present at the end of the command, like this:
77# 89#
78# -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ 90# -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
79# } > $@-t && \ 91# } > $@-t && \
@@ -93,6 +105,16 @@
93# s/'\; \\ *$/' >> $@-t/ 105# s/'\; \\ *$/' >> $@-t/
94# } 106# }
95# 107#
108# There's also a 3rd variety of script, which ends like this:
109#
110# -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \
111# < $(srcdir)/string.in.h; \
112# } > $@-t && \
113# mv $@-t $@
114#
115# For these, you will need Sed commands like those used for
116# string.h, see below.
117#
96# . If the recipe for generating a header file uses 'cat', replace it with 118# . If the recipe for generating a header file uses 'cat', replace it with
97# 119#
98# sed -e '' 120# sed -e ''
@@ -101,9 +123,9 @@
101# this). 123# this).
102# 124#
103# The following Awk script is useful for editing portions of 125# The following Awk script is useful for editing portions of
104# autogen/Makefile.in into Sed commands that define the corresponding 126# msdos/autogen/Makefile.in into Sed commands that define the
105# variables to zero (which is what is required in the absolute 127# corresponding variables to zero (which is what is required in the
106# majority of cases): 128# absolute majority of cases):
107# 129#
108# { printf "/^%s *=/s/%s/0/\n",$1,$3} 130# { printf "/^%s *=/s/%s/0/\n",$1,$3}
109# 131#
@@ -115,6 +137,8 @@
115s/@PACKAGE@/emacs/ 137s/@PACKAGE@/emacs/
116/^am__cd *=/c\ 138/^am__cd *=/c\
117am__cd = cd 139am__cd = cd
140/^@BUILDING_FOR_WINDOWSNT_TRUE@/s/@[^@\n]*@/#/
141/^@BUILDING_FOR_WINDOWSNT_FALSE@/s/@[^@\n]*@//
118/^ALLOCA *=/s/@[^@\n]*@// 142/^ALLOCA *=/s/@[^@\n]*@//
119/^ALSA_CFLAGS *=/s/@[^@\n]*@// 143/^ALSA_CFLAGS *=/s/@[^@\n]*@//
120/^ALSA_LIBS *=/s/@[^@\n]*@// 144/^ALSA_LIBS *=/s/@[^@\n]*@//
@@ -133,6 +157,7 @@ am__cd = cd
133/^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@// 157/^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@//
134/^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@// 158/^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@//
135/^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@// 159/^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
160/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
136/^GNULIB_WARN_CFLAGS *=/s/@GNULIB_WARN_CFLAGS@// 161/^GNULIB_WARN_CFLAGS *=/s/@GNULIB_WARN_CFLAGS@//
137/^WARN_CFLAGS *=/s/@WARN_CFLAGS@// 162/^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
138/^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@// 163/^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
@@ -152,303 +177,86 @@ am__cd = cd
152/^BITSIZEOF_WINT_T *=/s/@BITSIZEOF_WINT_T@/32/ 177/^BITSIZEOF_WINT_T *=/s/@BITSIZEOF_WINT_T@/32/
153/^APPLE_UNIVERSAL_BUILD *=/s/@APPLE_UNIVERSAL_BUILD@/0/ 178/^APPLE_UNIVERSAL_BUILD *=/s/@APPLE_UNIVERSAL_BUILD@/0/
154# 179#
155# Some GNULIB_* are replaced with zero even though DJGPP does not have 180# Most GNULIB_* are replaced with zero even though DJGPP does not have
156# these features. That's because the gnulib replacements cannot 181# these features. That's because the gnulib replacements cannot
157# possibly work for DJGPP, so we prefer to fail the link than have a 182# possibly work for DJGPP, so we prefer to fail the link than have a
158# subtly botched executable. 183# subtly botched executable. Those replacements that _are_ needed
184# should be before the last catch-all rule.
159/^GNULIB_ATOLL *=/s/@GNULIB_ATOLL@/1/ 185/^GNULIB_ATOLL *=/s/@GNULIB_ATOLL@/1/
160/^GNULIB_CALLOC_POSIX *=/s/@GNULIB_CALLOC_POSIX@/0/
161/^GNULIB_CANONICALIZE_FILE_NAME *=/s/@GNULIB_CANONICALIZE_FILE_NAME@/0/
162/^GNULIB_CHDIR *=/s/@GNULIB_CHDIR@/0/
163/^GNULIB_CHOWN *=/s/@GNULIB_CHOWN@/0/
164/^GNULIB_CLOSE *=/s/@GNULIB_CLOSE@/0/
165/^GNULIB_DPRINTF *=/s/@GNULIB_DPRINTF@/0/
166/^GNULIB_DUP *=/s/@GNULIB_DUP@/0/
167/^GNULIB_DUP2 *=/s/@GNULIB_DUP2@/0/
168/^GNULIB_DUP3 *=/s/@GNULIB_DUP3@/1/ 186/^GNULIB_DUP3 *=/s/@GNULIB_DUP3@/1/
169/^GNULIB_ENVIRON *=/s/@GNULIB_ENVIRON@/1/ 187/^GNULIB_ENVIRON *=/s/@GNULIB_ENVIRON@/1/
170/^GNULIB_EUIDACCESS *=/s/@GNULIB_EUIDACCESS@/0/ 188/^GNULIB_FDATASYNC *=/s/@GNULIB_FDATASYNC@/1/
171/^GNULIB_FACCESSAT *=/s/@GNULIB_FACCESSAT@/0/
172/^GNULIB_FCHDIR *=/s/@GNULIB_FCHDIR@/0/
173/^GNULIB_FCHOWNAT *=/s/@GNULIB_FCHOWNAT@/0/
174/^GNULIB_FCHMODAT *=/s/@GNULIB_FCHMODAT@/0/
175/^GNULIB_FCLOSE *=/s/@GNULIB_FCLOSE@/0/
176/^GNULIB_FDATASYNC *=/s/@GNULIB_FDATASYNC@/0/
177/^GNULIB_FDOPEN *=/s/@GNULIB_FDOPEN@/0/
178/^GNULIB_FFLUSH *=/s/@GNULIB_FFLUSH@/0/
179/^GNULIB_FGETC *=/s/@GNULIB_FGETC@/0/
180/^GNULIB_FGETS *=/s/@GNULIB_FGETS@/0/
181/^GNULIB_FOPEN *=/s/@GNULIB_FOPEN@/0/
182/^GNULIB_FPRINTF *=/s/@GNULIB_FPRINTF@/0/
183/^GNULIB_FPRINTF_POSIX *=/s/@GNULIB_FPRINTF_POSIX@/0/
184/^GNULIB_FPURGE *=/s/@GNULIB_FPURGE@/0/
185/^GNULIB_FPUTC *=/s/@GNULIB_FPUTC@/0/
186/^GNULIB_FPUTS *=/s/@GNULIB_FPUTS@/0/
187/^GNULIB_FREAD *=/s/@GNULIB_FREAD@/0/
188/^GNULIB_FREOPEN *=/s/@GNULIB_FREOPEN@/0/
189/^GNULIB_FSCANF *=/s/@GNULIB_FSCANF@/0/
190/^GNULIB_FSEEK *=/s/@GNULIB_FSEEK@/0/
191/^GNULIB_FSEEKO *=/s/@GNULIB_FSEEKO@/0/
192/^GNULIB_FSTAT *=/s/@GNULIB_FSTAT@/0/
193/^GNULIB_FSTATAT *=/s/@GNULIB_FSTATAT@/0/
194/^GNULIB_FSYNC *=/s/@GNULIB_FSYNC@/0/
195/^GNULIB_FTELL *=/s/@GNULIB_FTELL@/0/
196/^GNULIB_FTELLO *=/s/@GNULIB_FTELLO@/0/
197/^GNULIB_FTRUNCATE *=/s/@GNULIB_FTRUNCATE@/0/
198/^GNULIB_FUTIMENS *=/s/@GNULIB_FUTIMENS@/0/
199/^GNULIB_FWRITE *=/s/@GNULIB_FWRITE@/0/
200/^GNULIB_GETC *=/s/@GNULIB_GETC@/0/
201/^GNULIB_GETCHAR *=/s/@GNULIB_GETCHAR@/0/
202/^GNULIB_GETCWD *=/s/@GNULIB_GETCWD@/0/
203/^GNULIB_GETDELIM *=/s/@GNULIB_GETDELIM@/0/
204/^GNULIB_GETDOMAINNAME *=/s/@GNULIB_GETDOMAINNAME@/0/
205/^GNULIB_GETDTABLESIZE *=/s/@GNULIB_GETDTABLESIZE@/0/
206/^GNULIB_GETGROUPS *=/s/@GNULIB_GETGROUPS@/0/
207/^GNULIB_GETHOSTNAME *=/s/@GNULIB_GETHOSTNAME@/0/
208/^GNULIB_GETLINE *=/s/@GNULIB_GETLINE@/0/
209/^GNULIB_GETLOADAVG *=/s/@GNULIB_GETLOADAVG@/1/ 189/^GNULIB_GETLOADAVG *=/s/@GNULIB_GETLOADAVG@/1/
210/^GNULIB_GETLOGIN *=/s/@GNULIB_GETLOGIN@/0/
211/^GNULIB_GETLOGIN_R *=/s/@GNULIB_GETLOGIN_R@/0/
212/^GNULIB_GETPAGESIZE *=/s/@GNULIB_GETPAGESIZE@/0/
213/^GNULIB_GL_UNISTD_H_GETOPT *=/s/@GNULIB_GL_UNISTD_H_GETOPT@/1/ 190/^GNULIB_GL_UNISTD_H_GETOPT *=/s/@GNULIB_GL_UNISTD_H_GETOPT@/1/
214/^GNULIB_GETSUBOPT *=/s/@GNULIB_GETSUBOPT@/0/ 191/^GNULIB_MEMRCHR *=/s/@GNULIB_MEMRCHR@/1/
215/^GNULIB_GETTIMEOFDAY *=/s/@GNULIB_GETTIMEOFDAY@/0/ 192/^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/1/
216/^GNULIB_GETUSERSHELL *=/s/@GNULIB_GETUSERSHELL@/0/
217/^GNULIB_GRANTPT *=/s/@GNULIB_GRANTPT@/0/
218/^GNULIB_GROUP_MEMBER *=/s/@GNULIB_GROUP_MEMBER@/0/
219/^GNULIB_ISATTY *=/s/@GNULIB_ISATTY@/0/
220/^GNULIB_LCHMOD *=/s/@GNULIB_LCHMOD@/0/
221/^GNULIB_LCHOWN *=/s/@GNULIB_LCHOWN@/0/
222/^GNULIB_LINK *=/s/@GNULIB_LINK@/0/
223/^GNULIB_LINKAT *=/s/@GNULIB_LINKAT@/0/
224/^GNULIB_LSEEK *=/s/@GNULIB_LSEEK@/0/
225/^GNULIB_LSTAT *=/s/@GNULIB_LSTAT@/0/
226/^GNULIB_MALLOC_POSIX *=/s/@GNULIB_MALLOC_POSIX@/0/
227/^GNULIB_MBTOWC *=/s/@GNULIB_MBTOWC@/0/
228/^GNULIB_MKDIRAT *=/s/@GNULIB_MKDIRAT@/0/
229/^GNULIB_MKDTEMP *=/s/@GNULIB_MKDTEMP@/0/
230/^GNULIB_MKFIFO *=/s/@GNULIB_MKFIFO@/0/
231/^GNULIB_MKFIFOAT *=/s/@GNULIB_MKFIFOAT@/0/
232/^GNULIB_MKNOD *=/s/@GNULIB_MKNOD@/0/
233/^GNULIB_MKNODAT *=/s/@GNULIB_MKNODAT@/0/
234/^GNULIB_MKOSTEMP *=/s/@GNULIB_MKOSTEMP@/0/
235/^GNULIB_MKOSTEMPS *=/s/@GNULIB_MKOSTEMPS@/0/
236/^GNULIB_MKSTEMP *=/s/@GNULIB_MKSTEMP@/0/
237/^GNULIB_MKSTEMPS *=/s/@GNULIB_MKSTEMPS@/0/
238/^GNULIB_MKTIME *=/s/@GNULIB_MKTIME@/0/
239/^GNULIB_NANOSLEEP *=/s/@GNULIB_NANOSLEEP@/0/
240/^GNULIB_OBSTACK_PRINTF *=/s/@GNULIB_OBSTACK_PRINTF@/0/
241/^GNULIB_OBSTACK_PRINTF_POSIX *=/s/@GNULIB_OBSTACK_PRINTF_POSIX@/0/
242/^GNULIB_PCLOSE *=/s/@GNULIB_PCLOSE@/0/
243/^GNULIB_PERROR *=/s/@GNULIB_PERROR@/0/
244/^GNULIB_PIPE *=/s/@GNULIB_PIPE@/0/
245/^GNULIB_PIPE2 *=/s/@GNULIB_PIPE2@/0/
246/^GNULIB_POPEN *=/s/@GNULIB_POPEN@/0/
247/^GNULIB_POSIX_OPENPT *=/s/@GNULIB_POSIX_OPENPT@/0/
248/^GNULIB_PREAD *=/s/@GNULIB_PREAD@/0/
249/^GNULIB_PRINTF *=/s/@GNULIB_PRINTF@/0/
250/^GNULIB_PRINTF_POSIX *=/s/@GNULIB_PRINTF_POSIX@/0/
251/^GNULIB_PSELECT *=/s/@GNULIB_PSELECT@/0/
252/^GNULIB_PTHREAD_SIGMASK *=/s/@GNULIB_PTHREAD_SIGMASK@/0/
253/^GNULIB_PTSNAME *=/s/@GNULIB_PTSNAME@/0/
254/^GNULIB_PTSNAME_R *=/s/@GNULIB_PTSNAME_R@/0/
255/^GNULIB_PUTC *=/s/@GNULIB_PUTC@/0/
256/^GNULIB_PUTCHAR *=/s/@GNULIB_PUTCHAR@/0/
257/^GNULIB_PUTENV *=/s/@GNULIB_PUTENV@/0/
258/^GNULIB_PUTS *=/s/@GNULIB_PUTS@/0/
259/^GNULIB_PWRITE *=/s/@GNULIB_PWRITE@/0/
260/^GNULIB_RAISE *=/s/@GNULIB_RAISE@/0/
261/^GNULIB_RANDOM *=/s/@GNULIB_RANDOM@/0/
262/^GNULIB_RANDOM_R *=/s/@GNULIB_RANDOM_R@/0/
263/^GNULIB_READ *=/s/@GNULIB_READ@/0/
264/^GNULIB_READLINK *=/s/@GNULIB_READLINK@/0/
265/^GNULIB_READLINKAT *=/s/@GNULIB_READLINKAT@/0/
266/^GNULIB_REALLOC_POSIX *=/s/@GNULIB_REALLOC_POSIX@/0/
267/^GNULIB_REALPATH *=/s/@GNULIB_REALPATH@/0/
268/^GNULIB_REMOVE *=/s/@GNULIB_REMOVE@/0/
269/^GNULIB_RENAME *=/s/@GNULIB_RENAME@/0/
270/^GNULIB_RENAMEAT *=/s/@GNULIB_RENAMEAT@/0/
271/^GNULIB_RMDIR *=/s/@GNULIB_RMDIR@/0/
272/^GNULIB_RPMATCH *=/s/@GNULIB_RPMATCH@/0/
273/^GNULIB_SCANF *=/s/@GNULIB_SCANF@/0/
274/^GNULIB_SECURE_GETENV *=/s/@GNULIB_SECURE_GETENV@/0/
275/^GNULIB_SELECT *=/s/@GNULIB_SELECT@/0/
276/^GNULIB_SETENV *=/s/@GNULIB_SETENV@/0/
277/^GNULIB_SETHOSTNAME *=/s/@GNULIB_SETHOSTNAME@/0/
278/^GNULIB_SIGACTION *=/s/@GNULIB_SIGACTION@/0/
279/^GNULIB_SIGNAL_H_SIGPIPE *=/s/@GNULIB_SIGNAL_H_SIGPIPE@/0/
280/^GNULIB_SIGPROCMASK *=/s/@GNULIB_SIGPROCMASK@/0/
281/^GNULIB_SLEEP *=/s/@GNULIB_SLEEP@/0/
282/^GNULIB_SNPRINTF *=/s/@GNULIB_SNPRINTF@/0/
283/^GNULIB_SPRINTF_POSIX *=/s/@GNULIB_SPRINTF_POSIX@/0/
284/^GNULIB_STAT *=/s/@GNULIB_STAT@/0/
285/^GNULIB_STDIO_H_NONBLOCKING *=/s/@GNULIB_STDIO_H_NONBLOCKING@/0/
286/^GNULIB_STDIO_H_SIGPIPE *=/s/@GNULIB_STDIO_H_SIGPIPE@/0/
287/^GNULIB_STRPTIME *=/s/@GNULIB_STRPTIME@/0/
288/^GNULIB_STRTOD *=/s/@GNULIB_STRTOD@/0/
289/^GNULIB_STRTOLL *=/s/@GNULIB_STRTOLL@/0/
290/^GNULIB_STRTOULL *=/s/@GNULIB_STRTOULL@/0/
291/^GNULIB_SYMLINK *=/s/@GNULIB_SYMLINK@/0/
292/^GNULIB_SYMLINKAT *=/s/@GNULIB_SYMLINKAT@/0/
293/^GNULIB_SYSTEM_POSIX *=/s/@GNULIB_SYSTEM_POSIX@/0/
294/^GNULIB_TIMEGM *=/s/@GNULIB_TIMEGM@/0/
295/^GNULIB_TIME_R *=/s/@GNULIB_TIME_R@/1/ 193/^GNULIB_TIME_R *=/s/@GNULIB_TIME_R@/1/
296/^GNULIB_TMPFILE *=/s/@GNULIB_TMPFILE@/0/
297/^GNULIB_TTYNAME_R *=/s/@GNULIB_TTYNAME_R@/0/
298/^GNULIB_UNISTD_H_NONBLOCKING *=/s/@GNULIB_UNISTD_H_NONBLOCKING@/0/
299/^GNULIB_UNISTD_H_SIGPIPE *=/s/@GNULIB_UNISTD_H_SIGPIPE@/0/
300/^GNULIB_UNLINK *=/s/@GNULIB_UNLINK@/0/
301/^GNULIB_UNLINKAT *=/s/@GNULIB_UNLINKAT@/0/
302/^GNULIB_UNLOCKPT *=/s/@GNULIB_UNLOCKPT@/0/
303/^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/ 194/^GNULIB_UNSETENV *=/s/@GNULIB_UNSETENV@/1/
304/^GNULIB_USLEEP *=/s/@GNULIB_USLEEP@/0/ 195/^GNULIB_[^ =]* *= *@/s/@[^@\n]*@/0/
305/^GNULIB_UTIMENSAT *=/s/@GNULIB_UTIMENSAT@/0/
306/^GNULIB_VASPRINTF *=/s/@GNULIB_VASPRINTF@/0/
307/^GNULIB_VDPRINTF *=/s/@GNULIB_VDPRINTF@/0/
308/^GNULIB_VFPRINTF *=/s/@GNULIB_VFPRINTF@/0/
309/^GNULIB_VFPRINTF_POSIX *=/s/@GNULIB_VFPRINTF_POSIX@/0/
310/^GNULIB_VFSCANF *=/s/@GNULIB_VFSCANF@/0/
311/^GNULIB_VPRINTF *=/s/@GNULIB_VPRINTF@/0/
312/^GNULIB_VPRINTF_POSIX *=/s/@GNULIB_VPRINTF_POSIX@/0/
313/^GNULIB_VSCANF *=/s/@GNULIB_VSCANF@/0/
314/^GNULIB_VSNPRINTF *=/s/@GNULIB_VSNPRINTF@/0/
315/^GNULIB_VSPRINTF_POSIX *=/s/@GNULIB_VSPRINTF_POSIX@/0/
316/^GNULIB_WCTOMB *=/s/@GNULIB_WCTOMB@/0/
317/^GNULIB_WRITE *=/s/@GNULIB_WRITE@/0/
318/^GNULIB__EXIT *=/s/@GNULIB__EXIT@/0/
319/^GSETTINGS_CFLAGS *=/s/@[^@\n]*@// 196/^GSETTINGS_CFLAGS *=/s/@[^@\n]*@//
320/^GSETTINGS_LIBS *=/s/@[^@\n]*@// 197/^GSETTINGS_LIBS *=/s/@[^@\n]*@//
198#
199# Edit the HAVE_foo variables
321/^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/ 200/^HAVE_ATOLL *=/s/@HAVE_ATOLL@/0/
322/^HAVE_CANONICALIZE_FILE_NAME *=/s/@HAVE_CANONICALIZE_FILE_NAME@/0/
323/^HAVE_CHOWN *=/s/@HAVE_CHOWN@/1/ 201/^HAVE_CHOWN *=/s/@HAVE_CHOWN@/1/
324/^HAVE_DECL_ENVIRON *=/s/@HAVE_DECL_ENVIRON@/0/ 202/^HAVE_CLOSEDIR *=/s/@HAVE_CLOSEDIR@/1/
325/^HAVE_DECL_FCHDIR *=/s/@HAVE_DECL_FCHDIR@/0/
326/^HAVE_DECL_FDATASYNC *=/s/@HAVE_DECL_FDATASYNC@/0/
327/^HAVE_DECL_FPURGE *=/s/@HAVE_DECL_FPURGE@//
328/^HAVE_DECL_FSEEKO *=/s/@HAVE_DECL_FSEEKO@/0/
329/^HAVE_DECL_FTELLO *=/s/@HAVE_DECL_FTELLO@/0/
330/^HAVE_DECL_GETDELIM *=/s/@HAVE_DECL_GETDELIM@/0/
331/^HAVE_DECL_GETDOMAINNAME *=/s/@HAVE_DECL_GETDOMAINNAME@/0/
332/^HAVE_DECL_GETLINE *=/s/@HAVE_DECL_GETLINE@/0/
333/^HAVE_DECL_GETLOADAVG *=/s/@HAVE_DECL_GETLOADAVG@/0/
334/^HAVE_DECL_GETLOGIN_R *=/s/@HAVE_DECL_GETLOGIN_R@/0/
335/^HAVE_DECL_GETPAGESIZE *=/s/@HAVE_DECL_GETPAGESIZE@/1/ 203/^HAVE_DECL_GETPAGESIZE *=/s/@HAVE_DECL_GETPAGESIZE@/1/
336/^HAVE_DECL_GETUSERSHELL *=/s/@HAVE_DECL_GETUSERSHELL@/0/
337/^HAVE_DECL_LOCALTIME_R *=/s/@HAVE_DECL_LOCALTIME_R@/0/
338/^HAVE_DECL_OBSTACK_PRINTF *=/s/@HAVE_DECL_OBSTACK_PRINTF@/0/
339/^HAVE_DECL_SETHOSTNAME *=/s/@HAVE_DECL_SETHOSTNAME@/0/
340/^HAVE_DECL_SETENV *=/s/@HAVE_DECL_SETENV@/1/ 204/^HAVE_DECL_SETENV *=/s/@HAVE_DECL_SETENV@/1/
341/^HAVE_DECL_SNPRINTF *=/s/@HAVE_DECL_SNPRINTF@/0/ 205/^HAVE_DECL_STRDUP *=/s/@HAVE_DECL_STRDUP@/1/
342/^HAVE_DECL_TTYNAME_R *=/s/@HAVE_DECL_TTYNAME_R@/0/ 206# The following two rely on msdos/inttypes.h redirections
343/^HAVE_DECL_UNSETENV *=/s/@HAVE_DECL_UNSETENV@/0/ 207/^HAVE_DECL_STRTOIMAX *=/s/@HAVE_DECL_STRTOIMAX@/1/
344/^HAVE_DECL_VSNPRINTF *=/s/@HAVE_DECL_VSNPRINTF@/0/ 208/^HAVE_DECL_STRTOUMAX *=/s/@HAVE_DECL_STRTOUMAX@/1/
345/^HAVE_DPRINTF *=/s/@HAVE_DPRINTF@/0/ 209/^HAVE_DIRENT_H *=/s/@HAVE_DIRENT_H@/1/
346/^HAVE_DUP2 *=/s/@HAVE_DUP2@/1/ 210/^HAVE_DUP2 *=/s/@HAVE_DUP2@/1/
347/^HAVE_DUP3 *=/s/@HAVE_DUP3@/0/
348/^HAVE_EUIDACCESS *=/s/@HAVE_EUIDACCESS@/0/
349/^HAVE_FACCESSAT *=/s/@HAVE_FACCESSAT@/0/
350/^HAVE_FCHDIR *=/s/@HAVE_FCHDIR@/0/
351/^HAVE_FCHMODAT *=/s/@HAVE_FCHMODAT@/0/
352/^HAVE_FCHOWNAT *=/s/@HAVE_FCHOWNAT@/0/
353/^HAVE_FDATASYNC *=/s/@HAVE_FDATASYNC@/0/
354/^HAVE_FSEEKO *=/s/@HAVE_FSEEKO@/0/
355/^HAVE_FSTATAT *=/s/@HAVE_FSTATAT@/0/
356/^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/ 211/^HAVE_FSYNC *=/s/@HAVE_FSYNC@/1/
357/^HAVE_FTELLO *=/s/@HAVE_FTELLO@/0/
358/^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/ 212/^HAVE_FTRUNCATE *=/s/@HAVE_FTRUNCATE@/1/
359/^HAVE_FUTIMENS *=/s/@HAVE_FUTIMENS@/0/
360/^HAVE_GETDTABLESIZE *=/s/@HAVE_GETDTABLESIZE@/0/
361/^HAVE_GETGROUPS *=/s/@HAVE_GETGROUPS@/0/
362/^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/ 213/^HAVE_GETHOSTNAME *=/s/@HAVE_GETHOSTNAME@/1/
363/^HAVE_GETLOGIN *=/s/@HAVE_GETLOGIN@/1/ 214/^HAVE_GETLOGIN *=/s/@HAVE_GETLOGIN@/1/
364/^HAVE_GETOPT_H *=/s/@HAVE_GETOPT_H@/0/
365/^HAVE_GETPAGESIZE *=/s/@HAVE_GETPAGESIZE@/1/ 215/^HAVE_GETPAGESIZE *=/s/@HAVE_GETPAGESIZE@/1/
366/^HAVE_GETSUBOPT *=/s/@HAVE_GETSUBOPT@/0/
367/^HAVE_GRANTPT *=/s/@HAVE_GRANTPT@/0/
368/^HAVE_GROUP_MEMBER *=/s/@HAVE_GROUP_MEMBER@/0/
369/^HAVE_LCHOWN *=/s/@HAVE_LCHOWN@/0/
370/^HAVE_INTTYPES_H *=/s/@HAVE_INTTYPES_H@/HAVE_INTTYPES_H/ 216/^HAVE_INTTYPES_H *=/s/@HAVE_INTTYPES_H@/HAVE_INTTYPES_H/
371/^HAVE_LCHMOD *=/s/@HAVE_LCHMOD@/0/
372/^HAVE_LINK *=/s/@HAVE_LINK@/1/ 217/^HAVE_LINK *=/s/@HAVE_LINK@/1/
373/^HAVE_LINKAT *=/s/@HAVE_LINKAT@/0/
374/^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/ 218/^HAVE_LONG_LONG_INT *=/s/@HAVE_LONG_LONG_INT@/1/
375/^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/ 219/^HAVE_LSTAT *=/s/@HAVE_LSTAT@/HAVE_LSTAT/
376/^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/ 220/^HAVE_MAKEINFO *=/s/@HAVE_MAKEINFO@/yes/
377/^HAVE_MKDIRAT *=/s/@HAVE_MKDIRAT@/0/ 221/^HAVE_MEMCHR *=/s/@HAVE_MEMCHR@/1/
378/^HAVE_MKDTEMP *=/s/@HAVE_MKDTEMP@/0/
379/^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/ 222/^HAVE_MKFIFO *=/s/@HAVE_MKFIFO@/1/
380/^HAVE_MKFIFOAT *=/s/@HAVE_MKFIFOAT@/0/
381/^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/ 223/^HAVE_MKNOD *=/s/@HAVE_MKNOD@/1/
382/^HAVE_MKNODAT *=/s/@HAVE_MKNODAT@/0/
383/^HAVE_MKOSTEMP *=/s/@HAVE_MKOSTEMP@/0/
384/^HAVE_MKOSTEMPS *=/s/@HAVE_MKOSTEMPS@/0/
385/^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/ 224/^HAVE_MKSTEMP *=/s/@HAVE_MKSTEMP@/1/
386/^HAVE_MKSTEMPS *=/s/@HAVE_MKSTEMPS@/0/ 225/^HAVE_OPENDIR *=/s/@HAVE_OPENDIR@/1/
387/^HAVE_NANOSLEEP *=/s/@HAVE_NANOSLEEP@/0/
388/^HAVE_OS_H *=/s/@HAVE_OS_H@/0/
389/^HAVE_PIPE *=/s/@HAVE_PIPE@/0/
390/^HAVE_PCLOSE *=/s/@HAVE_PCLOSE@/1/ 226/^HAVE_PCLOSE *=/s/@HAVE_PCLOSE@/1/
391/^HAVE_PIPE2 *=/s/@HAVE_PIPE2@/0/
392/^HAVE_POPEN *=/s/@HAVE_POPEN@/1/ 227/^HAVE_POPEN *=/s/@HAVE_POPEN@/1/
393/^HAVE_POSIX_SIGNALBLOCKING *=/s/@HAVE_POSIX_SIGNALBLOCKING@/1/ 228/^HAVE_POSIX_SIGNALBLOCKING *=/s/@HAVE_POSIX_SIGNALBLOCKING@/1/
394/^HAVE_POSIX_OPENPT *=/s/@HAVE_POSIX_OPENPT@/0/
395/^HAVE_PREAD *=/s/@HAVE_PREAD@/0/
396/^HAVE_PTSNAME *=/s/@HAVE_PTSNAME@/0/
397/^HAVE_PTSNAME_R *=/s/@HAVE_PTSNAME_R@/0/
398/^HAVE_PTHREAD_SIGMASK *=/s/@HAVE_PTHREAD_SIGMASK@/0/
399/^HAVE_PWRITE *=/s/@HAVE_PWRITE@/0/
400/^HAVE_RANDOM_H *=/s/@HAVE_RANDOM_H@/1/ 229/^HAVE_RANDOM_H *=/s/@HAVE_RANDOM_H@/1/
401/^HAVE_RAISE *=/s/@HAVE_RAISE@/1/ 230/^HAVE_RAISE *=/s/@HAVE_RAISE@/1/
402/^HAVE_RANDOM *=/s/@HAVE_RANDOM@/1/ 231/^HAVE_RANDOM *=/s/@HAVE_RANDOM@/1/
403/^HAVE_RANDOM_R *=/s/@HAVE_RANDOM_R@/0/ 232/^HAVE_READDIR *=/s/@HAVE_READDIR@/1/
404/^HAVE_READLINK *=/s/@HAVE_READLINK@/0/ 233/^HAVE_REWINDDIR *=/s/@HAVE_REWINDDIR@/1/
405/^HAVE_READLINKAT *=/s/@HAVE_READLINKAT@/0/
406/^HAVE_REALPATH *=/s/@HAVE_REALPATH@/0/
407/^HAVE_RENAMEAT *=/s/@HAVE_RENAMEAT@/0/
408/^HAVE_RPMATCH *=/s/@HAVE_RPMATCH@/0/
409/^HAVE_SECURE_GETENV *=/s/@HAVE_SECURE_GETENV@/0/
410/^HAVE_SETENV *=/s/@HAVE_SETENV@/1/ 234/^HAVE_SETENV *=/s/@HAVE_SETENV@/1/
411/^HAVE_SETHOSTNAME *=/s/@HAVE_SETHOSTNAME@/0/
412/^HAVE_SIGACTION *=/s/@HAVE_SIGACTION@/1/ 235/^HAVE_SIGACTION *=/s/@HAVE_SIGACTION@/1/
413/^HAVE_SIGHANDLER_T *=/s/@HAVE_SIGHANDLER_T@/0/
414/^HAVE_SIGINFO_T *=/s/@HAVE_SIGINFO_T@/0/
415/^HAVE_SIGNED_SIG_ATOMIC_T *=/s/@HAVE_SIGNED_SIG_ATOMIC_T@/1/ 236/^HAVE_SIGNED_SIG_ATOMIC_T *=/s/@HAVE_SIGNED_SIG_ATOMIC_T@/1/
416/^HAVE_SIGNED_WCHAR_T *=/s/@HAVE_SIGNED_WCHAR_T@/0/
417/^HAVE_SIGNED_WINT_T *=/s/@HAVE_SIGNED_WINT_T@/1/ 237/^HAVE_SIGNED_WINT_T *=/s/@HAVE_SIGNED_WINT_T@/1/
418/^HAVE_SIGSET_T *=/s/@HAVE_SIGSET_T@/1/ 238/^HAVE_SIGSET_T *=/s/@HAVE_SIGSET_T@/1/
419/^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/ 239/^HAVE_SLEEP *=/s/@HAVE_SLEEP@/1/
420/^HAVE_STDINT_H *=/s/@HAVE_STDINT_H@/HAVE_STDINT_H/ 240/^HAVE_STDINT_H *=/s/@HAVE_STDINT_H@/HAVE_STDINT_H/
421/^HAVE_STRPTIME *=/s/@HAVE_STRPTIME@/0/ 241/^HAVE_STRPBRK *=/s/@HAVE_STRPBRK@/1/
242/^HAVE_STRSEP *=/s/@HAVE_STRSEP@/1/
422/^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/ 243/^HAVE_STRTOD *=/s/@HAVE_STRTOD@/1/
423/^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/ 244/^HAVE_STRTOLL *=/s/@HAVE_STRTOLL@/1/
424/^HAVE_STRTOULL *=/s/@HAVE_STRTOULL@/1/ 245/^HAVE_STRTOULL *=/s/@HAVE_STRTOULL@/1/
425/^HAVE_STRUCT_SIGACTION_SA_SIGACTION *=/s/@HAVE_STRUCT_SIGACTION_SA_SIGACTION@/0/
426/^HAVE_STRUCT_RANDOM_DATA *=/s/@HAVE_STRUCT_RANDOM_DATA@/0/
427/^HAVE_STRUCT_TIMEVAL *=/s/@HAVE_STRUCT_TIMEVAL@/1/ 246/^HAVE_STRUCT_TIMEVAL *=/s/@HAVE_STRUCT_TIMEVAL@/1/
428/^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/ 247/^HAVE_SYMLINK *=/s/@HAVE_SYMLINK@/1/
429/^HAVE_SYMLINKAT *=/s/@HAVE_SYMLINKAT@/0/
430/^HAVE_SYS_BITYPES_H *=/s/@HAVE_SYS_BITYPES_H@/0/
431/^HAVE_SYS_INTTYPES_H *=/s/@HAVE_SYS_INTTYPES_H@/0/
432/^HAVE_SYS_LOADAVG_H *=/s/@HAVE_SYS_LOADAVG_H@/0/
433/^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/ 248/^HAVE_SYS_PARAM_H *=/s/@HAVE_SYS_PARAM_H@/1/
434/^HAVE_SYS_SELECT_H *=/s/@HAVE_SYS_SELECT_H@/0/
435/^HAVE_SYS_TIME_H *=/s/@HAVE_SYS_TIME_H@/1/ 249/^HAVE_SYS_TIME_H *=/s/@HAVE_SYS_TIME_H@/1/
436/^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/ 250/^HAVE_SYS_TYPES_H *=/s/@HAVE_SYS_TYPES_H@/1/
437/^HAVE_TIMEGM *=/s/@HAVE_TIMEGM@/0/
438/^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T *=/s/@HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@/1/ 251/^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T *=/s/@HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@/1/
439/^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/ 252/^HAVE_UNISTD_H *=/s/@HAVE_UNISTD_H@/1/
440/^HAVE_UNLINKAT *=/s/@HAVE_UNLINKAT@/0/
441/^HAVE_UNLOCKPT *=/s/@HAVE_UNLOCKPT@/0/
442/^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/ 253/^HAVE_UNSIGNED_LONG_LONG_INT *=/s/@HAVE_UNSIGNED_LONG_LONG_INT@/1/
443/^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/ 254/^HAVE_USLEEP *=/s/@HAVE_USLEEP@/1/
444/^HAVE_UTIMENSAT *=/s/@HAVE_UTIMENSAT@/0/
445/^HAVE_VASPRINTF *=/s/@HAVE_VASPRINTF@/0/
446/^HAVE_VDPRINTF *=/s/@HAVE_VDPRINTF@/0/
447/^HAVE_WCHAR_H *=/s/@HAVE_WCHAR_H@/1/ 255/^HAVE_WCHAR_H *=/s/@HAVE_WCHAR_H@/1/
448/^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/ 256/^HAVE_WCHAR_T *=/s/@HAVE_WCHAR_T@/1/
449/^HAVE_XSERVER *=/s/@HAVE_XSERVER@/0/
450/^HAVE__BOOL *=/s/@HAVE__BOOL@/1/ 257/^HAVE__BOOL *=/s/@HAVE__BOOL@/1/
451/^HAVE__EXIT *=/s/@HAVE__EXIT@/1/ 258/^HAVE__EXIT *=/s/@HAVE__EXIT@/1/
259/^HAVE_[^ =]* *= *@/s/@[^@\n]*@/0/
452/^INCLUDE_NEXT *=/s/@INCLUDE_NEXT@/include_next/ 260/^INCLUDE_NEXT *=/s/@INCLUDE_NEXT@/include_next/
453/^INCLUDE_NEXT_AS_FIRST_DIRECTIVE *=/s/@[^@\n]*@/include_next/ 261/^INCLUDE_NEXT_AS_FIRST_DIRECTIVE *=/s/@[^@\n]*@/include_next/
454/^LDFLAGS *=/s/@[^@\n]*@// 262/^LDFLAGS *=/s/@[^@\n]*@//
@@ -459,6 +267,9 @@ am__cd = cd
459/^MAKEINFO *=/s/@MAKEINFO@/makeinfo/ 267/^MAKEINFO *=/s/@MAKEINFO@/makeinfo/
460# MKDIR_P lines are edited further below 268# MKDIR_P lines are edited further below
461/^MKDIR_P *=/s/@MKDIR_P@// 269/^MKDIR_P *=/s/@MKDIR_P@//
270/^NEXT_AS_FIRST_DIRECTIVE_DIRENT_H *=/s/@[^@\n]*@/<dirent.h>/
271/^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H *=/s/@[^@\n]*@//
272/^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H *=/s/@[^@\n]*@/<fcntl.h>/
462/^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ 273/^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/
463/^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H *=/s/@[^@\n]*@/<signal.h>/ 274/^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H *=/s/@[^@\n]*@/<signal.h>/
464/^NEXT_AS_FIRST_DIRECTIVE_STDARG_H *=/s/@[^@\n]*@// 275/^NEXT_AS_FIRST_DIRECTIVE_STDARG_H *=/s/@[^@\n]*@//
@@ -466,12 +277,16 @@ am__cd = cd
466/^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/ 277/^NEXT_AS_FIRST_DIRECTIVE_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/
467/^NEXT_AS_FIRST_DIRECTIVE_STDIO_H *=/s/@[^@\n]*@/<stdio.h>/ 278/^NEXT_AS_FIRST_DIRECTIVE_STDIO_H *=/s/@[^@\n]*@/<stdio.h>/
468/^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ 279/^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/
280/^NEXT_AS_FIRST_DIRECTIVE_STRING_H *=/s/@[^@\n]*@/<string.h>/
469/^NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H *=/s/@[^@\n]*@// 281/^NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H *=/s/@[^@\n]*@//
470/^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>! 282/^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>!
471/^NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H *=/s/@[^@\n]*@// 283/^NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H *=/s/@[^@\n]*@//
472/^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H *=/s!@[^@\n]*@!<sys/types.h>! 284/^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H *=/s!@[^@\n]*@!<sys/types.h>!
473/^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@[^@\n]*@/<time.h>/ 285/^NEXT_AS_FIRST_DIRECTIVE_TIME_H *=/s/@[^@\n]*@/<time.h>/
474/^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/ 286/^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H *=/s/@[^@\n]*@/<unistd.h>/
287/^NEXT_DIRENT_H *=/s/@[^@\n]*@/<dirent.h>/
288/^NEXT_ERRNO_H *=/s/@[^@\n]*@//
289/^NEXT_FCNTL_H *=/s/@[^@\n]*@/<fcntl.h>/
475/^NEXT_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/ 290/^NEXT_GETOPT_H *=/s/@[^@\n]*@/<getopt.h>/
476/^NEXT_STDARG_H *=/s/@[^@\n]*@// 291/^NEXT_STDARG_H *=/s/@[^@\n]*@//
477/^NEXT_SIGNAL_H *=/s/@[^@\n]*@/<signal.h>/ 292/^NEXT_SIGNAL_H *=/s/@[^@\n]*@/<signal.h>/
@@ -479,6 +294,7 @@ am__cd = cd
479/^NEXT_STDIO_H *=/s/@[^@\n]*@/<stdio.h>/ 294/^NEXT_STDIO_H *=/s/@[^@\n]*@/<stdio.h>/
480/^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/ 295/^NEXT_STDINT_H *=/s/@[^@\n]*@/<stdint.h>/
481/^NEXT_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/ 296/^NEXT_STDLIB_H *=/s/@[^@\n]*@/<stdlib.h>/
297/^NEXT_STRING_H *=/s/@[^@\n]*@/<string.h>/
482/^NEXT_SYS_SELECT_H *=/s/@[^@\n]*@// 298/^NEXT_SYS_SELECT_H *=/s/@[^@\n]*@//
483/^NEXT_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>! 299/^NEXT_SYS_STAT_H *=/s!@[^@\n]*@!<sys/stat.h>!
484/^NEXT_SYS_TIME_H *=/s/@[^@\n]*@// 300/^NEXT_SYS_TIME_H *=/s/@[^@\n]*@//
@@ -491,104 +307,14 @@ am__cd = cd
491/^PTHREAD_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ 307/^PTHREAD_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/
492/^PTRDIFF_T_SUFFIX *=/s/@[^@\n]*@// 308/^PTRDIFF_T_SUFFIX *=/s/@[^@\n]*@//
493/^RANLIB *=/s/@[^@\n]*@/ranlib/ 309/^RANLIB *=/s/@[^@\n]*@/ranlib/
494/^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/0/ 310# We never want any gnulib replacement functions
495/^REPLACE_CANONICALIZE_FILE_NAME *=/s/@REPLACE_CANONICALIZE_FILE_NAME@/0/ 311/^REPLACE_[^ =]* *= *@/s/@[^@\n]*@/0/
496/^REPLACE_CHOWN *=/s/@REPLACE_CHOWN@/0/
497/^REPLACE_CLOSE *=/s/@REPLACE_CLOSE@/0/
498/^REPLACE_DPRINTF *=/s/@REPLACE_DPRINTF@/0/
499/^REPLACE_DUP *=/s/@REPLACE_DUP@/0/
500/^REPLACE_DUP2 *=/s/@REPLACE_DUP2@/0/
501/^REPLACE_FCHOWNAT *=/s/@REPLACE_FCHOWNAT@/0/
502/^REPLACE_FCLOSE *=/s/@REPLACE_FCLOSE@/0/
503/^REPLACE_FDOPEN *=/s/@REPLACE_FDOPEN@/0/
504/^REPLACE_FFLUSH *=/s/@REPLACE_FFLUSH@/0/
505/^REPLACE_FOPEN *=/s/@REPLACE_FOPEN@/0/
506/^REPLACE_FPRINTF *=/s/@REPLACE_FPRINTF@/0/
507/^REPLACE_FPURGE *=/s/@REPLACE_FPURGE@/0/
508/^REPLACE_FREOPEN *=/s/@REPLACE_FREOPEN@/0/
509/^REPLACE_FSEEK *=/s/@REPLACE_FSEEK@/0/
510/^REPLACE_FSEEKO *=/s/@REPLACE_FSEEKO@/0/
511/^REPLACE_FSTAT *=/s/@REPLACE_FSTAT@/0/
512/^REPLACE_FSTATAT *=/s/@REPLACE_FSTATAT@/0/
513/^REPLACE_FTELL *=/s/@REPLACE_FTELL@/0/
514/^REPLACE_FTELLO *=/s/@REPLACE_FTELLO@/0/
515/^REPLACE_FTRUNCATE *=/s/@REPLACE_FTRUNCATE@/0/
516/^REPLACE_GETCWD *=/s/@REPLACE_GETCWD@/0/
517/^REPLACE_GETDELIM *=/s/@REPLACE_GETDELIM@/0/
518/^REPLACE_GETDOMAINNAME *=/s/@REPLACE_GETDOMAINNAME@/0/
519/^REPLACE_GETGROUPS *=/s/@REPLACE_GETGROUPS@/0/
520/^REPLACE_GETLINE *=/s/@REPLACE_GETLINE@/0/
521/^REPLACE_GETLOGIN_R *=/s/@REPLACE_GETLOGIN_R@/0/
522/^REPLACE_GETPAGESIZE *=/s/@REPLACE_GETPAGESIZE@/0/
523/^REPLACE_GETTIMEOFDAY *=/s/@REPLACE_GETTIMEOFDAY@/0/
524/^REPLACE_ISATTY *=/s/@REPLACE_ISATTY@/0/
525/^REPLACE_LCHOWN *=/s/@REPLACE_LCHOWN@/0/
526/^REPLACE_LINK *=/s/@REPLACE_LINK@/0/
527/^REPLACE_LINKAT *=/s/@REPLACE_LINKAT@/0/
528/^REPLACE_LOCALTIME_R *=/s/@REPLACE_LOCALTIME_R@/0/
529/^REPLACE_LSEEK *=/s/@REPLACE_LSEEK@/0/
530/^REPLACE_LSTAT *=/s/@REPLACE_LSTAT@/0/
531/^REPLACE_MALLOC *=/s/@REPLACE_MALLOC@/0/
532/^REPLACE_MBTOWC *=/s/@REPLACE_MBTOWC@/0/
533/^REPLACE_MKDIR *=/s/@REPLACE_MKDIR@/0/
534/^REPLACE_MKFIFO *=/s/@REPLACE_MKFIFO@/0/
535/^REPLACE_MKNOD *=/s/@REPLACE_MKNOD@/0/
536/^REPLACE_MKSTEMP *=/s/@REPLACE_MKSTEMP@/0/
537/^REPLACE_MKTIME *=/s/@REPLACE_MKTIME@/0/
538/^REPLACE_NANOSLEEP *=/s/@REPLACE_NANOSLEEP@/0/
539/^REPLACE_NULL *=/s/@REPLACE_NULL@/0/
540/^REPLACE_OBSTACK_PRINTF *=/s/@REPLACE_OBSTACK_PRINTF@/0/
541/^REPLACE_PERROR *=/s/@REPLACE_PERROR@/0/
542/^REPLACE_POPEN *=/s/@REPLACE_POPEN@/0/
543/^REPLACE_PREAD *=/s/@REPLACE_PREAD@/0/
544/^REPLACE_PRINTF *=/s/@REPLACE_PRINTF@/0/
545/^REPLACE_PTHREAD_SIGMASK *=/s/@REPLACE_PTHREAD_SIGMASK@/0/
546/^REPLACE_PTSNAME *=/s/@REPLACE_PTSNAME@/0/
547/^REPLACE_PSELECT *=/s/@REPLACE_PSELECT@/0/
548/^REPLACE_PTSNAME *=/s/@REPLACE_PTSNAME@/0/
549/^REPLACE_PTSNAME_R *=/s/@REPLACE_PTSNAME_R@/0/
550/^REPLACE_PUTENV *=/s/@REPLACE_PUTENV@/0/
551/^REPLACE_PWRITE *=/s/@REPLACE_PWRITE@/0/
552/^REPLACE_RANDOM_R *=/s/@REPLACE_RANDOM_R@/0/
553/^REPLACE_READ *=/s/@REPLACE_READ@/0/
554/^REPLACE_RAISE *=/s/@REPLACE_RAISE@/0/
555/^REPLACE_READLINK *=/s/@REPLACE_READLINK@/0/
556/^REPLACE_REALLOC *=/s/@REPLACE_REALLOC@/0/
557/^REPLACE_REALPATH *=/s/@REPLACE_REALPATH@/0/
558/^REPLACE_REMOVE *=/s/@REPLACE_REMOVE@/0/
559/^REPLACE_RENAME *=/s/@REPLACE_RENAME@/0/
560/^REPLACE_RENAMEAT *=/s/@REPLACE_RENAMEAT@/0/
561/^REPLACE_RMDIR *=/s/@REPLACE_RMDIR@/0/
562/^REPLACE_SETENV *=/s/@REPLACE_SETENV@/0/
563/^REPLACE_SLEEP *=/s/@REPLACE_SLEEP@/0/
564/^REPLACE_SNPRINTF *=/s/@REPLACE_SNPRINTF@/0/
565/^REPLACE_SPRINTF *=/s/@REPLACE_SPRINTF@/0/
566/^REPLACE_STAT *=/s/@REPLACE_STAT@/0/
567/^REPLACE_STDIO_READ_FUNCS *=/s/@REPLACE_STDIO_READ_FUNCS@/0/
568/^REPLACE_STDIO_WRITE_FUNCS *=/s/@REPLACE_STDIO_WRITE_FUNCS@/0/
569/^REPLACE_STRTOD *=/s/@REPLACE_STRTOD@/0/
570/^REPLACE_STRTOIMAX *=/s/@REPLACE_STRTOIMAX@/0/
571/^REPLACE_STRUCT_TIMEVAL *=/s/@REPLACE_STRUCT_TIMEVAL@/0/
572/^REPLACE_SYMLINK *=/s/@REPLACE_SYMLINK@/0/
573/^REPLACE_TIMEGM *=/s/@REPLACE_TIMEGM@/0/
574/^REPLACE_TMPFILE *=/s/@REPLACE_TMPFILE@/0/
575/^REPLACE_TTYNAME_R *=/s/@REPLACE_TTYNAME_R@/0/
576/^REPLACE_UNLINK *=/s/@REPLACE_UNLINK@/0/
577/^REPLACE_UNLINKAT *=/s/@REPLACE_UNLINKAT@/0/
578/^REPLACE_UNSETENV *=/s/@REPLACE_UNSETENV@/0/
579/^REPLACE_USLEEP *=/s/@REPLACE_USLEEP@/0/
580/^REPLACE_UTIMENSAT *=/s/@REPLACE_UTIMENSAT@/0/
581/^REPLACE_VASPRINTF *=/s/@REPLACE_VASPRINTF@/0/
582/^REPLACE_VDPRINTF *=/s/@REPLACE_VDPRINTF@/0/
583/^REPLACE_VFPRINTF *=/s/@REPLACE_VFPRINTF@/0/
584/^REPLACE_VPRINTF *=/s/@REPLACE_VPRINTF@/0/
585/^REPLACE_VSNPRINTF *=/s/@REPLACE_VSNPRINTF@/0/
586/^REPLACE_VSPRINTF *=/s/@REPLACE_VSPRINTF@/0/
587/^REPLACE_WCTOMB *=/s/@REPLACE_WCTOMB@/0/
588/^REPLACE_WRITE *=/s/@REPLACE_WRITE@/0/
589/^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@// 312/^SIG_ATOMIC_T_SUFFIX *=/s/@SIG_ATOMIC_T_SUFFIX@//
590/^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/ 313/^SIZE_T_SUFFIX *=/s/@SIZE_T_SUFFIX@/u/
591/^ALLOCA_H *=/s/@[^@\n]*@/alloca.h/ 314/^ALLOCA_H *=/s/@[^@\n]*@/alloca.h/
315/^BYTESWAP_H *=/s/@[^@\n]*@/byteswap.h/
316/^DIRENT_H *=/s/@[^@\n]*@//
317/^ERRNO_H *=/s/@[^@\n]*@//
592/^STDBOOL_H *=/s/@[^@\n]*@// 318/^STDBOOL_H *=/s/@[^@\n]*@//
593/^STDALIGN_H *=/s/@[^@\n]*@/stdalign.h/ 319/^STDALIGN_H *=/s/@[^@\n]*@/stdalign.h/
594/^STDARG_H *=/s/@[^@\n]*@// 320/^STDARG_H *=/s/@[^@\n]*@//
@@ -598,21 +324,32 @@ am__cd = cd
598/^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/ 324/^TIME_H_DEFINES_STRUCT_TIMESPEC *=/s/@[^@\n]*@/0/
599/^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/ 325/^UNISTD_H_HAVE_WINSOCK2_H *=/s/@[^@\n]*@/0/
600/^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/ 326/^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS *=/s/@[^@\n]*@/0/
327/^UNDEFINE_STRTOK_R *=/s/@UNDEFINE_STRTOK_R@/0/
601/^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/ 328/^WCHAR_T_SUFFIX *=/s/@WCHAR_T_SUFFIX@/h/
602/^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@// 329/^WINT_T_SUFFIX *=/s/@WINT_T_SUFFIX@//
603/^WINDOWS_64_BIT_OFF_T *=/s/@WINDOWS_64_BIT_OFF_T@/0/ 330/^WINDOWS_64_BIT_OFF_T *=/s/@WINDOWS_64_BIT_OFF_T@/0/
604/^WINDOWS_64_BIT_ST_SIZE *=/s/@WINDOWS_64_BIT_ST_SIZE@/0/ 331/^WINDOWS_64_BIT_ST_SIZE *=/s/@WINDOWS_64_BIT_ST_SIZE@/0/
605/am__append_1 *=.*gettext\.h/s/@[^@\n]*@/\#/ 332# Tailor lists of files to what we need
333/am__append_[1-9][0-9]* *=.*gettext\.h/s/@[^@\n]*@/\#/
606/am__append_2 *=.*verify\.h/s/@[^@\n]*@// 334/am__append_2 *=.*verify\.h/s/@[^@\n]*@//
607/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o strftime.o time_r.o getloadavg.o pthread_sigmask.o/ 335/^@gl_GNULIB_ENABLED_tempname_TRUE@/s/@[^@\n]*@//
608/^BUILT_SOURCES *=/s/ *inttypes\.h// 336/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o/
609/^BUILT_SOURCES *=/,/^[^ ]/{ 337/^am__append_[1-9][0-9]* *=/,/^[^ ]/{
338 s/ *inttypes\.h//
610 s| *sys/select\.h|| 339 s| *sys/select\.h||
611 s| *sys/time\.h|| 340 s| *sys/time\.h||
612} 341}
613/^am_libgnu_a_OBJECTS *=/,/^[^ ]/{ 342/^am_libgnu_a_OBJECTS *=/,/^[^ ]/{
614 s/allocator\.\$(OBJEXT) // 343 s/allocator\.\$(OBJEXT) //
344 s/binary-io\.\$(OBJEXT) //
615 s/careadlinkat\.\$(OBJEXT) // 345 s/careadlinkat\.\$(OBJEXT) //
346 s/pipe2\.\$(OBJEXT) //
347 s/acl-errno-valid\.\$(OBJEXT) //
348 s/file-has-acl\.\$(OBJEXT) //
349 s/qcopy-acl\.\$(OBJEXT) //
350 s/qset-acl\.\$(OBJEXT) //
351 s/openat-die\.\$(OBJEXT) //
352 s/save-cwd\.\$(OBJEXT) //
616} 353}
617/^srcdir *=/s/@[^@\n]*@/./ 354/^srcdir *=/s/@[^@\n]*@/./
618/^top_srcdir *=/s/@[^@\n]*@/../ 355/^top_srcdir *=/s/@[^@\n]*@/../
@@ -623,7 +360,7 @@ s/@PRAGMA_COLUMNS@//
623# Delete the recipes we don't want to get in our way. 360# Delete the recipes we don't want to get in our way.
624/^\$(srcdir)\/Makefile\.in:/,/^[ ][ ]*\$(AUTOMAKE)/d 361/^\$(srcdir)\/Makefile\.in:/,/^[ ][ ]*\$(AUTOMAKE)/d
625/^Makefile:/,/^[ ][ ]*esac/d 362/^Makefile:/,/^[ ][ ]*esac/d
626/^\$(top_srcdir)\/configure:/,/^\$(ACLOCAL_M4)/d 363/^\$(top_srcdir)\/configure:/,/^\$(am__aclocal_m4_deps):/d
627/^\$(top_builddir)\/config.status:/,/^$/d 364/^\$(top_builddir)\/config.status:/,/^$/d
628# 365#
629# Remove the dependencies on $(top_builddir)/config.status 366# Remove the dependencies on $(top_builddir)/config.status
@@ -640,16 +377,22 @@ s/^@am__fastdepCC_FALSE@/\#/
640# Fix the *-clean rules, to not use a Unixy `test' command. Empty 377# Fix the *-clean rules, to not use a Unixy `test' command. Empty
641# lists are replaced with a dummy file, to avoid an error message from 378# lists are replaced with a dummy file, to avoid an error message from
642# "rm -f" with no arguments. 379# "rm -f" with no arguments.
380/^CLEANFILES *= *$/c\
381CLEANFILES = xyzzy
643/^CONFIG_CLEAN_FILES *= *$/c\ 382/^CONFIG_CLEAN_FILES *= *$/c\
644CONFIG_CLEAN_FILES = xyzzy 383CONFIG_CLEAN_FILES = xyzzy
645/^CONFIG_CLEAN_VPATH_FILES *= *$/c\ 384/^CONFIG_CLEAN_VPATH_FILES *= *$/c\
646CONFIG_CLEAN_VPATH_FILES = xyzzy 385CONFIG_CLEAN_VPATH_FILES = xyzzy
647s/^ -*test -z.*|| rm/ -rm/ 386s/^ -*test -z.*|| rm/ -rm/
648s/@echo /@djecho/ 387s/@echo /@djecho /
649# 388#
650# Fix the recipes for header files 389# Fix the recipes for header files
651s/^@GL_GENERATE_ALLOCA_H_TRUE@// 390s/^@GL_GENERATE_ALLOCA_H_TRUE@//
652s/^@GL_GENERATE_ALLOCA_H_FALSE@/\#/ 391s/^@GL_GENERATE_ALLOCA_H_FALSE@/\#/
392s/^@GL_GENERATE_BYTESWAP_H_TRUE@//
393s/^@GL_GENERATE_BYTESWAP_H_FALSE@/\#/
394s/^@GL_GENERATE_ERRNO_H_TRUE@/\#/
395s/^@GL_GENERATE_ERRNO_H_FALSE@//
653s/^@GL_GENERATE_EXECINFO_H_TRUE@// 396s/^@GL_GENERATE_EXECINFO_H_TRUE@//
654s/^@GL_GENERATE_EXECINFO_H_FALSE@/\#/ 397s/^@GL_GENERATE_EXECINFO_H_FALSE@/\#/
655s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/ 398s/^@GL_GENERATE_STDBOOL_H_TRUE@/\#/
@@ -688,7 +431,16 @@ s/\.in-h\; *\\$/.in-h >> $@-t/
688/^unistd\.h:/,/^ [ ]*mv /{ 431/^unistd\.h:/,/^ [ ]*mv /{
689 s/'\; \\ *$/' >> $@-t/ 432 s/'\; \\ *$/' >> $@-t/
690} 433}
434/^string\.h:/,/^ [ ]*mv /{
435 s/'\; \\ *$/' >> $@-t/
436 /< \$(srcdir)\/string\.in-h >>/d
437}
691s!\$(MKDIR_P)[ ][ ]*sys!command.com /c "if not exist sys\\stat.h md sys"! 438s!\$(MKDIR_P)[ ][ ]*sys!command.com /c "if not exist sys\\stat.h md sys"!
692/^ @for dir in/,/^[^ ]/c\ 439/^ @for dir in/,/^[^ ]/c\
693 -rm -rf $(MOSTLYCLEANDIRS) 440 -rm -rf $(MOSTLYCLEANDIRS)
694/^ *-test . /d 441/^ *-test . /d
442#
443# Fix the Automake verbosity stuff
444/^ *\$(AM_V_at)/s/\$(AM_V_at)//
445/^ *\$(AM_V_AR)/s/\$(AM_V_AR)//
446/^ *\$(AM_V_CC)/s/\$(AM_V_CC)//
diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp
index caf8e0c5497..332630c4dc2 100644
--- a/msdos/sedlisp.inp
+++ b/msdos/sedlisp.inp
@@ -19,8 +19,9 @@
19/^SHELL *=/i\ 19/^SHELL *=/i\
20export FNCASE=y 20export FNCASE=y
21 21
22/^SHELL *=/s|@SHELL@|/bin/sh|
22/^lisp *=/s|\$(srcdir)|$(CURDIR)| 23/^lisp *=/s|\$(srcdir)|$(CURDIR)|
23/^srcdir *=/s|@srcdir@|.| 24/^srcdir *=/s|@srcdir@|.|
24/^top_srcdir *=/s|@top_srcdir@|./..| 25/^top_srcdir *=/s|@top_srcdir@|./..|
25/^abs_top_builddir *=/s|@abs_top_builddir@|$(CURDIR)/..| 26/^XARGS_LIMIT *=/s|@XARGS_LIMIT@||
26 27
diff --git a/src/ChangeLog b/src/ChangeLog
index 51861c6ca7d..1899edae349 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,62 @@
12014-04-16 Eli Zaretskii <eliz@gnu.org>
2
3 * unexcoff.c [MSDOS]: Include libc/atexit.h.
4 (copy_text_and_data): Zero out the atexit chain pointer before
5 dumping Emacs.
6
7 * termhooks.h (encode_terminal_code): Update prototype.
8
9 * term.c (encode_terminal_code) [DOS_NT]: Make it externally
10 visible for all DOS_NT ports, not just WINDOWSNT.
11 (syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
12
13 * sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
14 unless it is defined.
15 (emacs_pipe) [MSDOS]: Redirect to 'pipe'.
16
17 * process.c (close_on_exec, accept4, process_socket): Move into
18 the "ifdef subprocesses" part.
19 (catch_child_signal): Condition by "ifdef subprocesses".
20 (syms_of_process) <Qinternal_default_process_sentinel>
21 <Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
22
23 * msdos.h: Add prototypes for new functions.
24 (EINPROGRESS): Define.
25 (O_CLOEXEC): Define to zero.
26
27 * msdos.c (check_window_system): Remove unnecessary an
28 incompatible duplicate function.
29 (sys_opendir, readlinkat, faccessat, fstatat, unsetenv): New
30 functions in support of new functionality.
31
32 * menu.c (single_menu_item): Add visual indication of submenu
33 also for menus on MSDOS frames.
34 (Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
35
36 * lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
37 when async subprocesses aren't supported.
38
39 * font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
40
41 * emacs.c (close_output_streams): Zero out errno before calling
42 close_stream.
43
44 * dired.c [MSDOS]: Include msdos.h.
45
46 * conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
47 (DATA_START) [MSDOS]: Define.
48 (SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
49
50 * callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
51 Ifdef away for MSDOS.
52 (record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
53 (call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
54 for MSDOS.
55 (call_process) [MSDOS]: Fix call sequence of dostounix_filename.
56 Use temporary file template that is compatible with mkostemp.
57 Move vfork-related portions under #ifndef MSDOS.
58 (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
59
12014-04-15 Stefan Monnier <monnier@iro.umontreal.ca> 602014-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
2 61
3 * buffer.c (Foverlays_at): Add argument `sorted'. 62 * buffer.c (Foverlays_at): Add argument `sorted'.
diff --git a/src/callproc.c b/src/callproc.c
index 2ce4a7dcc0d..9e60ba11bcf 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -105,6 +105,8 @@ enum
105 105
106static Lisp_Object call_process (ptrdiff_t, Lisp_Object *, int, ptrdiff_t); 106static Lisp_Object call_process (ptrdiff_t, Lisp_Object *, int, ptrdiff_t);
107 107
108
109#ifndef MSDOS
108/* Block SIGCHLD. */ 110/* Block SIGCHLD. */
109 111
110void 112void
@@ -124,6 +126,8 @@ unblock_child_signal (void)
124 pthread_sigmask (SIG_SETMASK, &empty_mask, 0); 126 pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
125} 127}
126 128
129#endif /* !MSDOS */
130
127/* Return the current buffer's working directory, or the home 131/* Return the current buffer's working directory, or the home
128 directory if it's unreachable, as a string suitable for a system call. 132 directory if it's unreachable, as a string suitable for a system call.
129 Signal an error if the result would not be an accessible directory. */ 133 Signal an error if the result would not be an accessible directory. */
@@ -162,6 +166,7 @@ encode_current_directory (void)
162void 166void
163record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile) 167record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
164{ 168{
169#ifndef MSDOS
165 block_child_signal (); 170 block_child_signal ();
166 171
167 if (p->alive) 172 if (p->alive)
@@ -172,6 +177,7 @@ record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
172 } 177 }
173 178
174 unblock_child_signal (); 179 unblock_child_signal ();
180#endif /* !MSDOS */
175} 181}
176 182
177/* Clean up files, file descriptors and processes created by Fcall_process. */ 183/* Clean up files, file descriptors and processes created by Fcall_process. */
@@ -211,6 +217,7 @@ call_process_cleanup (Lisp_Object buffer)
211{ 217{
212 Fset_buffer (buffer); 218 Fset_buffer (buffer);
213 219
220#ifndef MSDOS
214 if (synch_process_pid) 221 if (synch_process_pid)
215 { 222 {
216 kill (-synch_process_pid, SIGINT); 223 kill (-synch_process_pid, SIGINT);
@@ -222,6 +229,7 @@ call_process_cleanup (Lisp_Object buffer)
222 immediate_quit = 0; 229 immediate_quit = 0;
223 message1 ("Waiting for process to die...done"); 230 message1 ("Waiting for process to die...done");
224 } 231 }
232#endif /* !MSDOS */
225} 233}
226 234
227#ifdef DOS_NT 235#ifdef DOS_NT
@@ -518,10 +526,10 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
518 char const *outf = tmpdir ? tmpdir : ""; 526 char const *outf = tmpdir ? tmpdir : "";
519 tempfile = alloca (strlen (outf) + 20); 527 tempfile = alloca (strlen (outf) + 20);
520 strcpy (tempfile, outf); 528 strcpy (tempfile, outf);
521 dostounix_filename (tempfile, 0); 529 dostounix_filename (tempfile);
522 if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/') 530 if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/')
523 strcat (tempfile, "/"); 531 strcat (tempfile, "/");
524 strcat (tempfile, "detmp.XXX"); 532 strcat (tempfile, "emXXXXXX");
525 mktemp (tempfile); 533 mktemp (tempfile);
526 if (!*tempfile) 534 if (!*tempfile)
527 report_file_error ("Opening process output file", Qnil); 535 report_file_error ("Opening process output file", Qnil);
@@ -710,8 +718,6 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
710 unblock_child_signal (); 718 unblock_child_signal ();
711 unblock_input (); 719 unblock_input ();
712 720
713#endif /* not MSDOS */
714
715 if (pid < 0) 721 if (pid < 0)
716 report_file_errno ("Doing vfork", Qnil, child_errno); 722 report_file_errno ("Doing vfork", Qnil, child_errno);
717 723
@@ -726,6 +732,8 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
726 emacs_close (filefd); 732 emacs_close (filefd);
727 clear_unwind_protect (count - 1); 733 clear_unwind_protect (count - 1);
728 734
735#endif /* not MSDOS */
736
729 if (INTEGERP (buffer)) 737 if (INTEGERP (buffer))
730 return unbind_to (count, Qnil); 738 return unbind_to (count, Qnil);
731 739
@@ -1672,10 +1680,8 @@ syms_of_callproc (void)
1672{ 1680{
1673#ifndef DOS_NT 1681#ifndef DOS_NT
1674 Vtemp_file_name_pattern = build_string ("emacsXXXXXX"); 1682 Vtemp_file_name_pattern = build_string ("emacsXXXXXX");
1675#elif defined (WINDOWSNT) 1683#else /* DOS_NT */
1676 Vtemp_file_name_pattern = build_string ("emXXXXXX"); 1684 Vtemp_file_name_pattern = build_string ("emXXXXXX");
1677#else
1678 Vtemp_file_name_pattern = build_string ("detmp.XXX");
1679#endif 1685#endif
1680 staticpro (&Vtemp_file_name_pattern); 1686 staticpro (&Vtemp_file_name_pattern);
1681 1687
diff --git a/src/conf_post.h b/src/conf_post.h
index bb3be1bb1ea..8fabd60871b 100644
--- a/src/conf_post.h
+++ b/src/conf_post.h
@@ -121,6 +121,11 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
121#else 121#else
122# define lstat stat 122# define lstat stat
123#endif 123#endif
124
125/* We must intercept 'opendir' calls to stash away the directory name,
126 so we could reuse it in realinkat, see msdos.c. */
127#define opendir sys_opendir
128
124/* The "portable" definition of _GL_INLINE on config.h does not work 129/* The "portable" definition of _GL_INLINE on config.h does not work
125 with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c, 130 with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c,
126 although lib/execinfo.h is included and the inline functions there 131 although lib/execinfo.h is included and the inline functions there
@@ -132,6 +137,9 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
132 137
133#define emacs_raise(sig) msdos_fatal_signal (sig) 138#define emacs_raise(sig) msdos_fatal_signal (sig)
134 139
140/* DATA_START is needed by vm-limit.c and unexcoff.c. */
141#define DATA_START (&etext + 1)
142
135/* Define one of these for easier conditionals. */ 143/* Define one of these for easier conditionals. */
136#ifdef HAVE_X_WINDOWS 144#ifdef HAVE_X_WINDOWS
137/* We need a little extra space, see ../../lisp/loadup.el and the 145/* We need a little extra space, see ../../lisp/loadup.el and the
@@ -148,7 +156,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
148 directory tree). Given the unknown policy of different DPMI 156 directory tree). Given the unknown policy of different DPMI
149 hosts regarding loading of untouched pages, I'm not going to risk 157 hosts regarding loading of untouched pages, I'm not going to risk
150 enlarging Emacs footprint by another 100+ KBytes. */ 158 enlarging Emacs footprint by another 100+ KBytes. */
151#define SYSTEM_PURESIZE_EXTRA (-170000+65000) 159#define SYSTEM_PURESIZE_EXTRA (-170000+90000)
152#endif 160#endif
153#endif /* MSDOS */ 161#endif /* MSDOS */
154 162
diff --git a/src/dired.c b/src/dired.c
index 69d0ae0429c..55b2f6658c7 100644
--- a/src/dired.c
+++ b/src/dired.c
@@ -47,6 +47,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
47#include "regex.h" 47#include "regex.h"
48#include "blockinput.h" 48#include "blockinput.h"
49 49
50#ifdef MSDOS
51#include "msdos.h" /* for fstatat */
52#endif
53
50static Lisp_Object Qdirectory_files; 54static Lisp_Object Qdirectory_files;
51static Lisp_Object Qdirectory_files_and_attributes; 55static Lisp_Object Qdirectory_files_and_attributes;
52static Lisp_Object Qfile_name_completion; 56static Lisp_Object Qfile_name_completion;
diff --git a/src/emacs.c b/src/emacs.c
index fd93324de97..6a86dea9927 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -686,6 +686,11 @@ void (*__malloc_initialize_hook) (void) EXTERNALLY_VISIBLE = malloc_initialize_h
686static void 686static void
687close_output_streams (void) 687close_output_streams (void)
688{ 688{
689 int err = errno;
690
691 /* close_stream checks errno, so make sure it doesn't inherit some
692 random value. */
693 errno = 0;
689 if (close_stream (stdout) != 0) 694 if (close_stream (stdout) != 0)
690 { 695 {
691 emacs_perror ("Write error to standard output"); 696 emacs_perror ("Write error to standard output");
@@ -694,6 +699,8 @@ close_output_streams (void)
694 699
695 if (close_stream (stderr) != 0) 700 if (close_stream (stderr) != 0)
696 _exit (EXIT_FAILURE); 701 _exit (EXIT_FAILURE);
702
703 errno = err;
697} 704}
698 705
699/* ARGSUSED */ 706/* ARGSUSED */
diff --git a/src/font.h b/src/font.h
index 93d514fe665..e2e36460583 100644
--- a/src/font.h
+++ b/src/font.h
@@ -236,7 +236,11 @@ enum font_property_index
236#define FONT_SET_STYLE(font, prop, val) \ 236#define FONT_SET_STYLE(font, prop, val) \
237 ASET ((font), prop, make_number (font_style_to_value (prop, val, true))) 237 ASET ((font), prop, make_number (font_style_to_value (prop, val, true)))
238 238
239#ifndef MSDOS
239#define FONT_WIDTH(f) ((f)->max_width) 240#define FONT_WIDTH(f) ((f)->max_width)
241#else
242#define FONT_WIDTH(f) 1
243#endif
240#define FONT_HEIGHT(f) ((f)->height) 244#define FONT_HEIGHT(f) ((f)->height)
241#define FONT_BASE(f) ((f)->ascent) 245#define FONT_BASE(f) ((f)->ascent)
242#define FONT_DESCENT(f) ((f)->descent) 246#define FONT_DESCENT(f) ((f)->descent)
diff --git a/src/lisp.h b/src/lisp.h
index 6232c326c9a..edc442bb5ab 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2533,11 +2533,13 @@ CHECK_WINDOW (Lisp_Object x)
2533{ 2533{
2534 CHECK_TYPE (WINDOWP (x), Qwindowp, x); 2534 CHECK_TYPE (WINDOWP (x), Qwindowp, x);
2535} 2535}
2536#ifdef subprocesses
2536INLINE void 2537INLINE void
2537CHECK_PROCESS (Lisp_Object x) 2538CHECK_PROCESS (Lisp_Object x)
2538{ 2539{
2539 CHECK_TYPE (PROCESSP (x), Qprocessp, x); 2540 CHECK_TYPE (PROCESSP (x), Qprocessp, x);
2540} 2541}
2542#endif
2541INLINE void 2543INLINE void
2542CHECK_NATNUM (Lisp_Object x) 2544CHECK_NATNUM (Lisp_Object x)
2543{ 2545{
@@ -4142,7 +4144,6 @@ extern bool running_asynch_code;
4142 4144
4143/* Defined in process.c. */ 4145/* Defined in process.c. */
4144extern Lisp_Object QCtype, Qlocal; 4146extern Lisp_Object QCtype, Qlocal;
4145extern Lisp_Object Qprocessp;
4146extern void kill_buffer_processes (Lisp_Object); 4147extern void kill_buffer_processes (Lisp_Object);
4147extern bool wait_reading_process_output (intmax_t, int, int, bool, 4148extern bool wait_reading_process_output (intmax_t, int, int, bool,
4148 Lisp_Object, 4149 Lisp_Object,
diff --git a/src/menu.c b/src/menu.c
index 9c08ff17665..468f2814eb4 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -415,7 +415,8 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk
415 item_string = concat2 (prefix, item_string); 415 item_string = concat2 (prefix, item_string);
416 } 416 }
417 417
418 if (FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame)) 418 if ((FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
419 || FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame)))
419 && !NILP (map)) 420 && !NILP (map))
420 /* Indicate visually that this is a submenu. */ 421 /* Indicate visually that this is a submenu. */
421 item_string = concat2 (item_string, build_string (" >")); 422 item_string = concat2 (item_string, build_string (" >"));
@@ -1442,6 +1443,7 @@ no quit occurs and `x-popup-menu' returns nil. */)
1442 keymaps, title, &error_name); 1443 keymaps, title, &error_name);
1443 else 1444 else
1444#endif 1445#endif
1446#ifndef MSDOS
1445 if (FRAME_TERMCAP_P (f)) 1447 if (FRAME_TERMCAP_P (f))
1446 { 1448 {
1447 ptrdiff_t count1 = SPECPDL_INDEX (); 1449 ptrdiff_t count1 = SPECPDL_INDEX ();
@@ -1453,6 +1455,7 @@ no quit occurs and `x-popup-menu' returns nil. */)
1453 kbd_menu_navigation, &error_name); 1455 kbd_menu_navigation, &error_name);
1454 unbind_to (count1, Qnil); 1456 unbind_to (count1, Qnil);
1455 } 1457 }
1458#endif
1456 1459
1457#ifdef HAVE_NS 1460#ifdef HAVE_NS
1458 unbind_to (specpdl_count, Qnil); 1461 unbind_to (specpdl_count, Qnil);
diff --git a/src/msdos.c b/src/msdos.c
index 1af66b391ad..010a0a3746c 100644
--- a/src/msdos.c
+++ b/src/msdos.c
@@ -50,6 +50,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
50#include <unistd.h> /* for chdir, dup, dup2, etc. */ 50#include <unistd.h> /* for chdir, dup, dup2, etc. */
51#include <dir.h> /* for getdisk */ 51#include <dir.h> /* for getdisk */
52#pragma pack(0) /* dir.h does a pack(4), which isn't GCC's default */ 52#pragma pack(0) /* dir.h does a pack(4), which isn't GCC's default */
53#undef opendir
54#include <dirent.h> /* for opendir */
53#include <fcntl.h> 55#include <fcntl.h>
54#include <io.h> /* for setmode */ 56#include <io.h> /* for setmode */
55#include <dpmi.h> /* for __dpmi_xxx stuff */ 57#include <dpmi.h> /* for __dpmi_xxx stuff */
@@ -1883,18 +1885,6 @@ dos_get_saved_screen (char **screen, int *rows, int *cols)
1883#endif 1885#endif
1884} 1886}
1885 1887
1886#ifndef HAVE_X_WINDOWS
1887
1888/* We are not X, but we can emulate it well enough for our needs... */
1889void
1890check_window_system (void)
1891{
1892 if (! FRAME_MSDOS_P (SELECTED_FRAME ()))
1893 error ("Not running under a window system");
1894}
1895
1896#endif
1897
1898 1888
1899/* ----------------------- Keyboard control ---------------------- 1889/* ----------------------- Keyboard control ----------------------
1900 * 1890 *
@@ -3875,6 +3865,9 @@ int setpgid (int pid, int pgid) { return 0; }
3875int setpriority (int x, int y, int z) { return 0; } 3865int setpriority (int x, int y, int z) { return 0; }
3876pid_t setsid (void) { return 0; } 3866pid_t setsid (void) { return 0; }
3877 3867
3868
3869/* Gnulib support and emulation. */
3870
3878#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 3871#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
3879ssize_t 3872ssize_t
3880readlink (const char *name, char *dummy1, size_t dummy2) 3873readlink (const char *name, char *dummy1, size_t dummy2)
@@ -3886,6 +3879,38 @@ readlink (const char *name, char *dummy1, size_t dummy2)
3886} 3879}
3887#endif 3880#endif
3888 3881
3882/* dir_pathname is set by sys_opendir and used in readlinkat and in
3883 fstatat, when they get a special FD of zero, which means use the
3884 last directory opened by opendir. */
3885static char dir_pathname[MAXPATHLEN];
3886DIR *
3887sys_opendir (const char *dirname)
3888{
3889 _fixpath (dirname, dir_pathname);
3890 return opendir (dirname);
3891}
3892
3893ssize_t
3894readlinkat (int fd, char const *name, char *buffer, size_t buffer_size)
3895{
3896 /* Rely on a hack: an open directory is modeled as file descriptor 0,
3897 as in fstatat. FIXME: Add proper support for readlinkat. */
3898 char fullname[MAXPATHLEN];
3899
3900 if (fd != AT_FDCWD)
3901 {
3902 if (strlen (dir_pathname) + strlen (name) + 1 >= MAXPATHLEN)
3903 {
3904 errno = ENAMETOOLONG;
3905 return -1;
3906 }
3907 sprintf (fullname, "%s/%s", dir_pathname, name);
3908 name = fullname;
3909 }
3910
3911 return readlink (name, buffer, buffer_size);
3912}
3913
3889char * 3914char *
3890careadlinkat (int fd, char const *filename, 3915careadlinkat (int fd, char const *filename,
3891 char *buffer, size_t buffer_size, 3916 char *buffer, size_t buffer_size,
@@ -3913,6 +3938,82 @@ careadlinkat (int fd, char const *filename,
3913 return buffer; 3938 return buffer;
3914} 3939}
3915 3940
3941/* Emulate faccessat(2). */
3942int
3943faccessat (int dirfd, const char * path, int mode, int flags)
3944{
3945 /* We silently ignore FLAGS. */
3946 flags = flags;
3947
3948 if (dirfd != AT_FDCWD
3949 && !(IS_DIRECTORY_SEP (path[0])
3950 || IS_DEVICE_SEP (path[1])))
3951 {
3952 errno = EBADF;
3953 return -1;
3954 }
3955
3956 return access (path, mode);
3957}
3958
3959/* Emulate fstatat. */
3960int
3961fstatat (int fd, char const *name, struct stat *st, int flags)
3962{
3963 /* Rely on a hack: an open directory is modeled as file descriptor 0.
3964 This is good enough for the current usage in Emacs, but is fragile.
3965
3966 FIXME: Add proper support for fdopendir, fstatat, readlinkat.
3967 Gnulib does this and can serve as a model. */
3968 char fullname[MAXPATHLEN];
3969
3970 flags = flags;
3971
3972 if (fd != AT_FDCWD)
3973 {
3974 char lastc = dir_pathname[strlen (dir_pathname) - 1];
3975
3976 if (strlen (dir_pathname) + strlen (name) + IS_DIRECTORY_SEP (lastc)
3977 >= MAXPATHLEN)
3978 {
3979 errno = ENAMETOOLONG;
3980 return -1;
3981 }
3982
3983 sprintf (fullname, "%s%s%s",
3984 dir_pathname, IS_DIRECTORY_SEP (lastc) ? "" : "/", name);
3985 name = fullname;
3986 }
3987
3988#if __DJGPP__ > 2 || __DJGPP_MINOR__ > 3
3989 return (flags & AT_SYMLINK_NOFOLLOW) ? lstat (name, st) : stat (name, st);
3990#else
3991 return stat (name, st);
3992#endif
3993}
3994
3995#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
3996/* Emulate the Posix unsetenv. DJGPP v2.04 has this in the library. */
3997int
3998unsetenv (const char *name)
3999{
4000 char *var;
4001 size_t name_len;
4002 int retval;
4003
4004 if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
4005 {
4006 errno = EINVAL;
4007 return -1;
4008 }
4009
4010 /* DJGPP's 'putenv' deletes the entry if it doesn't include '='. */
4011 putenv (name);
4012
4013 return 0;
4014}
4015#endif
4016
3916 4017
3917#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2 4018#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 2
3918 4019
@@ -4038,7 +4139,7 @@ dos_yield_time_slice (void)
4038/* We don't have to call timer_check here 4139/* We don't have to call timer_check here
4039 because wait_reading_process_output takes care of that. */ 4140 because wait_reading_process_output takes care of that. */
4040int 4141int
4041sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds, 4142sys_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds,
4042 struct timespec *timeout, void *ignored) 4143 struct timespec *timeout, void *ignored)
4043{ 4144{
4044 int check_input; 4145 int check_input;
diff --git a/src/msdos.h b/src/msdos.h
index 5d5f5df091f..e863c7cea4e 100644
--- a/src/msdos.h
+++ b/src/msdos.h
@@ -41,9 +41,25 @@ void mouse_on (void);
41void mouse_off (void); 41void mouse_off (void);
42void mouse_moveto (int, int); 42void mouse_moveto (int, int);
43 43
44#include <sys/types.h>
45#include <sys/stat.h>
46
44#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4 47#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
45int readlink (const char *, char *, size_t); 48int readlink (const char *, char *, size_t);
46#endif 49#endif
50ssize_t readlinkat (int, const char *, char *, size_t);
51int fstatat (int, char const *, struct stat *, int);
52int unsetenv (const char *);
53
54/* Constants. */
55#define EINPROGRESS 112
56/* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we
57 need to redirect standard handles for subprocesses using temporary
58 files created by mkostemp, see callproc.c. */
59#ifdef O_CLOEXEC
60# undef O_CLOEXEC
61#endif
62#define O_CLOEXEC 0
47 63
48 64
49#ifndef HAVE_X_WINDOWS 65#ifndef HAVE_X_WINDOWS
@@ -83,7 +99,6 @@ extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
83#define XMenuSetAEQ (void) 99#define XMenuSetAEQ (void)
84#define XMenuSetFreeze (void) 100#define XMenuSetFreeze (void)
85#define XMenuRecompute (void) 101#define XMenuRecompute (void)
86#define FONT_WIDTH(foo) 1
87#define XM_FAILURE -1 102#define XM_FAILURE -1
88#define XM_SUCCESS 1 103#define XM_SUCCESS 1
89#define XM_NO_SELECT 2 104#define XM_NO_SELECT 2
diff --git a/src/process.c b/src/process.c
index fd34eb08d9d..2c66b9e976e 100644
--- a/src/process.c
+++ b/src/process.c
@@ -134,6 +134,29 @@ extern int sys_select (int, fd_set *, fd_set *, fd_set *,
134 struct timespec *, void *); 134 struct timespec *, void *);
135#endif 135#endif
136 136
137/* Work around GCC 4.7.0 bug with strict overflow checking; see
138 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904>.
139 These lines can be removed once the GCC bug is fixed. */
140#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
141# pragma GCC diagnostic ignored "-Wstrict-overflow"
142#endif
143
144Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
145Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
146Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
147Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
148Lisp_Object QCname, QCtype;
149
150/* True if keyboard input is on hold, zero otherwise. */
151
152static bool kbd_is_on_hold;
153
154/* Nonzero means don't run process sentinels. This is used
155 when exiting. */
156bool inhibit_sentinels;
157
158#ifdef subprocesses
159
137#ifndef SOCK_CLOEXEC 160#ifndef SOCK_CLOEXEC
138# define SOCK_CLOEXEC 0 161# define SOCK_CLOEXEC 0
139#endif 162#endif
@@ -165,29 +188,6 @@ process_socket (int domain, int type, int protocol)
165# define socket(domain, type, protocol) process_socket (domain, type, protocol) 188# define socket(domain, type, protocol) process_socket (domain, type, protocol)
166#endif 189#endif
167 190
168/* Work around GCC 4.7.0 bug with strict overflow checking; see
169 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904>.
170 These lines can be removed once the GCC bug is fixed. */
171#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
172# pragma GCC diagnostic ignored "-Wstrict-overflow"
173#endif
174
175Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
176Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
177Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
178Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
179Lisp_Object QCname, QCtype;
180
181/* True if keyboard input is on hold, zero otherwise. */
182
183static bool kbd_is_on_hold;
184
185/* Nonzero means don't run process sentinels. This is used
186 when exiting. */
187bool inhibit_sentinels;
188
189#ifdef subprocesses
190
191Lisp_Object Qprocessp; 191Lisp_Object Qprocessp;
192static Lisp_Object Qrun, Qstop, Qsignal; 192static Lisp_Object Qrun, Qstop, Qsignal;
193static Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten; 193static Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
@@ -7058,6 +7058,7 @@ integer or floating point values.
7058 return system_process_attributes (pid); 7058 return system_process_attributes (pid);
7059} 7059}
7060 7060
7061#ifdef subprocesses
7061/* Arrange to catch SIGCHLD if this hasn't already been arranged. 7062/* Arrange to catch SIGCHLD if this hasn't already been arranged.
7062 Invoke this after init_process_emacs, and after glib and/or GNUstep 7063 Invoke this after init_process_emacs, and after glib and/or GNUstep
7063 futz with the SIGCHLD handler, but before Emacs forks any children. 7064 futz with the SIGCHLD handler, but before Emacs forks any children.
@@ -7082,6 +7083,7 @@ catch_child_signal (void)
7082 : old_action.sa_handler); 7083 : old_action.sa_handler);
7083 unblock_child_signal (); 7084 unblock_child_signal ();
7084} 7085}
7086#endif /* subprocesses */
7085 7087
7086 7088
7087/* This is not called "init_process" because that is the name of a 7089/* This is not called "init_process" because that is the name of a
@@ -7288,10 +7290,12 @@ syms_of_process (void)
7288 DEFSYM (Qcutime, "cutime"); 7290 DEFSYM (Qcutime, "cutime");
7289 DEFSYM (Qcstime, "cstime"); 7291 DEFSYM (Qcstime, "cstime");
7290 DEFSYM (Qctime, "ctime"); 7292 DEFSYM (Qctime, "ctime");
7293#ifdef subprocesses
7291 DEFSYM (Qinternal_default_process_sentinel, 7294 DEFSYM (Qinternal_default_process_sentinel,
7292 "internal-default-process-sentinel"); 7295 "internal-default-process-sentinel");
7293 DEFSYM (Qinternal_default_process_filter, 7296 DEFSYM (Qinternal_default_process_filter,
7294 "internal-default-process-filter"); 7297 "internal-default-process-filter");
7298#endif
7295 DEFSYM (Qpri, "pri"); 7299 DEFSYM (Qpri, "pri");
7296 DEFSYM (Qnice, "nice"); 7300 DEFSYM (Qnice, "nice");
7297 DEFSYM (Qthcount, "thcount"); 7301 DEFSYM (Qthcount, "thcount");
diff --git a/src/sysdep.c b/src/sysdep.c
index 6ec8eecb287..4e86dc903dc 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1506,7 +1506,9 @@ emacs_sigaction_init (struct sigaction *action, signal_handler_t handler)
1506 /* When handling a signal, block nonfatal system signals that are caught 1506 /* When handling a signal, block nonfatal system signals that are caught
1507 by Emacs. This makes race conditions less likely. */ 1507 by Emacs. This makes race conditions less likely. */
1508 sigaddset (&action->sa_mask, SIGALRM); 1508 sigaddset (&action->sa_mask, SIGALRM);
1509#ifdef SIGCHLD
1509 sigaddset (&action->sa_mask, SIGCHLD); 1510 sigaddset (&action->sa_mask, SIGCHLD);
1511#endif
1510#ifdef SIGDANGER 1512#ifdef SIGDANGER
1511 sigaddset (&action->sa_mask, SIGDANGER); 1513 sigaddset (&action->sa_mask, SIGDANGER);
1512#endif 1514#endif
@@ -1711,7 +1713,9 @@ init_signals (bool dumping)
1711# ifdef SIGBUS 1713# ifdef SIGBUS
1712 sys_siglist[SIGBUS] = "Bus error"; 1714 sys_siglist[SIGBUS] = "Bus error";
1713# endif 1715# endif
1716# ifdef SIGCHLD
1714 sys_siglist[SIGCHLD] = "Child status changed"; 1717 sys_siglist[SIGCHLD] = "Child status changed";
1718# endif
1715# ifdef SIGCONT 1719# ifdef SIGCONT
1716 sys_siglist[SIGCONT] = "Continued"; 1720 sys_siglist[SIGCONT] = "Continued";
1717# endif 1721# endif
@@ -2182,6 +2186,9 @@ emacs_fopen (char const *file, char const *mode)
2182int 2186int
2183emacs_pipe (int fd[2]) 2187emacs_pipe (int fd[2])
2184{ 2188{
2189#ifdef MSDOS
2190 return pipe (fd);
2191#else /* !MSDOS */
2185 int result = pipe2 (fd, O_CLOEXEC); 2192 int result = pipe2 (fd, O_CLOEXEC);
2186 if (! O_CLOEXEC && result == 0) 2193 if (! O_CLOEXEC && result == 0)
2187 { 2194 {
@@ -2189,6 +2196,7 @@ emacs_pipe (int fd[2])
2189 fcntl (fd[1], F_SETFD, FD_CLOEXEC); 2196 fcntl (fd[1], F_SETFD, FD_CLOEXEC);
2190 } 2197 }
2191 return result; 2198 return result;
2199#endif /* !MSDOS */
2192} 2200}
2193 2201
2194/* Approximate posix_close and POSIX_CLOSE_RESTART well enough for Emacs. 2202/* Approximate posix_close and POSIX_CLOSE_RESTART well enough for Emacs.
diff --git a/src/term.c b/src/term.c
index 773e85faabc..9e6cfe2f41d 100644
--- a/src/term.c
+++ b/src/term.c
@@ -500,7 +500,7 @@ static ptrdiff_t encode_terminal_dst_size;
500 Set CODING->produced to the byte-length of the resulting byte 500 Set CODING->produced to the byte-length of the resulting byte
501 sequence, and return a pointer to that byte sequence. */ 501 sequence, and return a pointer to that byte sequence. */
502 502
503#ifndef WINDOWSNT 503#ifndef DOS_NT
504static 504static
505#endif 505#endif
506unsigned char * 506unsigned char *
@@ -4557,6 +4557,7 @@ bigger, or it may make it blink, or it may do nothing at all. */);
4557 encode_terminal_src = NULL; 4557 encode_terminal_src = NULL;
4558 encode_terminal_dst = NULL; 4558 encode_terminal_dst = NULL;
4559 4559
4560#ifndef MSDOS
4560 DEFSYM (Qtty_menu_next_item, "tty-menu-next-item"); 4561 DEFSYM (Qtty_menu_next_item, "tty-menu-next-item");
4561 DEFSYM (Qtty_menu_prev_item, "tty-menu-prev-item"); 4562 DEFSYM (Qtty_menu_prev_item, "tty-menu-prev-item");
4562 DEFSYM (Qtty_menu_next_menu, "tty-menu-next-menu"); 4563 DEFSYM (Qtty_menu_next_menu, "tty-menu-next-menu");
@@ -4566,4 +4567,5 @@ bigger, or it may make it blink, or it may do nothing at all. */);
4566 DEFSYM (Qtty_menu_exit, "tty-menu-exit"); 4567 DEFSYM (Qtty_menu_exit, "tty-menu-exit");
4567 DEFSYM (Qtty_menu_mouse_movement, "tty-menu-mouse-movement"); 4568 DEFSYM (Qtty_menu_mouse_movement, "tty-menu-mouse-movement");
4568 DEFSYM (Qtty_menu_navigation_map, "tty-menu-navigation-map"); 4569 DEFSYM (Qtty_menu_navigation_map, "tty-menu-navigation-map");
4570#endif
4569} 4571}
diff --git a/src/termhooks.h b/src/termhooks.h
index 961b321891d..708351da83d 100644
--- a/src/termhooks.h
+++ b/src/termhooks.h
@@ -643,7 +643,7 @@ extern void delete_terminal (struct terminal *);
643/* The initial terminal device, created by initial_term_init. */ 643/* The initial terminal device, created by initial_term_init. */
644extern struct terminal *initial_terminal; 644extern struct terminal *initial_terminal;
645 645
646#ifdef WINDOWSNT 646#ifdef DOS_NT
647extern unsigned char *encode_terminal_code (struct glyph *, int, 647extern unsigned char *encode_terminal_code (struct glyph *, int,
648 struct coding_system *); 648 struct coding_system *);
649#endif 649#endif
diff --git a/src/unexcoff.c b/src/unexcoff.c
index 5710ac04570..043f3348d16 100644
--- a/src/unexcoff.c
+++ b/src/unexcoff.c
@@ -65,6 +65,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
65#include <crt0.h> /* for _crt0_startup_flags and its bits */ 65#include <crt0.h> /* for _crt0_startup_flags and its bits */
66#include <sys/exceptn.h> 66#include <sys/exceptn.h>
67static int save_djgpp_startup_flags; 67static int save_djgpp_startup_flags;
68#include <libc/atexit.h>
69static struct __atexit *save_atexit_ptr;
68#define filehdr external_filehdr 70#define filehdr external_filehdr
69#define scnhdr external_scnhdr 71#define scnhdr external_scnhdr
70#define syment external_syment 72#define syment external_syment
@@ -82,7 +84,7 @@ struct aouthdr
82 unsigned long text_start;/* base of text used for this file */ 84 unsigned long text_start;/* base of text used for this file */
83 unsigned long data_start;/* base of data used for this file */ 85 unsigned long data_start;/* base of data used for this file */
84}; 86};
85#endif /* not MSDOS */ 87#endif /* MSDOS */
86#else /* not HAVE_COFF_H */ 88#else /* not HAVE_COFF_H */
87#include <a.out.h> 89#include <a.out.h>
88#endif /* not HAVE_COFF_H */ 90#endif /* not HAVE_COFF_H */
@@ -368,6 +370,12 @@ copy_text_and_data (int new, int a_out)
368 and which might change the way that dumped Emacs works. */ 370 and which might change the way that dumped Emacs works. */
369 save_djgpp_startup_flags = _crt0_startup_flags; 371 save_djgpp_startup_flags = _crt0_startup_flags;
370 _crt0_startup_flags &= ~(_CRT0_FLAG_NO_LFN | _CRT0_FLAG_NEARPTR); 372 _crt0_startup_flags &= ~(_CRT0_FLAG_NO_LFN | _CRT0_FLAG_NEARPTR);
373
374 /* Zero out the 'atexit' chain in the dumped executable, to avoid
375 calling the atexit functions twice. (emacs.c:main installs an
376 atexit function.) */
377 save_atexit_ptr = __atexit_ptr;
378 __atexit_ptr = NULL;
371#endif 379#endif
372 380
373 lseek (new, (long) text_scnptr, 0); 381 lseek (new, (long) text_scnptr, 0);
@@ -386,6 +394,9 @@ copy_text_and_data (int new, int a_out)
386 394
387 /* Restore the startup flags. */ 395 /* Restore the startup flags. */
388 _crt0_startup_flags = save_djgpp_startup_flags; 396 _crt0_startup_flags = save_djgpp_startup_flags;
397
398 /* Restore the atexit chain. */
399 __atexit_ptr = save_atexit_ptr;
389#endif 400#endif
390 401
391 402