]> code.delx.au - gnu-emacs/commitdiff
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
authorK. Handa <handa@gnu.org>
Fri, 8 Jan 2016 14:21:43 +0000 (23:21 +0900)
committerK. Handa <handa@gnu.org>
Fri, 8 Jan 2016 14:21:43 +0000 (23:21 +0900)
35 files changed:
.gitignore
admin/notes/triage
configure.ac
etc/NEWS
lib-src/Makefile.in
lisp/Makefile.in
lisp/calendar/cal-hebrew.el
lisp/calendar/cal-iso.el
lisp/calendar/cal-tex.el
lisp/calendar/solar.el
lisp/emacs-lisp/autoload.el
lisp/linum.el
lisp/net/puny.el
lisp/org/ChangeLog.1
lwlib/Makefile.in
nt/Makefile.in
oldXMenu/Makefile.in
src/Makefile.in
src/emacs.c
src/keyboard.c
src/kqueue.c
src/sysdep.c
test/automated/url-parse-tests.el [deleted file]
test/file-organisation.org
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-aux.el [moved from test/automated/data/package/macro-problem-package-1.0/macro-aux.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-1.0/macro-problem.el [moved from test/automated/data/package/macro-problem-package-1.0/macro-problem.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-aux.el [moved from test/automated/data/package/macro-problem-package-2.0/macro-aux.el with 100% similarity]
test/lisp/emacs-lisp/package-resources/macro-problem-package-2.0/macro-problem.el [moved from test/automated/data/package/macro-problem-package-2.0/macro-problem.el with 100% similarity]
test/lisp/emacs-lisp/package-tests.el
test/lisp/filenotify-tests.el
test/lisp/url/url-expand-tests.el [moved from test/automated/url-expand-tests.el with 100% similarity]
test/lisp/url/url-parse-tests.el
test/manual/etags/lua-src/test.lua [moved from test/etags/lua-src/test.lua with 100% similarity]
test/manual/etags/ruby-src/test.rb [moved from test/etags/ruby-src/test.rb with 100% similarity]
test/manual/etags/ruby-src/test1.ruby [moved from test/etags/ruby-src/test1.ruby with 100% similarity]

index a8f0e9a2486089f99f9523b8d86a2128d6161781..94c4ba8e4bba77bd2f43177e3a0f3774610f5e38 100644 (file)
@@ -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
index bc91b6c26f7767fa9b16cfd1f8ba361756247ae5..5b0e35c144c5ac3cc1c631e17d9b573f47470d0a 100644 (file)
@@ -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.
index 2baafb99112366e99f8d810fc2a460a4caa36dd1..0aa863afe344da63599b1e61fee1cf430002eb4f 100644 (file)
@@ -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.])
     ;;
index d23c7fa8aaea8633155cee7d22596196b7bf1232..8907f7ad453d5e680402515890cedba2a687a8cd 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -28,6 +28,30 @@ otherwise leave it unmarked.
 ** 'configure' detects the kqueue file notification library on *BSD
 and Mac OS X machines.
 
+\f
+* Startup Changes in Emacs 25.2
+
+\f
+* 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.
+
+\f
+* Editing Changes in Emacs 25.2
+
 \f
 * Changes in Specialized Modes and Packages in Emacs 25.2
 
@@ -35,6 +59,21 @@ and Mac OS X machines.
 
 *** The kqueue library is integrated for *BSD and Mac OS X machines.
 
