emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master f368054 2/2: Merge branch 'master' of git.sv.gnu.or


From: Kenichi Handa
Subject: [Emacs-diffs] master f368054 2/2: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Date: Fri, 08 Jan 2016 14:24:45 +0000

branch: master
commit f36805424633e3acb48ed9f0f729a36760e4cb7f
Merge: bc9a28a 4580671
Author: K. Handa <address@hidden>
Commit: K. Handa <address@hidden>

    Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
---
 .gitignore                                         |    2 +-
 admin/notes/triage                                 |    2 +-
 configure.ac                                       |    2 +-
 etc/NEWS                                           |   84 +++++++---
 lib-src/Makefile.in                                |    7 +-
 lisp/Makefile.in                                   |   28 ++--
 lisp/calendar/cal-hebrew.el                        |    2 +-
 lisp/calendar/cal-iso.el                           |    4 +-
 lisp/calendar/cal-tex.el                           |    4 +-
 lisp/calendar/solar.el                             |    4 +-
 lisp/emacs-lisp/autoload.el                        |   62 ++++++--
 lisp/linum.el                                      |    2 +-
 lisp/net/puny.el                                   |   16 +-
 lisp/org/ChangeLog.1                               |    2 +-
 lwlib/Makefile.in                                  |   15 +-
 nt/Makefile.in                                     |   13 ++-
 oldXMenu/Makefile.in                               |   17 ++-
 src/Makefile.in                                    |   22 ++--
 src/emacs.c                                        |   23 ++--
 src/keyboard.c                                     |   19 +++
 src/kqueue.c                                       |    2 +-
 src/sysdep.c                                       |    3 +
 test/automated/url-parse-tests.el                  |  167 --------------------
 test/file-organisation.org                         |    4 +-
 .../macro-problem-package-1.0/macro-aux.el         |    0
 .../macro-problem-package-1.0/macro-problem.el     |    0
 .../macro-problem-package-2.0/macro-aux.el         |    0
 .../macro-problem-package-2.0/macro-problem.el     |    0
 test/lisp/emacs-lisp/package-tests.el              |    2 +-
 test/lisp/filenotify-tests.el                      |    2 +-
 test/{automated => lisp/url}/url-expand-tests.el   |    0
 test/lisp/url/url-parse-tests.el                   |    2 +-
 test/{ => manual}/etags/lua-src/test.lua           |    0
 test/{ => manual}/etags/ruby-src/test.rb           |    0
 test/{ => manual}/etags/ruby-src/test1.ruby        |    0
 35 files changed, 239 insertions(+), 273 deletions(-)

