1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-21 10:24:55 +00:00

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.
This commit is contained in:
Eli Zaretskii 2014-04-16 16:27:28 +03:00
parent 3a31cae467
commit bf6b4923f7
31 changed files with 536 additions and 506 deletions

View File

@ -1,3 +1,7 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* config.bat: Update for Emacs 24.4.
2014-04-13 Paul Eggert <eggert@cs.ucla.edu>
Port to IRIX 6.5 (Bug#9684).

View File

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

View File

@ -1,3 +1,8 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* update-game-score.c (write_scores): Condition fchmod call on
DOS_NT, not WINDOWSNT.
2014-03-10 Juanma Barranquero <lekktu@gmail.com>
* emacsclient.c (main): #ifdef out previous change on Windows.

View File

@ -443,7 +443,7 @@ write_scores (const char *filename, const struct score_entry *scores,
fd = mkostemp (tempfile, 0);
if (fd < 0)
return -1;
#ifndef WINDOWSNT
#ifndef DOS_NT
if (fchmod (fd, 0644) != 0)
return -1;
#endif
@ -459,7 +459,7 @@ write_scores (const char *filename, const struct score_entry *scores,
return -1;
if (rename (tempfile, filename) != 0)
return -1;
#ifdef WINDOWSNT
#ifdef DOS_NT
if (chmod (filename, 0644) < 0)
return -1;
#endif

View File

@ -1,3 +1,8 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* term/pc-win.el (x-list-fonts, x-get-selection-value): Provide
doc strings, as required by snarf-documentation.
2014-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
* ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'

View File

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

View File

@ -1,3 +1,18 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* sedlisp.inp:
* sedlibmk.inp:
* sedleim.inp:
* sed3v2.inp:
* sed2v2.inp:
* sed1v2.inp: Update Sed scripts for Emacs 24.4.
* inttypes.h: Add PRIdMAX.
* INSTALL: Update for Emacs 24.4.
* sedadmin.inp: New file.
2013-12-24 Paul Eggert <eggert@cs.ucla.edu>
* autogen/Makefile.in: Update copyright year.

View File

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

View File

@ -32,6 +32,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define strtoumax strtoull
#define strtoimax strtoll
#define PRIuMAX "llu"
#define PRIdMAX "lld"
#endif /* __DJGPP__ < 2.04 */
#endif

View File

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

View File

@ -132,6 +132,7 @@ s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/
#else\
#undef HAVE_SNPRINTF\
#endif
s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - fp->_base/
# Comment out any remaining undef directives, because some of them
# might be defined in sys/config.h we include at the top of config.h.

View File

@ -42,9 +42,17 @@ s/-DVERSION[^ ]* //
/^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
/^WARN_CFLAGS *=/s/@WARN_CFLAGS@//
/^WERROR_CFLAGS *=/s/@WERROR_CFLAGS@//
/^UPDATE_MANIFEST *=/s/@UPDATE_MANIFEST@//
/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
/^ALLOCA *=/s!@ALLOCA@!!
/^EXEEXT *=/s!@EXEEXT@!!
/^EXEEXT *=/s!@EXEEXT@!.exe!
/^CLIENTW *=/s/@CLIENTW@//
/^LIB_FDATASYNC *=/s/@LIB_FDATASYNC@//
/^LIB_WSOCK32 *=/s/@LIB_WSOCK32@//
/^LIBS_ECLIENT *=/s/@LIBS_ECLIENT@//
/^NTLIB *=/s/@NTLIB@//
/^CLIENTRES *=/s/@CLIENTRES@//
/^WINDRES *=/s/@WINDRES@//
/^GETOPT_H *=/s!@GETOPT_H@!getopt.h!
/^GETOPTOBJS *=/s!@GETOPTOBJS@!getopt.o getopt1.o!
/^INSTALLABLES/s/emacsclient[^ ]* *//

View File

@ -42,5 +42,5 @@ export MAKEINFO := $(MAKEINFO) $(MAKEINFO_OPTS)
s/^ for file in $(INFO_TARGETS)\; do rm -f.*$/ rm -f $(INFO_TARGETS)/
}
/^mkinfodir *=/s| @.*$|@command.com /c if not exist ..\\..\\info\\emacs mkdir ..\\..\\info|
/^mkinfodir *=/s| @.*$|@command.com /c if not exist ..\\..\\info\\emacs$(INFO_EXT) mkdir ..\\..\\info|

View File

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

View File

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

View File

@ -19,8 +19,9 @@
/^SHELL *=/i\
export FNCASE=y
/^SHELL *=/s|@SHELL@|/bin/sh|
/^lisp *=/s|\$(srcdir)|$(CURDIR)|
/^srcdir *=/s|@srcdir@|.|
/^top_srcdir *=/s|@top_srcdir@|./..|
/^abs_top_builddir *=/s|@abs_top_builddir@|$(CURDIR)/..|
/^XARGS_LIMIT *=/s|@XARGS_LIMIT@||

View File

@ -1,3 +1,62 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* unexcoff.c [MSDOS]: Include libc/atexit.h.
(copy_text_and_data): Zero out the atexit chain pointer before
dumping Emacs.
* termhooks.h (encode_terminal_code): Update prototype.
* term.c (encode_terminal_code) [DOS_NT]: Make it externally
visible for all DOS_NT ports, not just WINDOWSNT.
(syms_of_term) [!MSDOS]: Don't define 'tty-menu-*' symbols on MSDOS.
* sysdep.c (emacs_sigaction_init, init_signals): Don't use SIGCHLD
unless it is defined.
(emacs_pipe) [MSDOS]: Redirect to 'pipe'.
* process.c (close_on_exec, accept4, process_socket): Move into
the "ifdef subprocesses" part.
(catch_child_signal): Condition by "ifdef subprocesses".
(syms_of_process) <Qinternal_default_process_sentinel>
<Qinternal_default_process_filter>: Condition by "ifdef subprocesses".
* msdos.h: Add prototypes for new functions.
(EINPROGRESS): Define.
(O_CLOEXEC): Define to zero.
* msdos.c (check_window_system): Remove unnecessary an
incompatible duplicate function.
(sys_opendir, readlinkat, faccessat, fstatat, unsetenv): New
functions in support of new functionality.
* menu.c (single_menu_item): Add visual indication of submenu
also for menus on MSDOS frames.
(Fx_popup_menu) [!MSDOS]: Do not call tty_menu_show on MSDOS.
* lisp.h (CHECK_PROCESS) [!subprocesses]: Do not define
when async subprocesses aren't supported.
* font.h (FONT_WIDTH) [MSDOS]: MSDOS-specific definition.
* emacs.c (close_output_streams): Zero out errno before calling
close_stream.
* dired.c [MSDOS]: Include msdos.h.
* conf_post.h (opendir) [MSDOS]: Redirect to sys_opendir.
(DATA_START) [MSDOS]: Define.
(SYSTEM_PURESIZE_EXTRA) [MSDOS]: Enlarge by 25K.
* callproc.c (block_child_signal, unblock_child_signal) [MSDOS]:
Ifdef away for MSDOS.
(record_kill_process) [MSDOS]: Ifdef away the entire body for MSDOS.
(call_process_cleanup) [MSDOS]: Ifdef away portions not relevant
for MSDOS.
(call_process) [MSDOS]: Fix call sequence of dostounix_filename.
Use temporary file template that is compatible with mkostemp.
Move vfork-related portions under #ifndef MSDOS.
(syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
2014-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
* buffer.c (Foverlays_at): Add argument `sorted'.

View File

@ -105,6 +105,8 @@ enum
static Lisp_Object call_process (ptrdiff_t, Lisp_Object *, int, ptrdiff_t);
#ifndef MSDOS
/* Block SIGCHLD. */
void
@ -124,6 +126,8 @@ unblock_child_signal (void)
pthread_sigmask (SIG_SETMASK, &empty_mask, 0);
}
#endif /* !MSDOS */
/* Return the current buffer's working directory, or the home
directory if it's unreachable, as a string suitable for a system call.
Signal an error if the result would not be an accessible directory. */
@ -162,6 +166,7 @@ encode_current_directory (void)
void
record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
{
#ifndef MSDOS
block_child_signal ();
if (p->alive)
@ -172,6 +177,7 @@ record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
}
unblock_child_signal ();
#endif /* !MSDOS */
}
/* Clean up files, file descriptors and processes created by Fcall_process. */
@ -211,6 +217,7 @@ call_process_cleanup (Lisp_Object buffer)
{
Fset_buffer (buffer);
#ifndef MSDOS
if (synch_process_pid)
{
kill (-synch_process_pid, SIGINT);
@ -222,6 +229,7 @@ call_process_cleanup (Lisp_Object buffer)
immediate_quit = 0;
message1 ("Waiting for process to die...done");
}
#endif /* !MSDOS */
}
#ifdef DOS_NT
@ -518,10 +526,10 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
char const *outf = tmpdir ? tmpdir : "";
tempfile = alloca (strlen (outf) + 20);
strcpy (tempfile, outf);
dostounix_filename (tempfile, 0);
dostounix_filename (tempfile);
if (*tempfile == '\0' || tempfile[strlen (tempfile) - 1] != '/')
strcat (tempfile, "/");
strcat (tempfile, "detmp.XXX");
strcat (tempfile, "emXXXXXX");
mktemp (tempfile);
if (!*tempfile)
report_file_error ("Opening process output file", Qnil);
@ -710,8 +718,6 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
unblock_child_signal ();
unblock_input ();
#endif /* not MSDOS */
if (pid < 0)
report_file_errno ("Doing vfork", Qnil, child_errno);
@ -726,6 +732,8 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
emacs_close (filefd);
clear_unwind_protect (count - 1);
#endif /* not MSDOS */
if (INTEGERP (buffer))
return unbind_to (count, Qnil);
@ -1672,10 +1680,8 @@ syms_of_callproc (void)
{
#ifndef DOS_NT
Vtemp_file_name_pattern = build_string ("emacsXXXXXX");
#elif defined (WINDOWSNT)
#else /* DOS_NT */
Vtemp_file_name_pattern = build_string ("emXXXXXX");
#else
Vtemp_file_name_pattern = build_string ("detmp.XXX");
#endif
staticpro (&Vtemp_file_name_pattern);

View File

@ -121,6 +121,11 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
#else
# define lstat stat
#endif
/* We must intercept 'opendir' calls to stash away the directory name,
so we could reuse it in realinkat, see msdos.c. */
#define opendir sys_opendir
/* The "portable" definition of _GL_INLINE on config.h does not work
with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c,
although lib/execinfo.h is included and the inline functions there
@ -132,6 +137,9 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
#define emacs_raise(sig) msdos_fatal_signal (sig)
/* DATA_START is needed by vm-limit.c and unexcoff.c. */
#define DATA_START (&etext + 1)
/* Define one of these for easier conditionals. */
#ifdef HAVE_X_WINDOWS
/* We need a little extra space, see ../../lisp/loadup.el and the
@ -148,7 +156,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
directory tree). Given the unknown policy of different DPMI
hosts regarding loading of untouched pages, I'm not going to risk
enlarging Emacs footprint by another 100+ KBytes. */
#define SYSTEM_PURESIZE_EXTRA (-170000+65000)
#define SYSTEM_PURESIZE_EXTRA (-170000+90000)
#endif
#endif /* MSDOS */

View File

@ -47,6 +47,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "regex.h"
#include "blockinput.h"
#ifdef MSDOS
#include "msdos.h" /* for fstatat */
#endif
static Lisp_Object Qdirectory_files;
static Lisp_Object Qdirectory_files_and_attributes;
static Lisp_Object Qfile_name_completion;

View File

@ -686,6 +686,11 @@ void (*__malloc_initialize_hook) (void) EXTERNALLY_VISIBLE = malloc_initialize_h
static void
close_output_streams (void)
{
int err = errno;
/* close_stream checks errno, so make sure it doesn't inherit some
random value. */
errno = 0;
if (close_stream (stdout) != 0)
{
emacs_perror ("Write error to standard output");
@ -694,6 +699,8 @@ close_output_streams (void)
if (close_stream (stderr) != 0)
_exit (EXIT_FAILURE);
errno = err;
}
/* ARGSUSED */

View File

@ -236,7 +236,11 @@ enum font_property_index
#define FONT_SET_STYLE(font, prop, val) \
ASET ((font), prop, make_number (font_style_to_value (prop, val, true)))
#ifndef MSDOS
#define FONT_WIDTH(f) ((f)->max_width)
#else
#define FONT_WIDTH(f) 1
#endif
#define FONT_HEIGHT(f) ((f)->height)
#define FONT_BASE(f) ((f)->ascent)
#define FONT_DESCENT(f) ((f)->descent)

View File

@ -2533,11 +2533,13 @@ CHECK_WINDOW (Lisp_Object x)
{
CHECK_TYPE (WINDOWP (x), Qwindowp, x);
}
#ifdef subprocesses
INLINE void
CHECK_PROCESS (Lisp_Object x)
{
CHECK_TYPE (PROCESSP (x), Qprocessp, x);
}
#endif
INLINE void
CHECK_NATNUM (Lisp_Object x)
{
@ -4142,7 +4144,6 @@ extern bool running_asynch_code;
/* Defined in process.c. */
extern Lisp_Object QCtype, Qlocal;
extern Lisp_Object Qprocessp;
extern void kill_buffer_processes (Lisp_Object);
extern bool wait_reading_process_output (intmax_t, int, int, bool,
Lisp_Object,

View File

@ -415,7 +415,8 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk
item_string = concat2 (prefix, item_string);
}
if (FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
if ((FRAME_TERMCAP_P (XFRAME (Vmenu_updating_frame))
|| FRAME_MSDOS_P (XFRAME (Vmenu_updating_frame)))
&& !NILP (map))
/* Indicate visually that this is a submenu. */
item_string = concat2 (item_string, build_string (" >"));
@ -1442,6 +1443,7 @@ no quit occurs and `x-popup-menu' returns nil. */)
keymaps, title, &error_name);
else
#endif
#ifndef MSDOS
if (FRAME_TERMCAP_P (f))
{
ptrdiff_t count1 = SPECPDL_INDEX ();
@ -1453,6 +1455,7 @@ no quit occurs and `x-popup-menu' returns nil. */)
kbd_menu_navigation, &error_name);
unbind_to (count1, Qnil);
}
#endif
#ifdef HAVE_NS
unbind_to (specpdl_count, Qnil);

View File

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

View File

@ -41,9 +41,25 @@ void mouse_on (void);
void mouse_off (void);
void mouse_moveto (int, int);
#include <sys/types.h>
#include <sys/stat.h>
#if __DJGPP__ == 2 && __DJGPP_MINOR__ < 4
int readlink (const char *, char *, size_t);
#endif
ssize_t readlinkat (int, const char *, char *, size_t);
int fstatat (int, char const *, struct stat *, int);
int unsetenv (const char *);
/* Constants. */
#define EINPROGRESS 112
/* Gnulib sets O_CLOEXEC to O_NOINHERIT, which gets in the way when we
need to redirect standard handles for subprocesses using temporary
files created by mkostemp, see callproc.c. */
#ifdef O_CLOEXEC
# undef O_CLOEXEC
#endif
#define O_CLOEXEC 0
#ifndef HAVE_X_WINDOWS
@ -83,7 +99,6 @@ extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
#define XMenuSetAEQ (void)
#define XMenuSetFreeze (void)
#define XMenuRecompute (void)
#define FONT_WIDTH(foo) 1
#define XM_FAILURE -1
#define XM_SUCCESS 1
#define XM_NO_SELECT 2

View File

@ -134,6 +134,29 @@ extern int sys_select (int, fd_set *, fd_set *, fd_set *,
struct timespec *, void *);
#endif
/* Work around GCC 4.7.0 bug with strict overflow checking; see
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904>.
These lines can be removed once the GCC bug is fixed. */
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
# pragma GCC diagnostic ignored "-Wstrict-overflow"
#endif
Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
Lisp_Object QCname, QCtype;
/* True if keyboard input is on hold, zero otherwise. */
static bool kbd_is_on_hold;
/* Nonzero means don't run process sentinels. This is used
when exiting. */
bool inhibit_sentinels;
#ifdef subprocesses
#ifndef SOCK_CLOEXEC
# define SOCK_CLOEXEC 0
#endif
@ -165,29 +188,6 @@ process_socket (int domain, int type, int protocol)
# define socket(domain, type, protocol) process_socket (domain, type, protocol)
#endif
/* Work around GCC 4.7.0 bug with strict overflow checking; see
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52904>.
These lines can be removed once the GCC bug is fixed. */
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
# pragma GCC diagnostic ignored "-Wstrict-overflow"
#endif
Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid;
Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime;
Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs;
Lisp_Object Quser, Qgroup, Qetime, Qpcpu, Qpmem, Qtime, Qctime;
Lisp_Object QCname, QCtype;
/* True if keyboard input is on hold, zero otherwise. */
static bool kbd_is_on_hold;
/* Nonzero means don't run process sentinels. This is used
when exiting. */
bool inhibit_sentinels;
#ifdef subprocesses
Lisp_Object Qprocessp;
static Lisp_Object Qrun, Qstop, Qsignal;
static Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
@ -7058,6 +7058,7 @@ integer or floating point values.
return system_process_attributes (pid);
}
#ifdef subprocesses
/* Arrange to catch SIGCHLD if this hasn't already been arranged.
Invoke this after init_process_emacs, and after glib and/or GNUstep
futz with the SIGCHLD handler, but before Emacs forks any children.
@ -7082,6 +7083,7 @@ catch_child_signal (void)
: old_action.sa_handler);
unblock_child_signal ();
}
#endif /* subprocesses */
/* This is not called "init_process" because that is the name of a
@ -7288,10 +7290,12 @@ syms_of_process (void)
DEFSYM (Qcutime, "cutime");
DEFSYM (Qcstime, "cstime");
DEFSYM (Qctime, "ctime");
#ifdef subprocesses
DEFSYM (Qinternal_default_process_sentinel,
"internal-default-process-sentinel");
DEFSYM (Qinternal_default_process_filter,
"internal-default-process-filter");
#endif
DEFSYM (Qpri, "pri");
DEFSYM (Qnice, "nice");
DEFSYM (Qthcount, "thcount");

View File

@ -1506,7 +1506,9 @@ emacs_sigaction_init (struct sigaction *action, signal_handler_t handler)
/* When handling a signal, block nonfatal system signals that are caught
by Emacs. This makes race conditions less likely. */
sigaddset (&action->sa_mask, SIGALRM);
#ifdef SIGCHLD
sigaddset (&action->sa_mask, SIGCHLD);
#endif
#ifdef SIGDANGER
sigaddset (&action->sa_mask, SIGDANGER);
#endif
@ -1711,7 +1713,9 @@ init_signals (bool dumping)
# ifdef SIGBUS
sys_siglist[SIGBUS] = "Bus error";
# endif
# ifdef SIGCHLD
sys_siglist[SIGCHLD] = "Child status changed";
# endif
# ifdef SIGCONT
sys_siglist[SIGCONT] = "Continued";
# endif
@ -2182,6 +2186,9 @@ emacs_fopen (char const *file, char const *mode)
int
emacs_pipe (int fd[2])
{
#ifdef MSDOS
return pipe (fd);
#else /* !MSDOS */
int result = pipe2 (fd, O_CLOEXEC);
if (! O_CLOEXEC && result == 0)
{
@ -2189,6 +2196,7 @@ emacs_pipe (int fd[2])
fcntl (fd[1], F_SETFD, FD_CLOEXEC);
}
return result;
#endif /* !MSDOS */
}
/* Approximate posix_close and POSIX_CLOSE_RESTART well enough for Emacs.

View File

@ -500,7 +500,7 @@ static ptrdiff_t encode_terminal_dst_size;
Set CODING->produced to the byte-length of the resulting byte
sequence, and return a pointer to that byte sequence. */
#ifndef WINDOWSNT
#ifndef DOS_NT
static
#endif
unsigned char *
@ -4557,6 +4557,7 @@ bigger, or it may make it blink, or it may do nothing at all. */);
encode_terminal_src = NULL;
encode_terminal_dst = NULL;
#ifndef MSDOS
DEFSYM (Qtty_menu_next_item, "tty-menu-next-item");
DEFSYM (Qtty_menu_prev_item, "tty-menu-prev-item");
DEFSYM (Qtty_menu_next_menu, "tty-menu-next-menu");
@ -4566,4 +4567,5 @@ bigger, or it may make it blink, or it may do nothing at all. */);
DEFSYM (Qtty_menu_exit, "tty-menu-exit");
DEFSYM (Qtty_menu_mouse_movement, "tty-menu-mouse-movement");
DEFSYM (Qtty_menu_navigation_map, "tty-menu-navigation-map");
#endif
}

View File

@ -643,7 +643,7 @@ extern void delete_terminal (struct terminal *);
/* The initial terminal device, created by initial_term_init. */
extern struct terminal *initial_terminal;
#ifdef WINDOWSNT
#ifdef DOS_NT
extern unsigned char *encode_terminal_code (struct glyph *, int,
struct coding_system *);
#endif

View File

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