+\f
+* New Modes and Packages in Emacs 25.2
+
+\f
+* Incompatible Lisp Changes in Emacs 25.2
+
+\f
+* Lisp Changes in Emacs 25.2
+
+** Autoload files can be generated without timestamps,
+by setting `autoload-timestamps' to nil.
+
+\f
+* Changes in Emacs 25.2 on Non-Free Operating Systems
+
 \f
 * 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.
 
-\f
-* 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
index 2b65cb2e1a9ca0f0ac78a1ae5967835db0f4282d..b666508e5930dabca338ddce76607870ca84bdf6 100644 (file)
@@ -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
index 164df2555854ddeacfd36940ac54a31181164434..5042c0f2ab97c3e6eca4b5a64da2f63367753462 100644 (file)
@@ -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)
index 8bb1b88ee622c44b28af9467382e95d56e993664..3a3cb0fa853ab076b5e9a1d8ed257b0a06bd1c7c 100644 (file)
@@ -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
index f3cc430590f8cf753691ee89f5fd1538a7b3fe77..2aa95502e58c5ea24a781b35f7ef544144d2ec5e 100644 (file)
@@ -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
index e512faef15e6862936608fc694d66864d4e54cd5..ec399548e7798dd10cdcf830cb025c198d4506a0 100644 (file)
@@ -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)
index a2f9d58585a189b5d1ab82abd72e600f0053c5c7..0a8cd81e1a26a17a0a730a89fb33e55529186813 100644 (file)
@@ -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)
 
index 12d0a94127f54be6ceca87bb47405eddb09d8c39..84ba544800b18338007041cbbd29f9cf0f49ffe0 100644 (file)
@@ -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))
index 4e0bc56877a72231a949fc97c40c5cd8e9973748..903586a4153b755ee736c8aa5a75fb53c87db954 100644 (file)
@@ -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)))
index f2fa346434862fd694c3f95fdd96a2c66796d2c9..b3a82a293285e4ddf116e196ea55e04223bab201 100644 (file)
@@ -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
index 35e6ef1eccd9e68899ae97bebf06dbdf2c3ad244..2c78ce064d1a575f2a66067a0c0092c113a97383 100644 (file)
        * 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.
index bfeef16571afdbeb443fd07eb9da69ca95457c01..be12b4235b684781600bb9eced74169ac05f2d6e 100644 (file)
@@ -44,6 +44,7 @@ RANLIB=@RANLIB@
 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
index fc6887f163eab3fc54e676d256874ba7aa4eb20f..86fca5f8e36ec8ada55d93c4769a878c3178b89e 100644 (file)
@@ -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
index de5b8e1114c052253949d3b1c770b41fc2ad5e0c..71dd5663f43c722737ad0d73f7fb24a9c35b9f74 100644 (file)
@@ -58,12 +58,12 @@ CC=@CC@
 CFLAGS=@CFLAGS@
 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
index f96ebb2aeeb370806f7ec2619db213c8f0a4941a..97505b986870159814fcb245e347cc882caef4a0 100644 (file)
@@ -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
index 926aa989e6a429222bed09873388e7c58e7be878..d13413d880ba60bd93b11fd444d786c39a015381 100644 (file)
@@ -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.
index 6fa38aa1328e2c601fcc2881f894c3c996146ceb..eb2c7563afdf30bd921c33fce43bd9b2d300e3a1 100644 (file)
@@ -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);
 }
index 1830040637e918053eb9f40586d4a79dc93422ee..e0ee5fb9d7bc3a017d460961269cfd2de169c3a9 100644 (file)
@@ -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);
index 1af323eb8d6e441181b424de50a19cb6322b8535..a29155c144ad22bac793f29fd1b180ca053d760b 100644 (file)
@@ -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 (file)
index 443034a..0000000
+++ /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 <a.s@realize.ch>
-;; 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:John.Doe@example.com") (url-parse-make-urlobj "mailto" nil nil nil nil "John.Doe@example.com" 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
index b7540001cc4f86efe217bdaaf2b20dac8d65cd36..226e12d5330865a4abb4828c685eb544d8147a27 100644 (file)
@@ -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.
index 7206084f3246a588ea25ab82fc88c74f80b32dec..f8e05721255ae2d1bdc4443869b2c1c9b7634da2 100644 (file)
@@ -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'.
index d6322c22c0ecd7ef166d8970b135a4088f4f8b53..376904dd65c176a7db2062ecfd69a6be395e22ca 100644 (file)
@@ -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))
index 154e0917a43e6a02687ebcf8be1f5051c0ea4fce..443034a603e8e98b52c5b2bc23fcc0529f6a9d96 100644 (file)
   ;; 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)))