diff --git a/.gitignore b/.gitignore
index a8f0e9a..94c4ba8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -152,7 +152,7 @@ src/*.map
 
 # Tests.
 test/indent/*.new
-test/biditest.txt
+test/manual/biditest.txt
 test/manual/etags/srclist
 test/manual/etags/regexfile
 test/manual/etags/ETAGS
diff --git a/admin/notes/triage b/admin/notes/triage
index bc91b6c..5b0e35c 100644
--- a/admin/notes/triage
+++ b/admin/notes/triage
@@ -57,7 +57,7 @@ For each new bug, ask the following questions:
   1. Is the bug report written in a way to be easy to reproduce (starts from
      emacs -Q, etc.)?  If not, ask the reporter to try and reproduce it on an
      emacs without customization.
-  2. Is the bug report written against the lastest emacs?  If not, try to
+  2. Is the bug report written against the latest emacs?  If not, try to
      reproduce on the latest version, and if it can't be reproduced, ask the
      reporter to try again with the latest version.
   3. Is the bug the same as another bug?  If so, merge the bugs.
diff --git a/configure.ac b/configure.ac
index 2baafb9..0aa863a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,7 +365,7 @@ 
AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
     g | gf | gfi | gfil | gfile )      val=gfile ;;
     w | w3 | w32 )     val=w32 ;;
     * ) AC_MSG_ERROR(['--with-file-notification=$withval' is invalid;
-this option's value should be 'yes', 'no', 'inotify', 'kqeue', 'gfile' or 
'w32'.
+this option's value should be 'yes', 'no', 'inotify', 'kqueue', 'gfile' or 
'w32'.
 'yes' is a synonym for 'w32' on MS-Windows, for 'no' on Nextstep,
 otherwise for the first of 'inotify', 'kqueue' or 'gfile' that is usable.])
     ;;
diff --git a/etc/NEWS b/etc/NEWS
index d23c7fa..8907f7a 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -29,6 +29,30 @@ otherwise leave it unmarked.
 and Mac OS X machines.
 
 
+* Startup Changes in Emacs 25.2
+
+
+* Changes in Emacs 25.2
+
+** It is possible to disable attempted recovery on fatal signals
+
+Two new variables allow to disable attempts to recover from stack
+overflow and to avoid automatic auto-save when Emacs is delivered a
+fatal signal.  `attempt-stack-overflow-recovery', if set to `nil',
+will disable attempts to recover from C stack overflows; Emacs will
+then crash as with any other fatal signal.
+`attempt-orderly-shutdown-on-fatal-signal', if set to `nil', will
+disable attempts to auto-save the session and shut down in an orderly
+fashion when Emacs receives a fatal signal; instead, Emacs will
+terminate immediately.  Both variables are non-`nil' by default.
+These variables are for users who would like to avoid the small
+probability of data corruption due to techniques Emacs uses to recover
+in these situations.
+
+
+* Editing Changes in Emacs 25.2
+
+
 * Changes in Specialized Modes and Packages in Emacs 25.2
 
 ** File Notifications
@@ -36,6 +60,21 @@ and Mac OS X machines.
 *** The kqueue library is integrated for *BSD and Mac OS X machines.
 
 
+* New Modes and Packages in Emacs 25.2
+
+
+* Incompatible Lisp Changes in Emacs 25.2
+
+
+* Lisp Changes in Emacs 25.2
+
+** Autoload files can be generated without timestamps,
+by setting `autoload-timestamps' to nil.
+
+
+* Changes in Emacs 25.2 on Non-Free Operating Systems
+
+
 * Installation Changes in Emacs 25.1
 
 +++
@@ -1524,57 +1563,56 @@ For consistency with the usual Emacs spelling, the Lisp 
variable
 `hfy-optimisations' has been renamed to `hfy-optimizations'.
 The old name should still work, as an obsolescent alias.
 
-
-* Changes in Frames and Windows Code in Emacs 25.1
+** Changes in Frame- and Window- Handling
 
 +++
-** Emacs can now draw horizontal scroll bars on some platforms that
+*** Emacs can now draw horizontal scroll bars on some platforms that
 provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
 Horizontal scroll bars are turned off by default.
-*** New function `horizontal-scroll-bars-available-p' telling whether
+**** New function `horizontal-scroll-bars-available-p' telling whether
     horizontal scroll bars are available on the underlying system.
-*** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
+**** New mode `horizontal-scroll-bar-mode' to toggle horizontal scroll
     bars on all existing and future frames.
-*** New function `toggle-horizontal-scroll-bar' to toggle horizontal
+**** New function `toggle-horizontal-scroll-bar' to toggle horizontal
     scroll bars on the selected frame.
-*** New frame parameters `horizontal-scroll-bars' and
+**** New frame parameters `horizontal-scroll-bars' and
     `scroll-bar-height' to set horizontal scroll bars and their height
     for individual frames and in `default-frame-alist'.
-*** New functions `frame-scroll-bar-height' and
+**** New functions `frame-scroll-bar-height' and
     `window-scroll-bar-height' return the height of horizontal scroll
     bars on a specific frame or window.
-*** `set-window-scroll-bars' now accepts five parameters where the last
+**** `set-window-scroll-bars' now accepts five parameters where the last
     two specify height and type of the window's horizontal scroll bar.
-*** `window-scroll-bars' now returns type and sizes of horizontal scroll
+**** `window-scroll-bars' now returns type and sizes of horizontal scroll
     bars too.
-*** New buffer-local variables `horizontal-scroll-bar' and
+**** New buffer-local variables `horizontal-scroll-bar' and
     `scroll-bar-height'.
 
 +++
-** New functions `frame-geometry' and `frame-edges' give access to a
+*** New functions `frame-geometry' and `frame-edges' give access to a
 frame's geometry.
 
 +++
-** New functions `mouse-absolute-pixel-position' and
+*** New functions `mouse-absolute-pixel-position' and
 `set-mouse-absolute-pixel-position' get/set screen coordinates of the
 mouse cursor.
 
 +++
-** The function `window-edges' now accepts three additional arguments to
+*** The function `window-edges' now accepts three additional arguments to
 retrieve body, absolute and pixel edges of the window.
 
 +++
-** The functions `window-inside-edges', `window-inside-pixel-edges' and
+*** The functions `window-inside-edges', `window-inside-pixel-edges' and
 `window-inside-absolute-pixel-edges' have been renamed to respectively
 `window-body-edges', `window-body-pixel-edges' and
 `window-absolute-body-pixel-edges'.  The old names are kept as aliases.
 
 +++
-** New function `window-absolute-pixel-position' to get the screen
+*** New function `window-absolute-pixel-position' to get the screen
 coordinates of a visible buffer position.
 
 +++
-** The height of a frame's menu and tool bar are no longer counted in the
+*** The height of a frame's menu and tool bar are no longer counted in the
 frame's text height.  This means that the text height stands only for
 the height of the frame's root window plus that of the echo area (if
 present).  This was already the behavior for frames with external tool
@@ -1582,33 +1620,33 @@ and menu bars (like in the Gtk builds) but has now been 
extended to all
 builds.
 
 +++
-** Frames now do not necessarily preserve the number of columns or lines
+*** Frames now do not necessarily preserve the number of columns or lines
 they display when setting default font, menu bar, fringe width, or
 scroll bars.  In particular, maximized and fullscreen frames are
 conceptually never resized if such settings change.  For fullheight and
 fullwidth frames, the behavior may depend on the toolkit used.
-*** New option `frame-inhibit-implied-resize' if non-nil, means that
+**** New option `frame-inhibit-implied-resize' if non-nil, means that
    setting default font, menu bar, fringe width, or scroll bars of a
    specific frame does not resize that frame in order to preserve the
    number of columns or lines it displays.
 
 +++
-** New function `window-preserve-size' allows to preserve the size of
+*** New function `window-preserve-size' allows to preserve the size of
 windows without "fixing" it.  It's supported by `fit-window-to-buffer',
 `temp-buffer-resize-mode' and `display-buffer'.
 
 +++
-** New `display-buffer' action function `display-buffer-use-some-frame'.
+*** New `display-buffer' action function `display-buffer-use-some-frame'.
 This displays the buffer in an existing frame other than the current
 frame, and allows the caller to specify a frame predicate to exclude
 frames.
 
 +++
-** New minor mode `window-divider-mode' and options
+*** New minor mode `window-divider-mode' and options
 `window-divider-default-places', `window-divider-default-bottom-width'
 and `window-divider-default-right-width'.
 
-** Tearoff menus and detachable toolbars for Gtk+ has been removed.
+** Tearoff menus and detachable toolbars for Gtk+ have been removed.
 Those features have been deprecated in Gtk+ for a long time.
 
 ** Etags
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 2b65cb2..b666508 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -345,9 +345,12 @@ extraclean: maintainer-clean
 check:
        @echo "We don't have any tests for the lib-src/ directory yet."
 
+tagsfiles = $(wildcard ${srcdir}/*.[ch])
+
+.PHONY: tags
 tags: TAGS
-TAGS: etags${EXEEXT}
-       etags *.[ch]
+TAGS: etags${EXEEXT} ${tagsfiles}
+       ./etags ${tagsfiles}
 
 ../lib/libgnu.a: $(config_h)
        $(MAKE) -C ../lib all
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 164df25..5042c0f 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -185,7 +185,7 @@ $(lisp)/loaddefs.el: $(LOADDEFS)
            --eval '(setq generated-autoload-file (expand-file-name 
(unmsys--file-name "$@")))' \
            -f batch-update-autoloads ${SUBDIRS_ALMOST}
 
-# autoloads only runs when loaddefs.el is non-existant, although it
+# autoloads only runs when loaddefs.el is nonexistent, although it
 # generates a number of different files. Provide a force option to enable
 # regeneration of all these files.
 autoloads-force .PHONY:
@@ -220,26 +220,28 @@ update-authors:
        $(emacs) -L "$(top_srcdir)/admin" -l authors \
          -f batch-update-authors "$(top_srcdir)/etc/AUTHORS" "$(top_srcdir)"
 
+FORCE:
+.PHONY: FORCE
 
-ETAGS = ../lib-src/etags
+tagsfiles = $(shell find ${srcdir} -name '*.el')
+tagsfiles := $(filter-out ${srcdir}/%loaddefs.el,${tagsfiles})
+tagsfiles := $(filter-out ${srcdir}/ldefs-boot.el,${tagsfiles})
+tagsfiles := $(filter-out ${srcdir}/eshell/esh-groups.el,${tagsfiles})
 
-lisptagsfiles1 = $(srcdir)/*.el
-lisptagsfiles2 = $(srcdir)/*/*.el
-lisptagsfiles3 = $(srcdir)/*/*/*.el
-lisptagsfiles4 = $(srcdir)/*/*/*/*.el
+ETAGS = ../lib-src/etags${EXEEXT}
 
-## The ls | sed | xargs is to stop the command line getting too long
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+## The use of xargs is to stop the command line getting too long
 ## on MS Windows, when the MSYS Bash passes it to a MinGW compiled
 ## etags.  It might be better to use find in a similar way to
 ## compile-main.  But maybe this is not even necessary any more now
 ## that this uses relative filenames.
-TAGS: $(lisptagsfiles1) $(lisptagsfiles2) $(lisptagsfiles3) $(lisptagsfiles4)
+TAGS: ${ETAGS} ${tagsfiles}
        rm -f $@
        touch $@
-       ls $(lisptagsfiles1) $(lisptagsfiles2) \
-          $(lisptagsfiles3) $(lisptagsfiles4) | \
-           sed -e '/loaddefs/d; /\/ldefs-boot/d; /esh-groups\.el/d' | \
-           xargs $(XARGS_LIMIT) "$(ETAGS)" -a -o $@
+       ls ${tagsfiles} | xargs $(XARGS_LIMIT) "${ETAGS}" -a -o $@
 
 
 # The src/Makefile.in has its own set of dependencies and when they decide
@@ -402,7 +404,7 @@ $(TRAMP_DIR)/tramp-loaddefs.el: $(TRAMP_SRC)
 CAL_DIR = $(lisp)/calendar
 ## Those files that may contain internal calendar autoload cookies.
 CAL_SRC = $(addprefix ${CAL_DIR}/,diary-lib.el holidays.el lunar.el solar.el)
-CAL_SRC := $(sort ${CAL_SRC} $(wildcard ${CAL_DIR}/cal*.el))
+CAL_SRC := $(sort ${CAL_SRC} $(wildcard ${CAL_DIR}/cal-*.el))
 CAL_SRC := $(filter-out ${CAL_DIR}/cal-loaddefs.el,${CAL_SRC})
 
 $(CAL_DIR)/cal-loaddefs.el: $(CAL_SRC)
diff --git a/lisp/calendar/cal-hebrew.el b/lisp/calendar/cal-hebrew.el
index 8bb1b88..3a3cb0f 100644
--- a/lisp/calendar/cal-hebrew.el
+++ b/lisp/calendar/cal-hebrew.el
@@ -595,7 +595,7 @@ Hebrew date diary entries must be prefaced by 
`diary-hebrew-entry-symbol'
 of the Hebrew calendar entries, except that the Hebrew month
 names cannot be abbreviated.  The Hebrew months are numbered
 from 1 to 13 with Nisan being 1, 12 being Adar I and 13 being
-Adar II; you must use `Adar I' if you want Adar of a common
+Adar II; you must use \"Adar I\" if you want Adar of a common
 Hebrew year.  If a Hebrew date diary entry begins with
 `diary-nonmarking-symbol', the entry will appear in the diary
 listing, but will not be marked in the calendar.  This function
diff --git a/lisp/calendar/cal-iso.el b/lisp/calendar/cal-iso.el
index f3cc430..2aa9550 100644
--- a/lisp/calendar/cal-iso.el
+++ b/lisp/calendar/cal-iso.el
@@ -33,7 +33,7 @@
 
 (defun calendar-iso-to-absolute (date)
   "The number of days elapsed between the Gregorian date 12/31/1 BC and DATE.
-The `ISO year' corresponds approximately to the Gregorian year, but
+The \"ISO year\" corresponds approximately to the Gregorian year, but
 weeks start on Monday and end on Sunday.  The first week of the ISO year is
 the first such week in which at least 4 days are in a year.  The ISO
 commercial DATE has the form (week day year) in which week is in the range
@@ -49,7 +49,7 @@ Sunday).  The Gregorian date Sunday, December 31, 1 BC is 
imaginary."
 
 ;;;###cal-autoload
 (defun calendar-iso-from-absolute (date)
-  "Compute the `ISO commercial date' corresponding to the absolute DATE.
+  "Compute the \"ISO commercial date\" corresponding to the absolute DATE.
 The ISO year corresponds approximately to the Gregorian year, but weeks
 start on Monday and end on Sunday.  The first week of the ISO year is the
 first such week in which at least 4 days are in a year.  The ISO commercial
diff --git a/lisp/calendar/cal-tex.el b/lisp/calendar/cal-tex.el
index e512fae..ec39954 100644
--- a/lisp/calendar/cal-tex.el
+++ b/lisp/calendar/cal-tex.el
@@ -1710,8 +1710,8 @@ non-nil, means add to end of buffer without erasing 
current contents."
   (cal-tex-cmd "\\hspace*" space))
 
 (defun cal-tex-comment (&optional comment)
-  "Insert `% ', followed by optional string COMMENT, followed by newline.
-COMMENT may contain newlines, which are prefixed by `% ' in the output."
+  "Insert \"% \", followed by optional string COMMENT, followed by newline.
+COMMENT may contain newlines, which are prefixed by \"% \" in the output."
   (insert (format "%% %s\n"
                   (if comment
                       (replace-regexp-in-string "\n" "\n% " comment)
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index a2f9d58..0a8cd81 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -65,10 +65,10 @@ and `am-pm' and `time-zone', both alphabetic strings.
 
 For example, the form
 
-  '(24-hours \":\" minutes
+   (24-hours \":\" minutes
     (if time-zone \" (\") time-zone (if time-zone \")\"))
 
-would give military-style times like `21:07 (UTC)'."
+would give military-style times like \"21:07 (UTC)\"."
   :type 'sexp
   :group 'calendar)
 
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 12d0a94..84ba544 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -87,6 +87,23 @@ that text will be copied verbatim to 
`generated-autoload-file'.")
 (defconst generate-autoload-section-continuation ";;;;;; "
   "String to add on each continuation of the section header form.")
 
+(defvar autoload-timestamps t
+  "Non-nil means insert a timestamp for each input file into the output.
+We use these in incremental updates of the output file to decide
+if we need to rescan an input file.  If you set this to nil,
+then we use the timestamp of the output file instead.  As a result:
+ - for fixed inputs, the output will be the same every time
+ - incremental updates of the output file might not be correct if:
+   i) the timestamp of the output file cannot be trusted (at least
+     relative to that of the input files)
+   ii) any of the input files can be modified during the time it takes
+      to create the output
+   iii) only a subset of the input files are scanned
+   These issues are unlikely to happen in practice, and would arguably
+   represent bugs in the build system.  Item iii) will happen if you
+   use a command like `update-file-autoloads', though, since it only
+   checks a single input file.")
+
 (defvar autoload-modified-buffers)      ;Dynamically scoped var.
 
 (defun make-autoload (form file &optional expansion)
@@ -624,7 +641,9 @@ FILE's modification time."
                                       ;; We'd really want to just use
                                       ;; `emacs-internal' instead.
                                       nil nil 'emacs-mule-unix)
-                               (nth 5 (file-attributes relfile))))
+                               (if autoload-timestamps
+                                   (nth 5 (file-attributes relfile))
+                                 t)))
                             (insert ";;; Generated autoloads from " relfile 
"\n")))
                         (insert generate-autoload-section-trailer))))
                   (or noninteractive
@@ -688,6 +707,9 @@ removes any prior now out-of-date autoload entries."
   (catch 'up-to-date
     (let* ((buf (current-buffer))
            (existing-buffer (if buffer-file-name buf))
+           (output-file (autoload-generated-file))
+           (output-time (if (file-exists-p output-file)
+                            (nth 5 (file-attributes output-file))))
            (found nil))
       (with-current-buffer (autoload-find-generated-file)
         ;; This is to make generated-autoload-file have Unix EOLs, so
@@ -712,16 +734,26 @@ removes any prior now out-of-date autoload entries."
                          (file-time (nth 5 (file-attributes file))))
                      (if (and (or (null existing-buffer)
                                   (not (buffer-modified-p existing-buffer)))
-                              (or
+                              (cond
                                ;; last-time is the time-stamp (specifying
                                ;; the last time we looked at the file) and
                                ;; the file hasn't been changed since.
-                               (and (listp last-time) (= (length last-time) 2)
-                                    (not (time-less-p last-time file-time)))
+                               ((listp last-time)
+                                (not (time-less-p last-time file-time)))
+                               ;; FIXME? Arguably we should throw a
+                               ;; user error, or some kind of warning,
+                               ;; if we were called from update-file-autoloads,
+                               ;; which can update only a single input file.
+                               ;; It's not appropriate to use the output
+                               ;; file modtime in such a case,
+                               ;; if there are multiple input files
+                               ;; contributing to the output.
+                               ((and output-time (eq t last-time))
+                                (not (time-less-p output-time file-time)))
                                ;; last-time is an MD5 checksum instead.
-                               (and (stringp last-time)
-                                    (equal last-time
-                                           (md5 buf nil nil 'emacs-mule)))))
+                               ((stringp last-time)
+                                (equal last-time
+                                      (md5 buf nil nil 'emacs-mule)))))
                          (throw 'up-to-date nil)
                        (autoload-remove-section begin)
                        (setq found t))))
@@ -781,7 +813,10 @@ write its autoloads into the specified file instead."
         (generated-autoload-file
          (if (called-interactively-p 'interactive)
              (read-file-name "Write autoload definitions to file: ")
-           generated-autoload-file)))
+           generated-autoload-file))
+        (output-time
+         (if (file-exists-p generated-autoload-file)
+             (nth 5 (file-attributes generated-autoload-file)))))
 
     (with-current-buffer (autoload-find-generated-file)
       (save-excursion
@@ -799,6 +834,8 @@ write its autoloads into the specified file instead."
                   ;; Remove the obsolete section.
                   (autoload-remove-section (match-beginning 0))
                   (setq last-time (nth 4 form))
+                  (if (equal t last-time)
+                      (setq last-time output-time))
                   (dolist (file file)
                     (let ((file-time (nth 5 (file-attributes file))))
                       (when (and file-time
@@ -814,7 +851,10 @@ write its autoloads into the specified file instead."
                        (member (expand-file-name file) autoload-excludes))
                    ;; Remove the obsolete section.
                   (autoload-remove-section (match-beginning 0)))
-                 ((not (time-less-p (nth 4 form)
+                 ((not (time-less-p (let ((oldtime (nth 4 form)))
+                                      (if (equal t oldtime)
+                                          output-time
+                                        oldtime))
                                      (nth 5 (file-attributes file))))
                   ;; File hasn't changed.
                   nil)
@@ -847,7 +887,9 @@ write its autoloads into the specified file instead."
          (goto-char (point-max))
          (search-backward "\f" nil t)
          (autoload-insert-section-header
-          (current-buffer) nil nil no-autoloads no-autoloads-time)
+          (current-buffer) nil nil no-autoloads (if autoload-timestamps
+                                                    no-autoloads-time
+                                                  t))
          (insert generate-autoload-section-trailer)))
 
       (let ((version-control 'never))
diff --git a/lisp/linum.el b/lisp/linum.el
index 4e0bc56..903586a 100644
--- a/lisp/linum.el
+++ b/lisp/linum.el
@@ -121,7 +121,7 @@ Linum mode is a buffer-local minor mode."
   (setq linum-overlays nil)
   (dolist (w (get-buffer-window-list (current-buffer) nil t))
     ;; restore margins if needed FIXME: This still fails if the
-    ;; "other" mode has incidently set margins to exactly what linum
+    ;; "other" mode has incidentally set margins to exactly what linum
     ;; had: see bug#20674 for a similar workaround in nlinum.el
     (let ((set-margins (window-parameter w 'linum--set-margins))
           (current-margins (window-margins w)))
diff --git a/lisp/net/puny.el b/lisp/net/puny.el
index f2fa346..b3a82a2 100644
--- a/lisp/net/puny.el
+++ b/lisp/net/puny.el
@@ -30,7 +30,7 @@
 (require 'seq)
 
 (defun puny-encode-domain (domain)
-  "Encode DOMAIN according to the IDNA/punycode algorith.
+  "Encode DOMAIN according to the IDNA/punycode algorithm.
 For instance, \"fśf.org\" => \"xn--ff-2sa.org\"."
   ;; The vast majority of domain names are not IDNA domain names, so
   ;; add a check first to avoid doing unnecessary work.
@@ -54,7 +54,7 @@ For instance, \"bücher\" => \"xn--bcher-kva\"."
               (puny-encode-complex (length ascii) string)))))
 
 (defun puny-decode-domain (domain)
-  "Decode DOMAIN according to the IDNA/punycode algorith.
+  "Decode DOMAIN according to the IDNA/punycode algorithm.
 For instance, \"xn--ff-2sa.org\" => \"fśf.org\"."
   (mapconcat 'puny-decode-string (split-string domain "[.]") "."))
 
@@ -215,12 +215,12 @@ using homographs."
                                   #x058A ; ARMENIAN HYPHEN
                                   #x05F3 ; HEBREW PUNCTUATION GERESH
                                   #x05F4 ; HEBREW PUNCTUATION GERSHAYIM
-                                  #x0F0B ; IBETAN MARK INTERSYLLABIC TSHEG
-                                  #x200C ; ERO WIDTH NON-JOINER*
-                                  #x200D ; ERO WIDTH JOINER*
-                                  #x2010 ; YPHEN
-                                  #x2019 ; IGHT SINGLE QUOTATION MARK
-                                  #x2027 ; YPHENATION POINT
+                                  #x0F0B ; TIBETAN MARK INTERSYLLABIC TSHEG
+                                  #x200C ; ZERO WIDTH NON-JOINER*
+                                  #x200D ; ZERO WIDTH JOINER*
+                                  #x2010 ; HYPHEN
+                                  #x2019 ; RIGHT SINGLE QUOTATION MARK
+                                  #x2027 ; HYPHENATION POINT
                                   #x30A0 ; KATAKANA-HIRAGANA DOUBLE HYPHEN
                                   #x30FB)) ; KATAKANA MIDDLE DOT
                           t
diff --git a/lisp/org/ChangeLog.1 b/lisp/org/ChangeLog.1
index 35e6ef1..2c78ce0 100644
--- a/lisp/org/ChangeLog.1
+++ b/lisp/org/ChangeLog.1
@@ -5285,7 +5285,7 @@
        * ox-html.el (org-html-link): Don't skip the link description when
        it matches the name of the headline it targets.
 
-       * ox-ascii.el (ascii): Remove inexistant function.
+       * ox-ascii.el (ascii): Remove nonexistent function.
 
        * ox-icalendar.el (icalendar): Ignore footnotes.
        (org-icalendar--combine-files): Small refactoring.
diff --git a/lwlib/Makefile.in b/lwlib/Makefile.in
index bfeef16..be12b42 100644
--- a/lwlib/Makefile.in
+++ b/lwlib/Makefile.in
@@ -44,6 +44,7 @@ address@hidden@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
 MKDIR_P = @MKDIR_P@
+EXEEXT = @EXEEXT@
 
 LUCID_OBJS = lwlib-Xlw.o xlwmenu.o lwlib-Xaw.o
 MOTIF_OBJS = lwlib-Xm.o
@@ -128,15 +129,17 @@ distclean: clean
 bootstrap-clean maintainer-clean: distclean
        rm -f TAGS
 
+ETAGS = ../lib-src/etags${EXEEXT}
 
-ETAGS = ../lib-src/etags
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
 
-ctagsfiles= $(srcdir)/*.[ch]
+ctagsfiles= $(wildcard ${srcdir}/*.[ch])
 
-TAGS: $(ctagsfiles)
-       "$(ETAGS)" $(ctagsfiles)
+FORCE:
+.PHONY: tags FORCE
 tags: TAGS
-.PHONY: tags
-
+TAGS: ${ETAGS} $(ctagsfiles)
+       ${ETAGS} $(ctagsfiles)
 
 ### Makefile.in ends here
diff --git a/nt/Makefile.in b/nt/Makefile.in
index fc6887f..86fca5f 100644
--- a/nt/Makefile.in
+++ b/nt/Makefile.in
@@ -225,9 +225,18 @@ extraclean: maintainer-clean
 check:
        @echo "We don't have any tests for the nt/ directory yet."
 
+ETAGS = ../lib-src/etags${EXEEXT}
+
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+tagsfiles= $(wildcard ${srcdir}/*.[ch])
+
+FORCE:
+.PHONY: tags FORCE
 tags: TAGS
-TAGS: ${EXE_FILES:${EXEEXT}=.c}
-       ../lib-src/etags *.[ch]
+TAGS: ${ETAGS} ${tagsfiles}
+       ${ETAGS} ${tagsfiles}
 
 ## Build the programs
 addpm${EXEEXT}: ${srcdir}/addpm.c ../src/epaths.h
diff --git a/oldXMenu/Makefile.in b/oldXMenu/Makefile.in
index de5b8e1..71dd566 100644
--- a/oldXMenu/Makefile.in
+++ b/oldXMenu/Makefile.in
@@ -58,12 +58,12 @@ address@hidden@
 address@hidden@
 CPPFLAGS = @CPPFLAGS@
 
-TAGS = etags
 RM = rm -f
 RANLIB = @RANLIB@
 AR = @AR@
 ARFLAGS = @ARFLAGS@
 MKDIR_P = @MKDIR_P@
+EXEEXT = @EXEEXT@
 
 OBJS =  Activate.o \
        AddPane.o \
@@ -152,8 +152,17 @@ clean mostlyclean:
 bootstrap-clean maintainer-clean distclean: clean
        rm -f Makefile
 
-.PHONY: tags
-tags:
-       $(TAGS) -t *.[ch]
+ETAGS = ../lib-src/etags${EXEEXT}
+
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+tagsfiles = $(wildcard ${srcdir}/*.[ch])
+
+FORCE:
+.PHONY: tags FORCE
+tags: TAGS
+TAGS: ${ETAGS} ${tagsfiles}
+       ${ETAGS} ${tagsfiles}
 
 ### Makefile.in ends here
diff --git a/src/Makefile.in b/src/Makefile.in
index f96ebb2..97505b9 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -649,32 +649,34 @@ extraclean: distclean
        -rm -f *~ \#*
 
 
-ETAGS = ../lib-src/etags
+ETAGS = ../lib-src/etags${EXEEXT}
 
-ctagsfiles1 = [xyzXYZ]*.[hc]
-ctagsfiles2 = [a-wA-W]*.[hc]
-ctagsfiles3 = [a-zA-Z]*.m
+${ETAGS}: FORCE
+       ${MAKE} -C ../lib-src $(notdir $@)
+
+ctagsfiles1 = $(wildcard ${srcdir}/*.[hc])
+ctagsfiles2 = $(wildcard ${srcdir}/*.m)
 
 ## FIXME? In out-of-tree builds, should TAGS be generated in srcdir?
 
 ## This does not need to depend on ../lisp and ../lwlib TAGS files,
 ## because etags "--include" only includes a pointer to the file,
 ## rather than the file contents.
-TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) 
$(srcdir)/$(ctagsfiles3)
-       "$(ETAGS)" --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \
+TAGS: ${ETAGS} $(ctagsfiles1) $(ctagsfiles2)
+       ${ETAGS} --include=../lisp/TAGS --include=$(lwlibdir)/TAGS \
          --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
          --regex='{c}/[        ]*DEFVAR_[A-Z_  (]+"[^"]+",[    
]\([A-Za-z0-9_]+\)/\1/' \
-         $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2) \
+         $(ctagsfiles1) \
          --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"\([^"]+\)"/\1/' \
          --regex='{objc}/[     ]*DEFVAR_[A-Z_  (]+"[^"]+",[    
]\([A-Za-z0-9_]+\)/\1/' \
-         $(srcdir)/$(ctagsfiles3)
+         $(ctagsfiles2)
 
 ## Arrange to make tags tables for ../lisp and ../lwlib,
 ## which the above TAGS file for the C files includes by reference.
-../lisp/TAGS:
+../lisp/TAGS: FORCE
        $(MAKE) -C ../lisp TAGS ETAGS="$(ETAGS)"
 
-$(lwlibdir)/TAGS:
+$(lwlibdir)/TAGS: FORCE
        $(MAKE) -C $(lwlibdir) TAGS ETAGS="$(ETAGS)"
 
 tags: TAGS ../lisp/TAGS $(lwlibdir)/TAGS
diff --git a/src/emacs.c b/src/emacs.c
index 926aa98..d13413d 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -370,17 +370,20 @@ terminate_due_to_signal (int sig, int backtrace_limit)
 {
   signal (sig, SIG_DFL);
 
-  /* If fatal error occurs in code below, avoid infinite recursion.  */
-  if (! fatal_error_in_progress)
+  if (attempt_orderly_shutdown_on_fatal_signal)
     {
-      fatal_error_in_progress = 1;
+      /* If fatal error occurs in code below, avoid infinite recursion.  */
+      if (! fatal_error_in_progress)
+        {
+          fatal_error_in_progress = 1;
 
-      totally_unblock_input ();
-      if (sig == SIGTERM || sig == SIGHUP || sig == SIGINT)
-        Fkill_emacs (make_number (sig));
+          totally_unblock_input ();
+          if (sig == SIGTERM || sig == SIGHUP || sig == SIGINT)
+            Fkill_emacs (make_number (sig));
 
-      shut_down_emacs (sig, Qnil);
-      emacs_backtrace (backtrace_limit);
+          shut_down_emacs (sig, Qnil);
+          emacs_backtrace (backtrace_limit);
+        }
     }
 
   /* Signal the same code; this time it will really be fatal.
diff --git a/src/keyboard.c b/src/keyboard.c
index 6fa38aa..eb2c756 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -11659,6 +11659,25 @@ Currently, the only supported values for this
 variable are `sigusr1' and `sigusr2'.  */);
   Vdebug_on_event = intern_c_string ("sigusr2");
 
