Merge from emacs-24; up to 2014-04-16T15:28:26Z!monnier@iro.umontreal.ca

This commit is contained in:
Paul Eggert 2014-04-16 12:43:46 -07:00
commit 290d7ac277
58 changed files with 849 additions and 675 deletions

View file

@ -1,3 +1,29 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* config.bat: Update for Emacs 24.4.
2014-04-16 Paul Eggert <eggert@cs.ucla.edu>
Port to IRIX 6.5 (Bug#9684).
This port requires IRIX cc, as I did not have time to get
undump working with the old GCC on the system I had access to,
but that's better than nothing.
* configure.ac (gl_GCC_VERSION_IFELSE): Remove unused macro
that wouldn't have worked anyway, with IRIX cc.
(emacs_cv_clang, emacs_cv_sanitize_address)
(ns_osx_have_104, ns_osx_have_105):
Don't assume '#error' makes the compiler fail,
as this doesn't work with IRIX cc.
(CFLAGS, LIBS): Don't let the GnuTLS results infect later 'configure'
checks. This runs afoul of an IRIX configuration where GnuTLS is
in an optional library that also contains getdelim, and causes
a later 'configure' to incorrectly think getdelim is supported.
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* configure.ac (LN_S_FILEONLY, LN_S): Use "/bin/ln" on MinGW, to
ensure the MSYS ln.exe is invoked.
2014-04-15 Paul Eggert <eggert@cs.ucla.edu>
Remove DATA_SEG_BITS.

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

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

View file

@ -1,3 +1,8 @@
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* display.texi (Cursor Display): Explain better how to customize
'blink-cursor-blinks'.
2014-04-07 Glenn Morris <rgm@gnu.org>
* trouble.texi (Checklist): Dribble files may contain passwords.

View file

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

View file

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

View file

@ -1291,6 +1291,8 @@ treated as regexps rather than literal strings.
* Lisp Changes in Emacs 24.4
** overlays-at can optionally sort its result by priority.
+++
** The second argument of `eval' can now specify a lexical environment.

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-22 Glenn Morris <rgm@gnu.org>
* Makefile.in (etags_deps, etags_args): New, to reduce duplication.

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,63 @@
2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/perl-mode.el (perl-calculate-indent): Don't auto-indent in
here-documents (bug#17262).
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-16 Stefan Monnier <monnier@iro.umontreal.ca>
* ps-def.el (ps-generate-postscript-with-faces1): Use the new `sorted'
arg of overlays-at. Use `invisible-p'.
* obsolete/lucid.el (extent-at):
* htmlfontify.el (hfy-overlay-props-at): Use the new `sorted' arg of
overlays-at.
(hfy-fontify-buffer): Remove unused var `orig-ovls'.
2014-04-16 João Távora <joaotavora@gmail.com>
* net/shr.el (shr-expand-url): Use `expand-file-name' for relative
links. (Bug#17217).
2014-04-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* vc/ediff-diff.el (ediff-set-fine-diff-properties-in-one-buffer):
Use mapc to loop over a vector. (Bug#17257).
2014-04-16 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-sh-handle-file-truename): Revert previous
patch, there are new problems with file names containing spaces.
Get rid of backticks. (Bug#17238)
2014-04-16 João Távora <joaotavora@gmail.com>
* elec-pair.el (electric-pair--syntax-ppss): Simplify and fix
possible bug.
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* frame.el (blink-cursor-blinks, blink-cursor-blinks-done): Doc fixes.
(blink-cursor-mode): Mention customization variables and the
effect of 'blink-cursor-blinks'.
2014-04-16 Barry O'Reilly <gundaetiapo@gmail.com>
* simple.el (undo): Prevent insertion of identity mapping into
undo-equiv-table so as undo-only does not inf loop in the presence
of consecutive nils in undo list.
2014-04-16 Matthias Dahl <matthias.dahl@binary-island.eu>
* faces.el (make-face): Deprecate optional argument as it is no
longer needed/used since the conditional X resources handling
has been pushed down to make-face-x-resource-internal itself.
(make-empty-face): Don't pass optional argument to make-face.
2014-04-16 Karl Fogel <kfogel@red-bean.com>
* savehist.el (savehist-save): Remove workaround for a read-passwd

View file

@ -226,10 +226,9 @@ WHERE is a list defaulting to '(string comment) and indicates
when to fallback to `parse-partial-sexp'."
(let* ((pos (or pos (point)))
(where (or where '(string comment)))
(quick-ppss (syntax-ppss))
(quick-ppss-at-pos (syntax-ppss pos))
(in-string (and (nth 3 quick-ppss-at-pos) (memq 'string where)))
(in-comment (and (nth 4 quick-ppss-at-pos) (memq 'comment where)))
(quick-ppss (syntax-ppss pos))
(in-string (and (nth 3 quick-ppss) (memq 'string where)))
(in-comment (and (nth 4 quick-ppss) (memq 'comment where)))
(s-or-c-start (cond (in-string
(1+ (nth 8 quick-ppss)))
(in-comment
@ -243,7 +242,7 @@ when to fallback to `parse-partial-sexp'."
;; HACK! cc-mode apparently has some `syntax-ppss' bugs
(if (memq major-mode '(c-mode c++ mode))
(parse-partial-sexp (point-min) pos)
quick-ppss-at-pos))))
quick-ppss))))
;; Balancing means controlling pairing and skipping of parentheses
;; so that, if possible, the buffer ends up at least as balanced as

View file

@ -1722,14 +1722,14 @@ left untouched. FRAME nil or omitted means use the selected frame."
:group 'cursor)
(defcustom blink-cursor-blinks 10
"How many times to blink before using a solid cursor on NS and X.
"How many times to blink before using a solid cursor on NS, X, and MS-Windows.
Use 0 or negative value to blink forever."
:version "24.4"
:type 'integer
:group 'cursor)
(defvar blink-cursor-blinks-done 1
"Number of blinks done since we started blinking on NS and X")
"Number of blinks done since we started blinking on NS, X, and MS-Windows.")
(defvar blink-cursor-idle-timer nil
"Timer started after `blink-cursor-delay' seconds of Emacs idle time.
@ -1807,6 +1807,12 @@ With a prefix argument ARG, enable Blink Cursor mode if ARG is
positive, and disable it otherwise. If called from Lisp, enable
the mode if ARG is omitted or nil.
If the value of `blink-cursor-blinks' is positive (10 by default),
the cursor stops blinking after that number of blinks, if Emacs
gets no input during that time.
See also `blink-cursor-interval' and `blink-cursor-delay'.
This command is effective only on graphical frames. On text-only
terminals, cursor blinking is controlled by the terminal."
:init-value (not (or noninteractive

View file

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

View file

@ -610,7 +610,7 @@ size, and full-buffer size."
(concat (nth 3 base) url))
(t
;; Totally relative.
(concat (car base) (cadr base) url))))
(concat (car base) (expand-file-name url (cadr base))))))
(defun shr-ensure-newline ()
(unless (zerop (current-column))

View file

@ -950,15 +950,15 @@ target of the symlink differ."
(tramp-message v 4 "Finding true name for `%s'" filename)
(cond
;; Use GNU readlink --canonicalize-missing where available.
;; We must quote the file name twice due to the backticks.
((tramp-get-remote-readlink v)
(setq result
(tramp-send-command-and-read
v
(format "echo \"\\\"`%s --canonicalize-missing %s`\\\"\""
(tramp-get-remote-readlink v)
(tramp-shell-quote-argument
(tramp-shell-quote-argument localname))))))
(tramp-send-command-and-check
v
(format "%s --canonicalize-missing %s"
(tramp-get-remote-readlink v)
(tramp-shell-quote-argument localname)))
(with-current-buffer (tramp-get-connection-buffer v)
(goto-char (point-min))
(setq result (buffer-substring (point-min) (point-at-eol)))))
;; Use Perl implementation.
((and (tramp-get-remote-perl v)

View file

@ -872,7 +872,7 @@ Called with `font-lock-beg' and `font-lock-end' dynamically bound."
(defun nxml-fontify-matcher (bound)
"Called as font-lock keyword matcher."
(syntax-propertize bound)
(unless nxml-degraded
(nxml-debug-change "nxml-fontify-matcher" (point) bound)

View file

@ -750,7 +750,8 @@ Return the type of the token."
;; Need do this after the goto-char because
;; marked error should just apply to <!--
(xmltok-add-error "First following `--' not followed by `>'")
'not-well-formed)))))
(goto-char (point-max))
'comment)))))
(defun xmltok-scan-attributes ()
(let ((recovering nil)

View file

@ -125,7 +125,7 @@ This is an XEmacs compatibility function."
(defun extent-at (pos &optional object property before)
(with-current-buffer (or object (current-buffer))
(let ((overlays (overlays-at pos)))
(let ((overlays (overlays-at pos 'sorted)))
(when property
(let (filtered)
(while overlays
@ -133,14 +133,6 @@ This is an XEmacs compatibility function."
(setq filtered (cons (car overlays) filtered)))
(setq overlays (cdr overlays)))
(setq overlays filtered)))
(setq overlays
(sort overlays
(function (lambda (o1 o2)
(let ((p1 (or (overlay-get o1 'priority) 0))
(p2 (or (overlay-get o2 'priority) 0)))
(or (> p1 p2)
(and (= p1 p2)
(> (overlay-start o1) (overlay-start o2)))))))))
(if before
(nth 1 (memq before overlays))
(car overlays)))))

View file

@ -903,7 +903,9 @@ Optional argument PARSE-START should be the position of `beginning-of-defun'."
;; following_quotep minimum_paren-depth_this_scan)
;; Parsing stops if depth in parentheses becomes equal to third arg.
(setq containing-sexp (nth 1 state)))
(cond ((nth 3 state) 'noindent) ; In a quoted string?
(cond
;; Don't auto-indent in a quoted string or a here-document.
((or (nth 3 state) (eq 2 (nth 7 state))) 'noindent)
((null containing-sexp) ; Line is at top level.
(skip-chars-forward " \t\f")
(if (memq (following-char)

View file

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

View file

@ -2143,7 +2143,12 @@ as an argument limits undo to changes within the current region."
;; above when checking.
(while (eq (car list) nil)
(setq list (cdr list)))
(puthash list (if undo-in-region t pending-undo-list)
(puthash list
;; Prevent identity mapping. This can happen if
;; consecutive nils are erroneously in undo list.
(if (or undo-in-region (eq list pending-undo-list))
t
pending-undo-list)
undo-equiv-table))
;; Don't specify a position in the undo record for the undo command.
;; Instead, undoing this should move point to where the change is.

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

@ -822,8 +822,9 @@ one optional arguments, diff-number to refine.")
(ediff-get-symbol-from-alist
buf-type ediff-fine-diff-face-alist)
)))
(dolist (overl fine-diff-vector)
(ediff-set-overlay-face overl face))))
(mapc (lambda (overl)
(ediff-set-overlay-face overl face))
fine-diff-vector)))
;; Set overlays over the regions that denote delimiters
(defun ediff-set-fine-overlays-for-combined-merge (diff-list reg-num)

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|

29
msdos/sedadmin.inp Normal file
View file

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

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,100 @@
2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
* window.c (save_window_save): Lookup window_point_insertion_type in
the right buffer (bug#15457).
(Qwindow_point_insertion_type): New var.
(syms_of_window): Initialize it.
2014-04-16 Eli Zaretskii <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-16 Stefan Monnier <monnier@iro.umontreal.ca>
* buffer.c (Foverlays_at): Add argument `sorted'.
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* insdel.c (invalidate_buffer_caches): When deleting or replacing
text, invalidate the bidi_paragraph_cache upto and including the
preceding newline.
2014-04-16 Paul Eggert <eggert@cs.ucla.edu>
Port to IRIX 6.5 (Bug#9684).
* conf_post.h (INET6) [IRIX6_5]: Define.
(HAVE_GETADDRINFO) [IRIX6_5]: Undef.
* data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
2014-04-16 Eli Zaretskii <eliz@gnu.org>
* keyboard.c (Fopen_dribble_file): Encode the dribble file-name
before passing it to system APIs.
2014-04-16 Stefan Monnier <monnier@iro.umontreal.ca>
* bytecode.c (exec_byte_code): Rework the volatiles. Most importantly,
make sure stack.byte_string_start is not de-adjusted by pushhandler.
2014-04-16 Paul Eggert <eggert@cs.ucla.edu>
* keyboard.c (Fopen_dribble_file): Avoid some races. (Bug#17187)
2014-04-15 Paul Eggert <eggert@cs.ucla.edu>
Remove DATA_SEG_BITS.
@ -280,7 +377,7 @@
(adjust_after_replace):
(replace_range): Pass value for new record_markers arg to
delete_record.
* undo.c (record_marker_adjustment): Renamed to
* undo.c (record_marker_adjustment): Rename to
record_marker_adjustments and made static.
(record_delete): Check record_markers arg and call
record_marker_adjustments.

View file

@ -2685,7 +2685,9 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0,
***********************************************************************/
/* Sometimes a vector's contents are merely a pointer internally used
in vector allocation code. Usually you don't want to touch this. */
in vector allocation code. On the rare platforms where a null
pointer cannot be tagged, represent it with a Lisp 0.
Usually you don't want to touch this. */
static struct Lisp_Vector *
next_vector (struct Lisp_Vector *v)

View file

@ -4163,9 +4163,10 @@ OVERLAY. */)
}
DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 1, 0,
doc: /* Return a list of the overlays that contain the character at POS. */)
(Lisp_Object pos)
DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 2, 0,
doc: /* Return a list of the overlays that contain the character at POS.
If SORTED is non-nil, then sort them by decreasing priority. */)
(Lisp_Object pos, Lisp_Object sorted)
{
ptrdiff_t len, noverlays;
Lisp_Object *overlay_vec;
@ -4185,6 +4186,10 @@ DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 1, 0,
noverlays = overlays_at (XINT (pos), 1, &overlay_vec, &len,
NULL, NULL, 0);
if (!NILP (sorted))
noverlays = sort_overlays (overlay_vec, noverlays,
WINDOWP (sorted) ? XWINDOW (sorted) : NULL);
/* Make a list of them all. */
result = Flist (noverlays, overlay_vec);

View file

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

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 (sigset_t const *oldset)
pthread_sigmask (SIG_SETMASK, oldset, 0);
}
#endif /* !MSDOS */
/* Return the current buffer's working directory, or the home
directory if it's unreachable, as a string suitable for a system call.
Signal an error if the result would not be an accessible directory. */
@ -162,6 +166,7 @@ encode_current_directory (void)
void
record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
{
#ifndef MSDOS
sigset_t oldset;
block_child_signal (&oldset);
@ -173,6 +178,7 @@ record_kill_process (struct Lisp_Process *p, Lisp_Object tempfile)
}
unblock_child_signal (&oldset);
#endif /* !MSDOS */
}
/* Clean up files, file descriptors and processes created by Fcall_process. */
@ -212,6 +218,7 @@ call_process_cleanup (Lisp_Object buffer)
{
Fset_buffer (buffer);
#ifndef MSDOS
if (synch_process_pid)
{
kill (-synch_process_pid, SIGINT);
@ -223,6 +230,7 @@ call_process_cleanup (Lisp_Object buffer)
immediate_quit = 0;
message1 ("Waiting for process to die...done");
}
#endif /* !MSDOS */
}
#ifdef DOS_NT
@ -520,10 +528,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);
@ -712,8 +720,6 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd,
unblock_child_signal (&oldset);
unblock_input ();
#endif /* not MSDOS */
if (pid < 0)
report_file_errno ("Doing vfork", Qnil, child_errno);
@ -728,6 +734,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);
@ -1674,10 +1682,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

@ -95,7 +95,8 @@ typedef bool bool_bf;
#ifdef emacs
char *_getpty();
#endif
#define INET6 /* Needed for struct sockaddr_in6. */
#undef HAVE_GETADDRINFO /* IRIX has getaddrinfo but not struct addrinfo. */
#endif /* IRIX6_5 */
#ifdef MSDOS
@ -116,6 +117,11 @@ 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
@ -127,6 +133,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
@ -143,7 +152,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

@ -2987,7 +2987,7 @@ bool_vector_spare_mask (EMACS_INT nr_bits)
/* Info about unsigned long long, falling back on unsigned long
if unsigned long long is not available. */
#if HAVE_UNSIGNED_LONG_LONG_INT
#if HAVE_UNSIGNED_LONG_LONG_INT && defined ULLONG_MAX
enum { BITS_PER_ULL = CHAR_BIT * sizeof (unsigned long long) };
# define ULL_MAX ULLONG_MAX
#else

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

@ -690,6 +690,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");
@ -698,6 +703,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

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

View file

@ -10084,16 +10084,13 @@ This may include sensitive information such as passwords. */)
if (!NILP (file))
{
int fd;
Lisp_Object encfile;
file = Fexpand_file_name (file, Qnil);
/* This isn't robust, since eg file could be created after we
check whether it exists but before emacs_open.
Feel free to improve it, but this is not critical. (Bug#17187) */
if (! NILP (Ffile_exists_p (file)))
{
if (chmod (SSDATA (file), 0600) < 0)
report_file_error ("Doing chmod", file);
}
fd = emacs_open (SSDATA (file), O_WRONLY | O_CREAT | O_TRUNC, 0600);
encfile = ENCODE_FILE (file);
fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
if (fd < 0 && errno == EEXIST && unlink (SSDATA (encfile)) == 0)
fd = emacs_open (SSDATA (encfile), O_WRONLY | O_CREAT | O_EXCL, 0600);
dribble = fd < 0 ? 0 : fdopen (fd, "w");
if (dribble == 0)
report_file_error ("Opening dribble", file);

View file

@ -2527,11 +2527,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)
{
@ -4136,7 +4138,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;
@ -7059,6 +7059,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.
@ -7084,6 +7085,7 @@ catch_child_signal (void)
: old_action.sa_handler);
unblock_child_signal (&oldset);
}
#endif /* subprocesses */
/* This is not called "init_process" because that is the name of a
@ -7290,10 +7292,12 @@ 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

@ -1509,7 +1509,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
@ -1714,7 +1716,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
@ -2185,6 +2189,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)
{
@ -2192,6 +2199,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 *
@ -4562,6 +4562,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");
@ -4571,4 +4572,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

View file

@ -4723,7 +4723,7 @@ w32_read_socket (struct terminal *terminal,
here since Windows sends a WM_MOVE message
BEFORE telling us the Window is minimized
when the Window is iconified, with 3000,3000
as the co-ords. */
as the co-ords. */
x_real_positions (f, &f->left_pos, &f->top_pos);
inev.kind = DEICONIFY_EVENT;

View file

@ -55,6 +55,7 @@ static Lisp_Object Qwindow_pixel_to_total;
static Lisp_Object Qscroll_up, Qscroll_down, Qscroll_command;
static Lisp_Object Qsafe, Qabove, Qbelow, Qwindow_size, Qclone_of;
static Lisp_Object Qfloor, Qceiling;
static Lisp_Object Qwindow_point_insertion_type;
static int displayed_window_lines (struct window *);
static int count_windows (struct window *);
@ -124,7 +125,7 @@ static int window_initialized;
/* Hook to run when window config changes. */
static Lisp_Object Qwindow_configuration_change_hook;
/* Used by the function window_scroll_pixel_based */
/* Used by the function window_scroll_pixel_based. */
static int window_scroll_pixel_based_preserve_x;
static int window_scroll_pixel_based_preserve_y;
@ -6618,7 +6619,8 @@ save_window_save (Lisp_Object window, struct Lisp_Vector *vector, int i)
else
p->pointm = Fcopy_marker (w->pointm, Qnil);
XMARKER (p->pointm)->insertion_type
= !NILP (Vwindow_point_insertion_type);
= !NILP (buffer_local_value_1 /* Don't signal error if void. */
(Qwindow_point_insertion_type, w->contents));
p->start = Fcopy_marker (w->start, Qnil);
p->start_at_line_beg = w->start_at_line_beg ? Qt : Qnil;
@ -7235,6 +7237,7 @@ on their symbols to be controlled by this variable. */);
DEFVAR_LISP ("window-point-insertion-type", Vwindow_point_insertion_type,
doc: /* Type of marker to use for `window-point'. */);
Vwindow_point_insertion_type = Qnil;
DEFSYM (Qwindow_point_insertion_type, "window_point_insertion_type");
DEFVAR_LISP ("window-configuration-change-hook",
Vwindow_configuration_change_hook,

10
test/indent/nxml.xml Normal file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<spocosy version="1.0" responsetime="2011-03-15 13:53:12" exec="0.171">
<!--
<query-response requestid="" service="objectquery">
<sport name="Soccer" enetSportCode="s" del="no" n="1" ut="2009-12-29
15:36:24" id="1">
</sport>
</query-response>
-->
</spocosy>