diff options
58 files changed, 849 insertions, 675 deletions
diff --git a/ChangeLog b/ChangeLog index 4de3ee059d7..d43d82def57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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. diff --git a/config.bat b/config.bat index 8af3756222b..cc354478ee9 100644 --- a/config.bat +++ b/config.bat @@ -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
diff --git a/configure.ac b/configure.ac index 68b9e3a4761..3717abcf348 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 89a26a6b38a..d4514904c77 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -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. diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index d53c80acafd..03de755aff3 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -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 diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 0246d1a44de..acbef6b9495 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -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: @@ -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. diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 85c4b90d9fc..0acdeecff8f 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -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. diff --git a/lib-src/update-game-score.c b/lib-src/update-game-score.c index ad591cca87a..cb6fdf73590 100644 --- a/lib-src/update-game-score.c +++ b/lib-src/update-game-score.c @@ -443,7 +443,7 @@ write_scores (const char *filename, const struct score_entry *scores, 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 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 233a72e79df..f740e7f23df 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el index 04e1840c0a5..42b8a912cc4 100644 --- a/lisp/elec-pair.el +++ b/lisp/elec-pair.el @@ -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 diff --git a/lisp/frame.el b/lisp/frame.el index 7b0a0a80082..f081df788ec 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -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 diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index 1282654899f..56887f39bef 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el @@ -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: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/lisp/net/shr.el b/lisp/net/shr.el index 8b68b6f4bc7..58442575ad2 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -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)) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 4d0b5ae54d4..3b600e3d84e 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -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) diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el index 0daf62d804f..cd50bce2152 100644 --- a/lisp/nxml/nxml-mode.el +++ b/lisp/nxml/nxml-mode.el @@ -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) diff --git a/lisp/nxml/xmltok.el b/lisp/nxml/xmltok.el index 58a2f16d586..f80a5fd2fa1 100644 --- a/lisp/nxml/xmltok.el +++ b/lisp/nxml/xmltok.el @@ -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) diff --git a/lisp/obsolete/lucid.el b/lisp/obsolete/lucid.el index d3cb3f135d8..15f80652809 100644 --- a/lisp/obsolete/lucid.el +++ b/lisp/obsolete/lucid.el @@ -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))))) diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index 3486c0a1983..f89fec7b1e0 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -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) diff --git a/lisp/ps-def.el b/lisp/ps-def.el index 06cef75cbbd..92a2e0b38cd 100644 --- a/lisp/ps-def.el +++ b/lisp/ps-def.el @@ -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)) diff --git a/lisp/simple.el b/lisp/simple.el index 0af15269bb9..17aba8e6a40 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -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. diff --git a/lisp/term/pc-win.el b/lisp/term/pc-win.el index 00b860f8dcc..f24a54fbe28 100644 --- a/lisp/term/pc-win.el +++ b/lisp/term/pc-win.el @@ -165,6 +165,27 @@ created." ;; 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. diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el index f429eb35d70..ed248fbf835 100644 --- a/lisp/vc/ediff-diff.el +++ b/lisp/vc/ediff-diff.el @@ -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) diff --git a/msdos/ChangeLog b/msdos/ChangeLog index 65122a01659..f1d6c322bc2 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -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. diff --git a/msdos/INSTALL b/msdos/INSTALL index 815da38bd77..de950b89def 100644 --- a/msdos/INSTALL +++ b/msdos/INSTALL @@ -4,18 +4,19 @@ Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, 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, diff --git a/msdos/inttypes.h b/msdos/inttypes.h index 9f59d4e1a2e..7469ea07b71 100644 --- a/msdos/inttypes.h +++ b/msdos/inttypes.h @@ -32,6 +32,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #define strtoumax strtoull #define strtoimax strtoll #define PRIuMAX "llu" +#define PRIdMAX "lld" #endif /* __DJGPP__ < 2.04 */ #endif diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp index c7e770cb3ee..77c74fe2f0c 100644 --- a/msdos/sed1v2.inp +++ b/msdos/sed1v2.inp @@ -48,12 +48,16 @@ s/\.h\.in/.h-in/ /^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 diff --git a/msdos/sed2v2.inp b/msdos/sed2v2.inp index 36ba842c603..97276d63aba 100644 --- a/msdos/sed2v2.inp +++ b/msdos/sed2v2.inp @@ -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. diff --git a/msdos/sed3v2.inp b/msdos/sed3v2.inp index dcc09ddeb3c..09f2f089831 100644 --- a/msdos/sed3v2.inp +++ b/msdos/sed3v2.inp @@ -42,9 +42,17 @@ s/-DVERSION[^ ]* // /^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[^ ]* *// diff --git a/msdos/sed6.inp b/msdos/sed6.inp index 32f39dd543c..a15f4236f57 100644 --- a/msdos/sed6.inp +++ b/msdos/sed6.inp @@ -42,5 +42,5 @@ export MAKEINFO := $(MAKEINFO) $(MAKEINFO_OPTS) 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| diff --git a/msdos/sedadmin.inp b/msdos/sedadmin.inp new file mode 100644 index 00000000000..6b34260416a --- /dev/null +++ b/msdos/sedadmin.inp @@ -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} diff --git a/msdos/sedleim.inp b/msdos/sedleim.inp index 07aa3c6d2fb..fab8094a7e9 100644 --- a/msdos/sedleim.inp +++ b/msdos/sedleim.inp @@ -19,56 +19,21 @@ 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)\\| diff --git a/msdos/sedlibmk.inp b/msdos/sedlibmk.inp index 40737fa5133..badb30b0b65 100644 --- a/msdos/sedlibmk.inp +++ b/msdos/sedlibmk.inp @@ -18,15 +18,25 @@ # # 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@/1/ # -# /^REPLACE_CALLOC *=/s/@REPLACE_CALLOC@/0/ +# 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)// diff --git a/msdos/sedlisp.inp b/msdos/sedlisp.inp index caf8e0c5497..332630c4dc2 100644 --- a/msdos/sedlisp.inp +++ b/msdos/sedlisp.inp @@ -19,8 +19,9 @@ /^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@|| diff --git a/src/ChangeLog b/src/ChangeLog index 118ca723a5d..b3cc3ff32ec 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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. diff --git a/src/alloc.c b/src/alloc.c index 8b7c8aab535..6bee0c990c4 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -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) diff --git a/src/buffer.c b/src/buffer.c index a22c6d7dd54..6a1a74ac1ec 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -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); diff --git a/src/bytecode.c b/src/bytecode.c index 0ea646a9741..f1bdfd9d9c5 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -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; } diff --git a/src/callproc.c b/src/callproc.c index 2147c173655..a2c52e5b5ba 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -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); diff --git a/src/conf_post.h b/src/conf_post.h index 05abe057afd..e9101ce1c57 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -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 */ diff --git a/src/data.c b/src/data.c index dd220987fd7..965ddd215f5 100644 --- a/src/data.c +++ b/src/data.c @@ -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 diff --git a/src/dired.c b/src/dired.c index d8da45bf776..d3fe5b4943d 100644 --- a/src/dired.c +++ b/src/dired.c @@ -47,6 +47,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #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; diff --git a/src/emacs.c b/src/emacs.c index deebb2280c7..9cfc09469c2 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -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 */ diff --git a/src/font.h b/src/font.h index 93d514fe665..e2e36460583 100644 --- a/src/font.h +++ b/src/font.h @@ -236,7 +236,11 @@ enum font_property_index #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) diff --git a/src/insdel.c b/src/insdel.c index 15cdaf6f910..82896758a15 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -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' diff --git a/src/keyboard.c b/src/keyboard.c index ddfbc9a567b..678cf5abcbd 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -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); diff --git a/src/lisp.h b/src/lisp.h index 3e4ab174546..6ef0f83aea4 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -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, diff --git a/src/menu.c b/src/menu.c index 9c08ff17665..468f2814eb4 100644 --- a/src/menu.c +++ b/src/menu.c @@ -415,7 +415,8 @@ single_menu_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy, void *sk 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); diff --git a/src/msdos.c b/src/msdos.c index 6b677bb2f02..21794341222 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -50,6 +50,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #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; diff --git a/src/msdos.h b/src/msdos.h index 5d5f5df091f..e863c7cea4e 100644 --- a/src/msdos.h +++ b/src/msdos.h @@ -41,9 +41,25 @@ void mouse_on (void); 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 diff --git a/src/process.c b/src/process.c index 5a5ce0ce674..fdb0501f9ec 100644 --- a/src/process.c +++ b/src/process.c @@ -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"); diff --git a/src/sysdep.c b/src/sysdep.c index 7a888834bcc..e5b29205e96 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -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. diff --git a/src/term.c b/src/term.c index 6512f12fcab..47be788f31a 100644 --- a/src/term.c +++ b/src/term.c @@ -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 } diff --git a/src/termhooks.h b/src/termhooks.h index 961b321891d..708351da83d 100644 --- a/src/termhooks.h +++ b/src/termhooks.h @@ -643,7 +643,7 @@ extern void delete_terminal (struct terminal *); /* 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 diff --git a/src/unexcoff.c b/src/unexcoff.c index cb0b6f2f0b5..0e47bdd8656 100644 --- a/src/unexcoff.c +++ b/src/unexcoff.c @@ -65,6 +65,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #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 diff --git a/src/w32term.c b/src/w32term.c index 40c1e591233..3aabf92357a 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -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; diff --git a/src/window.c b/src/window.c index f42219cae94..8e8252d3b76 100644 --- a/src/window.c +++ b/src/window.c @@ -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, diff --git a/test/indent/nxml.xml b/test/indent/nxml.xml new file mode 100644 index 00000000000..61b84f270b0 --- /dev/null +++ b/test/indent/nxml.xml @@ -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> |