+  DEFVAR_BOOL ("attempt-stack-overflow-recovery",
+               attempt_stack_overflow_recovery,
+               doc: /* If non-nil, attempt to recover from C stack
+overflow.  This recovery is unsafe and may lead to deadlocks or data
+corruption, but it usually works and may preserve modified buffers
+that would otherwise be lost.  If nil, treat stack overflow like any
+other kind of crash.  */);
+  attempt_stack_overflow_recovery = true;
+
+  DEFVAR_BOOL ("attempt-orderly-shutdown-on-fatal-signal",
+               attempt_orderly_shutdown_on_fatal_signal,
+               doc: /* If non-nil, attempt to perform an orderly
+shutdown when Emacs receives a fatal signal (e.g., a crash).
+This cleanup is unsafe and may lead to deadlocks or data corruption,
+but it usually works and may preserve modified buffers that would
+otherwise be lost.  If nil, crash immediately in response to fatal
+signals.  */);
+  attempt_orderly_shutdown_on_fatal_signal = true;
+
   /* Create the initial keyboard.  Qt means 'unset'.  */
   initial_kboard = allocate_kboard (Qt);
 }
diff --git a/src/kqueue.c b/src/kqueue.c
index 1830040..e0ee5fb 100644
--- a/src/kqueue.c
+++ b/src/kqueue.c
@@ -257,7 +257,7 @@ kqueue_compare_dir_list
 
   /* At this point, old_dl, new_dl and pending_dl shall be empty.
      deleted_dl might not be empty when there was a rename to a
-     nonexisting file.  Let's make a check for this (might be removed
+     nonexistent file.  Let's make a check for this (might be removed
      once the code is stable).  */
   if (! NILP (old_dl))
     report_file_error ("Old list not empty", old_dl);
diff --git a/src/sysdep.c b/src/sysdep.c
index 1af323e..a29155c 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1622,6 +1622,9 @@ static unsigned char sigsegv_stack[SIGSTKSZ];
 static bool
 stack_overflow (siginfo_t *siginfo)
 {
+  if (!attempt_stack_overflow_recovery)
+    return false;
+
   /* In theory, a more-accurate heuristic can be obtained by using
      GNU/Linux pthread_getattr_np along with POSIX pthread_attr_getstack
      and pthread_attr_getguardsize to find the location and size of the
diff --git a/test/automated/url-parse-tests.el 
b/test/automated/url-parse-tests.el
deleted file mode 100644
index 443034a..0000000
--- a/test/automated/url-parse-tests.el
+++ /dev/null
@@ -1,167 +0,0 @@
-;;; url-parse-tests.el --- Test suite for URI/URL parsing.
-
-;; Copyright (C) 2012-2015 Free Software Foundation, Inc.
-
-;; Author: Alain Schneble <address@hidden>
-;; Version: 1.0
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs 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.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; Test cases covering generic URI syntax as described in RFC3986,
-;; section 3. Syntax Components and 4. Usage. See also appendix
-;; A. Collected ABNF for URI, as the example given here are all
-;; productions of this grammar.
-
-;; Each tests parses a given URI string - whether relative or absolute -
-;; using `url-generic-parse-url' and compares the constructed
-;; URL-struct (Actual) against a manually `url-parse-make-urlobj'-
-;; constructed URL-struct (Expected).
-
-;;; Code:
-
-(require 'url-parse)
-(require 'ert)
-
-(ert-deftest url-generic-parse-url/generic-uri-examples ()
-  "RFC 3986, section 1.1.2. Examples / Example illustrating several URI 
schemes and variations in their common syntax components"
-  (should (equal (url-generic-parse-url "ftp://ftp.is.co.za/rfc/rfc1808.txt";) 
(url-parse-make-urlobj "ftp" nil nil "ftp.is.co.za" nil "/rfc/rfc1808.txt" nil 
nil t)))
-  (should (equal (url-generic-parse-url "http://www.ietf.org/rfc/rfc2396.txt";) 
(url-parse-make-urlobj "http" nil nil "www.ietf.org" nil "/rfc/rfc2396.txt" nil 
nil t)))
-  (should (equal (url-generic-parse-url 
"ldap://[2001:db8::7]/c=GB?objectClass?one";) (url-parse-make-urlobj "ldap" nil 
nil "[2001:db8::7]" nil "/c=GB?objectClass?one" nil nil t)))
-  (should (equal (url-generic-parse-url "mailto:address@hidden";) 
(url-parse-make-urlobj "mailto" nil nil nil nil "address@hidden" nil nil nil)))
-  (should (equal (url-generic-parse-url 
"news:comp.infosystems.www.servers.unix";) (url-parse-make-urlobj "news" nil nil 
nil nil "comp.infosystems.www.servers.unix" nil nil nil)))
-  (should (equal (url-generic-parse-url "tel:+1-816-555-1212") 
(url-parse-make-urlobj "tel" nil nil nil nil "+1-816-555-1212" nil nil nil)))
-  (should (equal (url-generic-parse-url "telnet://192.0.2.16:80/") 
(url-parse-make-urlobj "telnet" nil nil "192.0.2.16" 80 "/" nil nil t)))
-  (should (equal (url-generic-parse-url 
"urn:oasis:names:specification:docbook:dtd:xml:4.1.2") (url-parse-make-urlobj 
"urn" nil nil nil nil "oasis:names:specification:docbook:dtd:xml:4.1.2" nil nil 
nil))))
-
-(ert-deftest url-generic-parse-url/generic-uri ()
-  "RFC 3986, section 3. Syntax Components / generic URI syntax"
-  ;; empty path
-  (should (equal (url-generic-parse-url "http://host#";) (url-parse-make-urlobj 
"http" nil nil "host" nil "" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "?" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "?query" "fragment" nil t)))
-  ;; absolute path /
-  (should (equal (url-generic-parse-url "http://host/#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?query" "fragment" nil t)))
-  ;; absolute path /foo
-  (should (equal (url-generic-parse-url "http://host/foo#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?query" "fragment" nil 
t)))
-  ;; absolute path /foo/
-  (should (equal (url-generic-parse-url "http://host/foo/#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?query" "fragment" nil 
t)))
-  ;; absolute path /foo/bar
-  (should (equal (url-generic-parse-url "http://host/foo/bar#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?query" "fragment" 
nil t)))
-  ;; absolute path /foo/bar/
-  (should (equal (url-generic-parse-url "http://host/foo/bar/#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/" "fragment" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?query#";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?query" "" nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?" "fragment" nil 
t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?query#fragment";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?query" "fragment" 
nil t)))
-  ;; for more examples of URIs without fragments, see tests covering section 
4.3. Absolute URI
-  )
-
-(ert-deftest url-generic-parse-url/network-path-reference ()
-  "RFC 3986, section 4.2. Relative Reference / network-path reference: a 
relative reference that begins with two slash characters"
-  (should (equal (url-generic-parse-url "//host") (url-parse-make-urlobj nil 
nil nil "host" nil "" nil nil t)))
-  (should (equal (url-generic-parse-url "//host/") (url-parse-make-urlobj nil 
nil nil "host" nil "/" nil nil t)))
-  (should (equal (url-generic-parse-url "//host/foo") (url-parse-make-urlobj 
nil nil nil "host" nil "/foo" nil nil t)))
-  (should (equal (url-generic-parse-url "//host/foo/bar") 
(url-parse-make-urlobj nil nil nil "host" nil "/foo/bar" nil nil t)))
-  (should (equal (url-generic-parse-url "//host/foo/bar/") 
(url-parse-make-urlobj nil nil nil "host" nil "/foo/bar/" nil nil t))))
-
-(ert-deftest url-generic-parse-url/absolute-path-reference ()
-  "RFC 3986, section 4.2. Relative Reference / absolute-path reference: a 
relative reference that begins with a single slash character"
-  (should (equal (url-generic-parse-url "/") (url-parse-make-urlobj nil nil 
nil nil nil "/" nil nil nil)))
-  (should (equal (url-generic-parse-url "/foo") (url-parse-make-urlobj nil nil 
nil nil nil "/foo" nil nil nil)))
-  (should (equal (url-generic-parse-url "/foo/bar") (url-parse-make-urlobj nil 
nil nil nil nil "/foo/bar" nil nil nil)))
-  (should (equal (url-generic-parse-url "/foo/bar/") (url-parse-make-urlobj 
nil nil nil nil nil "/foo/bar/" nil nil nil)))
-  (should (equal (url-generic-parse-url "/foo/bar#") (url-parse-make-urlobj 
nil nil nil nil nil "/foo/bar" "" nil nil)))
-  (should (equal (url-generic-parse-url "/foo/bar/#") (url-parse-make-urlobj 
nil nil nil nil nil "/foo/bar/" "" nil nil))))
-
-(ert-deftest url-generic-parse-url/relative-path-reference ()
-  "RFC 3986, section 4.2. Relative Reference / relative-path reference: a 
relative reference that does not begin with a slash character"
-  (should (equal (url-generic-parse-url "foo") (url-parse-make-urlobj nil nil 
nil nil nil "foo" nil nil nil)))
-  (should (equal (url-generic-parse-url "foo/bar") (url-parse-make-urlobj nil 
nil nil nil nil "foo/bar" nil nil nil)))
-  (should (equal (url-generic-parse-url "foo/bar/") (url-parse-make-urlobj nil 
nil nil nil nil "foo/bar/" nil nil nil)))
-  (should (equal (url-generic-parse-url "./foo") (url-parse-make-urlobj nil 
nil nil nil nil "./foo" nil nil nil)))
-  (should (equal (url-generic-parse-url "./foo/bar") (url-parse-make-urlobj 
nil nil nil nil nil "./foo/bar" nil nil nil)))
-  (should (equal (url-generic-parse-url "./foo/bar/") (url-parse-make-urlobj 
nil nil nil nil nil "./foo/bar/" nil nil nil)))
-  (should (equal (url-generic-parse-url "../foo") (url-parse-make-urlobj nil 
nil nil nil nil "../foo" nil nil nil)))
-  (should (equal (url-generic-parse-url "../foo/bar") (url-parse-make-urlobj 
nil nil nil nil nil "../foo/bar" nil nil nil)))
-  (should (equal (url-generic-parse-url "../foo/bar/") (url-parse-make-urlobj 
nil nil nil nil nil "../foo/bar/" nil nil nil)))
-  (should (equal (url-generic-parse-url "./this:that") (url-parse-make-urlobj 
nil nil nil nil nil "./this:that" nil nil nil)))
-  ;; for more examples of relative-path references, see tests covering section 
4.4. Same-Document Reference
-  )
-
-(ert-deftest url-generic-parse-url/absolute-uri ()
-  "RFC 3986, section 4.3. Absolute URI / absolute URI: absolute form of a URI 
without a fragment identifier"
-  ;; empty path
-  (should (equal (url-generic-parse-url "http://host";) (url-parse-make-urlobj 
"http" nil nil "host" nil "" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host?";) (url-parse-make-urlobj 
"http" nil nil "host" nil "?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "?query" nil nil t)))
-  ;; absolute path /
-  (should (equal (url-generic-parse-url "http://host/";) (url-parse-make-urlobj 
"http" nil nil "host" nil "/" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/?";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/?query" nil nil t)))
-  ;; absolute path /foo
-  (should (equal (url-generic-parse-url "http://host/foo";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo?query" nil nil t)))
-  ;; absolute path /foo/
-  (should (equal (url-generic-parse-url "http://host/foo/";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/?query" nil nil t)))
-  ;; absolute path /foo/bar
-  (should (equal (url-generic-parse-url "http://host/foo/bar";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar?query" nil nil t)))
-  ;; absolute path /foo/bar/
-  (should (equal (url-generic-parse-url "http://host/foo/bar/";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?" nil nil t)))
-  (should (equal (url-generic-parse-url "http://host/foo/bar/?query";) 
(url-parse-make-urlobj "http" nil nil "host" nil "/foo/bar/?query" nil nil t)))
-  ;; example mentioned in RFC3986, section 5.4. Reference Resolution Examples
-  (should (equal (url-generic-parse-url "http://a/b/c/d;p?q";) 
(url-parse-make-urlobj "http" nil nil "a" nil "/b/c/d;p?q" nil nil t))))
-
-(ert-deftest url-generic-parse-url/same-document-reference ()
-  "RFC 3986, section 4.4. Same-Document Reference / same-document reference: 
empty or number sign (\"#\") followed by a fragment identifier"
-  (should (equal (url-generic-parse-url "") (url-parse-make-urlobj nil nil nil 
nil nil "" nil nil nil)))
-  (should (equal (url-generic-parse-url "#") (url-parse-make-urlobj nil nil 
nil nil nil "" "" nil nil)))
-  (should (equal (url-generic-parse-url "#foo") (url-parse-make-urlobj nil nil 
nil nil nil "" "foo" nil nil))))
-
-(provide 'url-parse-tests)
-
-;;; url-parse-tests.el ends here
diff --git a/test/file-organisation.org b/test/file-organisation.org
index b754000..226e12d 100644
--- a/test/file-organisation.org
+++ b/test/file-organisation.org
@@ -50,5 +50,5 @@ directory as the feature. Hence, the lisp file ~flymake.el~ 
should have test
 files in ~/test/automated/lisp/progmodes/flymake-tests.el~ should reside in a
 directory called ~/test/automated/lisp/progmodes/flymake-resources~.
 
-No guidance is given for the organisation of resource files inside the
-~-resource~ directory; files can be organised at the author's discretion.
+No guidance is given for the organization of resource files inside the
+~-resource~ directory; files can be organized at the author's discretion.
diff --git a/test/automated/data/package/macro-problem-package-1.0/macro-aux.el 
b/test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-aux.el
similarity index 100%
rename from test/automated/data/package/macro-problem-package-1.0/macro-aux.el
rename to 
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-aux.el
diff --git 
a/test/automated/data/package/macro-problem-package-1.0/macro-problem.el 
b/test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-problem.el
similarity index 100%
rename from 
test/automated/data/package/macro-problem-package-1.0/macro-problem.el
rename to 
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-problem.el
diff --git a/test/automated/data/package/macro-problem-package-2.0/macro-aux.el 
b/test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-aux.el
similarity index 100%
rename from test/automated/data/package/macro-problem-package-2.0/macro-aux.el
rename to 
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-aux.el
diff --git 
a/test/automated/data/package/macro-problem-package-2.0/macro-problem.el 
b/test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-problem.el
similarity index 100%
rename from 
test/automated/data/package/macro-problem-package-2.0/macro-problem.el
rename to 
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-problem.el
diff --git a/test/lisp/emacs-lisp/package-tests.el 
b/test/lisp/emacs-lisp/package-tests.el
index 7206084..f8e0572 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -244,7 +244,7 @@ Must called from within a `tar-mode' buffer."
 
 (ert-deftest package-test-macro-compilation ()
   "Install a package which includes a dependency."
-  (with-package-test (:basedir "data/package")
+  (with-package-test (:basedir "package-resources")
     (package-install-file (expand-file-name "macro-problem-package-1.0/"))
     (require 'macro-problem)
     ;; `macro-problem-func' uses a macro from `macro-aux'.
diff --git a/test/lisp/filenotify-tests.el b/test/lisp/filenotify-tests.el
index d6322c2..376904d 100644
--- a/test/lisp/filenotify-tests.el
+++ b/test/lisp/filenotify-tests.el
@@ -136,7 +136,7 @@ being the result.")
   (cdr file-notify--test-remote-enabled-checked))
 
 (defun file-notify--test-library ()
-  "The used libray for the test, as string.
+  "The used library for the test, as a string.
 In the remote case, it is the process name which runs on the
 remote host, or nil."
   (if (null (file-remote-p temporary-file-directory))
diff --git a/test/automated/url-expand-tests.el 
b/test/lisp/url/url-expand-tests.el
similarity index 100%
rename from test/automated/url-expand-tests.el
rename to test/lisp/url/url-expand-tests.el
diff --git a/test/lisp/url/url-parse-tests.el b/test/lisp/url/url-parse-tests.el
index 154e091..443034a 100644
--- a/test/lisp/url/url-parse-tests.el
+++ b/test/lisp/url/url-parse-tests.el
@@ -156,7 +156,7 @@
   ;; example mentioned in RFC3986, section 5.4. Reference Resolution Examples
   (should (equal (url-generic-parse-url "http://a/b/c/d;p?q";) 
(url-parse-make-urlobj "http" nil nil "a" nil "/b/c/d;p?q" nil nil t))))
 
-(ert-deftest url-generic-parse-url/same-decument-reference ()
+(ert-deftest url-generic-parse-url/same-document-reference ()
   "RFC 3986, section 4.4. Same-Document Reference / same-document reference: 
empty or number sign (\"#\") followed by a fragment identifier"
   (should (equal (url-generic-parse-url "") (url-parse-make-urlobj nil nil nil 
nil nil "" nil nil nil)))
   (should (equal (url-generic-parse-url "#") (url-parse-make-urlobj nil nil 
nil nil nil "" "" nil nil)))
diff --git a/test/etags/lua-src/test.lua b/test/manual/etags/lua-src/test.lua
similarity index 100%
rename from test/etags/lua-src/test.lua
rename to test/manual/etags/lua-src/test.lua
diff --git a/test/etags/ruby-src/test.rb b/test/manual/etags/ruby-src/test.rb
similarity index 100%
rename from test/etags/ruby-src/test.rb
rename to test/manual/etags/ruby-src/test.rb
diff --git a/test/etags/ruby-src/test1.ruby 
b/test/manual/etags/ruby-src/test1.ruby
similarity index 100%
rename from test/etags/ruby-src/test1.ruby
rename to test/manual/etags/ruby-src/test1.ruby



reply via email to

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