]> git.eshelyaron.com Git - emacs.git/log
emacs.git
7 years agoIn CANNOT_DUMP builds, don't prepare for unexec.
Ken Raeburn [Wed, 5 Apr 2017 06:48:49 +0000 (02:48 -0400)]
In CANNOT_DUMP builds, don't prepare for unexec.

Having a command-line argument of "dump" or "bootstrap" would trigger
behavior like not installing signal handlers.  In CANNOT_DUMP modes,
we should get signal handlers installed regardless of whatever funny
file names we decide to edit.

src/emacs.c (main) [CANNOT_DUMP]: Don't enable the "dumping"
alterations to initialization that prepares the process for unexec.

7 years agoAllow a CANNOT_DUMP build to use exec-path during bootstrap.
Ken Raeburn [Thu, 9 Mar 2017 06:15:53 +0000 (01:15 -0500)]
Allow a CANNOT_DUMP build to use exec-path during bootstrap.

During a bootstrap, loading rmail.el invokes movemail to determine its
flavor, but call-process doesn't work if exec-path is nil.

* lisp/loadup.el: Only clear exec-path if dumping.

7 years agoFix CANNOT_DUMP build on Darwin/macOS.
Ken Raeburn [Wed, 8 Mar 2017 11:28:45 +0000 (06:28 -0500)]
Fix CANNOT_DUMP build on Darwin/macOS.

* src/conf_post.h (malloc, realloc, free) [DARWIN_OS && emacs &&
CANNOT_DUMP]: Don't define as unexec_malloc, etc.
* src/emacs.c (main): Don't call unexec_init_emacs_zone.

7 years agoadd two more mhtml tests
Tom Tromey [Wed, 5 Apr 2017 21:55:22 +0000 (15:55 -0600)]
add two more mhtml tests

* test/manual/indent/html-multi-2.html: New file.
* test/manual/indent/html-multi-3.html: New file.

7 years agoenable mhtml-mode by default
Tom Tromey [Thu, 23 Mar 2017 17:34:27 +0000 (11:34 -0600)]
enable mhtml-mode by default

* lisp/files.el (auto-mode-alist): Reference mhtml-mode, not
html-mode.
(magic-fallback-mode-alist): Likewise.
* lisp/net/eww.el (eww-view-source): Use mthml-mode.

7 years agoadd mhtml-mode.el
Tom Tromey [Thu, 23 Mar 2017 17:34:18 +0000 (11:34 -0600)]
add mhtml-mode.el

* etc/NEWS: Update.
* lisp/textmodes/mhtml-mode.el: New file.
* test/manual/indent/html-multi.html: New file.
* test/lisp/textmodes/mhtml-mode-tests.el: New file.
* doc/emacs/text.texi (HTML Mode): Mention mhtml-mode.

7 years agochange sgml-mode to help multi-html mode
Tom Tromey [Thu, 23 Mar 2017 17:33:47 +0000 (11:33 -0600)]
change sgml-mode to help multi-html mode

* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): New
defconst.
(sgml-syntax-propertize): Use it.
(sgml--find-<>-backward): New function.
(sgml-parse-tag-backward): Use it.

7 years agomake js.el respect prog-first-column
Tom Tromey [Thu, 23 Mar 2017 17:33:22 +0000 (11:33 -0600)]
make js.el respect prog-first-column

* lisp/progmodes/js.el (js--proper-indentation): Call prog-first-column.

7 years agomake smie.el respect prog-first-column
Tom Tromey [Thu, 23 Mar 2017 17:32:59 +0000 (11:32 -0600)]
make smie.el respect prog-first-column

* lisp/emacs-lisp/smie.el (smie-indent-bob): Call prog-first-column.

7 years agochange viper to use derived-mode-p
Tom Tromey [Sun, 19 Mar 2017 16:52:28 +0000 (10:52 -0600)]
change viper to use derived-mode-p

* lisp/subr.el (provided-mode-derived-p): New function.
(derived-mode-p): Use it.
* lisp/emulation/viper.el (viper-mode): Use derived-mode-p.
(this-major-mode-requires-vi-state): Use provided-mode-derived-p.
(set-viper-state-in-major-mode): Use derived-mode-p.

7 years agochange align to use derived-mode-p
Tom Tromey [Sat, 18 Mar 2017 22:06:05 +0000 (23:06 +0100)]
change align to use derived-mode-p

* lisp/align.el (align-region): Use derived-mode-p.

7 years agochange org to use derived-mode-p
Tom Tromey [Sat, 18 Mar 2017 22:03:15 +0000 (23:03 +0100)]
change org to use derived-mode-p

* lisp/org/org-list.el (org-list-insert-radio-list): Use
derived-mode-p.
* lisp/org/org-table.el (orgtbl-setup, orgtbl-toggle-comment): Use
derived-mode-p.

7 years agochange semantic to use derived-mode-p
Tom Tromey [Sat, 18 Mar 2017 22:01:16 +0000 (23:01 +0100)]
change semantic to use derived-mode-p

* lisp/cedet/semantic.el (semantic-new-buffer-fcn): Use derived-mode-p.

7 years agochange calc to use derived-mode-p
Tom Tromey [Sat, 18 Mar 2017 22:00:13 +0000 (23:00 +0100)]
change calc to use derived-mode-p

* lisp/calc/calc-embed.el (calc-embedded-find-modes)
(calc-embedded-make-info): Use derived-mode-p.

7 years agochange auto-insert to use derived-mode-p
Tom Tromey [Sat, 18 Mar 2017 21:53:56 +0000 (22:53 +0100)]
change auto-insert to use derived-mode-p

* lisp/autoinsert.el (auto-insert): Use derived-mode-p.

7 years ago* lisp/info.el (Info-search): Fix typo in April 1 change.
Paul Eggert [Wed, 5 Apr 2017 16:43:14 +0000 (09:43 -0700)]
* lisp/info.el (Info-search): Fix typo in April 1 change.

7 years agoMinor cleanups related to type-of
Paul Eggert [Wed, 5 Apr 2017 01:39:43 +0000 (18:39 -0700)]
Minor cleanups related to type-of

* src/data.c (Frecordp): Rename from Frecordp_p, for consistency.
* src/data.c (syms_of_data):
* src/frame.c (syms_of_frame): Put all the primitive type names
together, under the "Types that type-of returns" comment.

7 years ago; * lisp/emacs-lisp/package.el (describe-package-1): Tweak recent.
Glenn Morris [Wed, 5 Apr 2017 00:19:24 +0000 (20:19 -0400)]
; * lisp/emacs-lisp/package.el (describe-package-1): Tweak recent.

7 years ago* doc/lispref/package.texi (Package Archives): Mention https.
Glenn Morris [Wed, 5 Apr 2017 00:17:54 +0000 (20:17 -0400)]
* doc/lispref/package.texi (Package Archives): Mention https.

7 years agoAdvertise https for homepage of gnu.org packages
Glenn Morris [Tue, 4 Apr 2017 23:39:57 +0000 (19:39 -0400)]
Advertise https for homepage of gnu.org packages

* lisp/emacs-lisp/package.el (describe-package-1):
Use https, if supported, for the homepage of packages on gnu.org.

7 years agoDefault to https for elpa.gnu.org if gnutls available
Glenn Morris [Tue, 4 Apr 2017 23:04:52 +0000 (19:04 -0400)]
Default to https for elpa.gnu.org if gnutls available

* lisp/emacs-lisp/package.el (package-archives):
Default to https for elpa.gnu.org if gnutls is available.  Ref:
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00130.html

7 years agoMinor simplifications and doc for records
Paul Eggert [Tue, 4 Apr 2017 21:06:25 +0000 (14:06 -0700)]
Minor simplifications and doc for records

* doc/lispref/records.texi (Records): Mention size limit.
* etc/NEWS: Mention records.
* src/alloc.c (allocate_pseudovector, allocate_record):
Prefer 'PSEUDOVECTOR_SIZE_MASK' to its definiens.
(allocate_record): Check arg range here, not in callers, as this
simplifies the code.  Use allocate_vectorlike instead of
allocate_vector, to avoid duplicate runtime tests.
(Fmake_record, record): Don't mention PSEUDOVECTOR_SIZE_BITS in
the doc string, as it is not visible to the user.
(Fmake_record, record, Fcopy_record):
Prefer make_lisp_ptr to XSETVECTOR.
(record): Broaden memcpy to copy the type, too.

7 years agoFix recent changes in record data type
Eli Zaretskii [Tue, 4 Apr 2017 14:56:10 +0000 (17:56 +0300)]
Fix recent changes in record data type

* src/alloc.c (Fmake_record, Frecord, Fcopy_record): Avoid
compiler warnings when 'ptrdiff_t' is narrower than 'long int'.

7 years agoMake subprocess functions resolve the default directory
Philipp Stephani [Fri, 3 Mar 2017 16:56:01 +0000 (17:56 +0100)]
Make subprocess functions resolve the default directory

`call-process' doesn't respect file name handlers in
`default-directory', so `file-name-non-special' has to resolve them
for `process-file', `start-file-process', and
`shell-command' (Bug#25949).

* lisp/files.el (file-name-non-special): Also resolve default
directory for 'process-file', 'start-file-process', and
'shell-command'.
* test/lisp/files-tests.el
(files-tests--file-name-non-special--subprocess): Add unit test.

7 years agoMake ediff handle remote and quoted file names
Philipp Stephani [Fri, 3 Mar 2017 17:36:08 +0000 (18:36 +0100)]
Make ediff handle remote and quoted file names

Quoted file names need to be unquoted before passed to
subprocesses (Bug#25950).

* lisp/vc/ediff-diff.el (ediff-exec-process): Handle remote and quoted
file names.
* test/lisp/vc/ediff-diff-tests.el
(ediff-diff-tests--ediff-exec-process--quoted-file): Add unit test.

7 years agoBackward compatibility with pre-existing struct instances.
Stefan Monnier [Fri, 24 Mar 2017 13:21:52 +0000 (09:21 -0400)]
Backward compatibility with pre-existing struct instances.

* lisp/emacs-lisp/cl-lib.el (cl--old-struct-type-of): New function.
(cl-old-struct-compat-mode): New minor mode.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Pass `record' to
cl-struct-define to signal use of record objects.

* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class,
cl-struct-define): Enable legacy defstruct compatibility.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-old-struct,
old-struct): New tests.

* doc/lispref/elisp.texi, doc/lispref/records.texi: Document
`old-struct-compat'.

7 years agoMake the URL library use records.
Lars Brinkhoff [Tue, 21 Mar 2017 19:48:52 +0000 (20:48 +0100)]
Make the URL library use records.

* lisp/url/url.el, lisp/url/url-cache.el, lisp/url/url-dav.el,
lisp/url/url-expand.el, lisp/url/url-file.el, lisp/url/url-imap.el,
lisp/url/url-ldap.el: Use `url-p' instead of `vectorp'.

* lisp/url/url-http.el (url-http): Check for type `url' instead of
`vector'.

7 years agoMake EIEIO use records.
Stefan Monnier [Thu, 16 Mar 2017 02:48:28 +0000 (22:48 -0400)]
Make EIEIO use records.

* lisp/emacs-lisp/eieio-compat.el
(eieio--generic-static-object-generalizer): Adjust to new tags.

* lisp/emacs-lisp/eieio-core.el: Use records, and place the class object
directly as tag.
(eieio--object-class): Adjust to new tag representation.
(eieio-object-p): Rewrite, and adapt to new `type-of' behavior.
(eieio-defclass-internal): Use `make-record'.
(eieio--generic-generalizer): Adjust generalizer code accordingly.

* lisp/emacs-lisp/eieio.el (make-instance, clone): Use copy-record.

* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
Add `recordp'.

* doc/lispref/records.texi, doc/misc/eieio.texi: Update for records.

7 years agoMake cl-defstruct use records.
Lars Brinkhoff [Tue, 14 Mar 2017 12:52:40 +0000 (13:52 +0100)]
Make cl-defstruct use records.

* lisp/emacs-lisp/cl-extra.el (cl--describe-class)
(cl--describe-class-slots): Use the new `type-of'.

* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Use type-of.
(cl--generic-struct-specializers): Adjust to new tag.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): When type is nil, use records.
Use the type symbol as the tag.  Use copy-record to copy structs.
(cl--defstruct-predicate): New function.
(cl--pcase-mutually-exclusive-p): Use it.
(cl-struct-sequence-type): Can now return `record'.

* lisp/emacs-lisp/cl-preloaded.el (cl--make-slot-desc): Adjust ad-hoc
code to new format.
(cl--struct-register-child): Work with records.
(cl-struct-define): Don't touch the tag's symbol-value and
symbol-function slots when we use the type as tag.

* lisp/emacs-lisp/cl-print.el (cl-print-object): Adjust to new tag.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record):
New test.

* doc/lispref/records.texi, doc/misc/cl.texi: Update for records.

7 years agoAdd record objects with user-defined types.
Lars Brinkhoff [Sun, 6 Jan 2013 13:27:44 +0000 (14:27 +0100)]
Add record objects with user-defined types.

* src/alloc.c (allocate_record): New function.
(Fmake_record, Frecord, Fcopy_record): New functions.
(syms_of_alloc): defsubr them.
(purecopy): Work with records.

* src/data.c (Ftype_of): Return slot 0 for record objects, or type
name if record's type holds class.
(Frecordp): New function.
(syms_of_data): defsubr it.  Define `Qrecordp'.
(Faref, Faset): Work with records.

* src/fns.c (Flength): Work with records.

* src/lisp.h (prec_type): Add PVEC_RECORD.
(RECORDP, CHECK_RECORD, CHECK_RECORD_TYPE): New functions.

* src/lread.c (read1): Add syntax for records.

* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Add RECORDP.
(print_object): Add syntax for records.

* test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-2):
New test.

* test/src/alloc-tests.el (record-1, record-2, record-3):
New tests.

* doc/lispref/elisp.texi, doc/lispref/objects.texi,
doc/lispref/records.texi: Add documentation for records.

7 years agoFix a test in python-test.el
Tino Calancha [Tue, 4 Apr 2017 06:16:15 +0000 (15:16 +0900)]
Fix a test in python-test.el

Fix a test that breaks the test suite when it is run within a
virtual environment.
See following link for details:
https://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00857.html
* test/lisp/progmodes/python-tests.el
(python-shell-calculate-process-environment-7): Bind
python-shell-virtualenv-root to VIRTUAL_ENV when this var is set; otherwise
bind it to '/env'.

7 years agoThrow a `search-failed' derived error in Info search
Noam Postavsky [Sat, 1 Apr 2017 13:34:04 +0000 (09:34 -0400)]
Throw a `search-failed' derived error in Info search

The original fix for Bug#6106 switched from signalling `search-failed'
to `user-error'.  However, this breaks incremental searching over
multiple nodes because the isearch code doesn't expect a `user-error'.

* src/search.c (syms_of_search): New error, `user-search-failed',
with `user-error' and `search-failed' as parents.
* doc/lispref/errors.texi (Standard Errors): Document it.
* etc/NEWS: Announce it.
* lisp/info.el (Info-search): Use it instead of `user-error' so that
isearch will handle failed searches correctly.

7 years agoAdd Tramp test
Michael Albinus [Mon, 3 Apr 2017 12:04:06 +0000 (14:04 +0200)]
Add Tramp test

* doc/misc/tramp.texi (Remote processes): Fix typo.

* lisp/shell.el (shell): Fix typo.

* lisp/net/tramp.el (tramp-set-connection-local-variables): Simplify.

* test/lisp/net/tramp-tests.el (tramp-test30-explicit-shell-file-name):
New test.
(tramp--test-special-characters, tramp--test-utf8): Adapt docstring.
(tramp-test31-vc-registered)
(tramp-test32-make-auto-save-file-name)
(tramp-test33-make-nearby-temp-file)
(tramp-test34-special-characters)
(tramp-test34-special-characters-with-stat)
(tramp-test34-special-characters-with-perl)
(tramp-test34-special-characters-with-ls, tramp-test35-utf8)
(tramp-test35-utf8-with-stat, tramp-test35-utf8-with-perl)
(tramp-test35-utf8-with-ls)
(tramp-test36-asynchronous-requests)
(tramp-test37-recursive-load, tramp-test38-unload): Rename.

7 years ago* lisp/ses.el: Silence byte-compiler warnings.
Stefan Monnier [Mon, 3 Apr 2017 03:09:53 +0000 (23:09 -0400)]
* lisp/ses.el: Silence byte-compiler warnings.

(ses-jump, ses-recalculate-cell, ses-define-local-printer): Silence
byte-compiler warnings.

7 years agoFix bugs in simplified test dependencies
Paul Eggert [Sun, 2 Apr 2017 20:09:56 +0000 (13:09 -0700)]
Fix bugs in simplified test dependencies

Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00017.html
* test/Makefile.in (LOGFILES, TESTS): Omit leading "./".
(TESTS): Omit unnecessary patsubst.
(test_template): Redo dependency heuristic, hopefully
correctly this time.  It's the .log file that depends,
not the phony test target.  Declare the phonies to be PHONY.
Resurrect the exception for the *-tests subdirectory.
Adjust to the fact that leading "./" is omitted now.

7 years agoFix typo in docstring
Wilfred Hughes [Sun, 2 Apr 2017 18:29:14 +0000 (19:29 +0100)]
Fix typo in docstring

* lisp/help.el: Fix typo.

7 years ago; Auto-commit of loaddefs files.
Glenn Morris [Sun, 2 Apr 2017 16:11:26 +0000 (12:11 -0400)]
; Auto-commit of loaddefs files.

7 years ago; * lisp/replace.el (how-many, flush-lines, keep-lines): Remove empty line.
Tino Calancha [Sun, 2 Apr 2017 12:16:37 +0000 (21:16 +0900)]
; * lisp/replace.el (how-many, flush-lines, keep-lines): Remove empty line.

7 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Sun, 2 Apr 2017 09:03:14 +0000 (11:03 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

7 years agoApply connecion-local variables for shells
Michael Albinus [Sun, 2 Apr 2017 09:02:54 +0000 (11:02 +0200)]
Apply connecion-local variables for shells

* doc/misc/tramp.texi (Remote processes): Show use of connection-local
variables.  Don't mention Emacs 23 anymore.
(Frequently Asked Questions): Precise Emacs and MS Windows version.

* lisp/files-x.el (connection-local-normalize-criteria):
Suppress nil properties.
(connection-local-set-profiles, with-connection-local-profiles):
Adapt docstring.

* lisp/shell.el (shell): Apply connecion-local variables.

7 years agoPropertize only perl prototype chars `][$%&*;+@\' as punctuation
Evgeni Kolev [Mon, 27 Mar 2017 06:30:10 +0000 (09:30 +0300)]
Propertize only perl prototype chars `][$%&*;+@\' as punctuation

This prevents variables in signatures such as `sub add ($a, $b)' from
being treated as punctuation.
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Strictly match only prototype characters as punctuation.  (Bug#26037)

Copyright-paperwork-exempt: yes

7 years agofix two js-mode syntax propertization bugs
Tom Tromey [Mon, 13 Mar 2017 20:53:59 +0000 (21:53 +0100)]
fix two js-mode syntax propertization bugs

Bug#26070:
* lisp/progmodes/js.el (js--syntax-propertize-regexp-regexp): Add
zero-or-one to regular expression.
(js-syntax-propertize-regexp): Update.  Propertize body of regexp
literal up to END.
* test/lisp/progmodes/js-tests.el (js-mode-propertize-bug-1)
(js-mode-propertize-bug-2): New tests.

7 years agoSimplify test dependency generation
Paul Eggert [Sat, 1 Apr 2017 19:15:03 +0000 (12:15 -0700)]
Simplify test dependency generation

Generate default dependencies by using GNU extensions to ‘make’
rather than via a hacky auxiliary program and script.
* .gitignore: Remove test/make-test-deps.mk.
* test/Makefile.in (ELFILES, LOGFILES, TESTS):
Use :=, not =, to avoid multiple redundant invocations of ‘find’.
(test_template): Infer dependency directly instead of via
make-test-deps.mk.
(check-doit): Prepend ‘@’ to avoid excessively long ‘make’ output.
(clean): No need to clean make-test-deps.mk.
(make-test-deps.mk): Remove rule.
* test/make-test-deps.emacs-lisp: Remove.

7 years ago; Spelling fixes
Paul Eggert [Sat, 1 Apr 2017 17:46:48 +0000 (10:46 -0700)]
; Spelling fixes

7 years ago* test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet tests
Stefan Monnier [Sat, 1 Apr 2017 16:11:07 +0000 (12:11 -0400)]
* test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet tests

(cl-lib-symbol-macrolet): Fix last test so it doesn't break the whole
test suite.
(cl-lib-symbol-macrolet-2): New test.

7 years agoUse only posix options in a ediff-ptch test
Tino Calancha [Sat, 1 Apr 2017 08:02:49 +0000 (17:02 +0900)]
Use only posix options in a ediff-ptch test

* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Use just "-b" patch option.  Don't assume a particular suffix for
the backup files.

7 years agoInitial implementation of HTTP Digest qop for url
Jarno Malmari [Sat, 1 Apr 2017 06:19:46 +0000 (09:19 +0300)]
Initial implementation of HTTP Digest qop for url

This also refactors digest authentication functions in url-auth.el.

* lisp/url/url-auth.el (url-digest-auth, url-digest-auth-create-key):
(url-digest-auth-build-response, url-digest-auth-directory-id-assoc):
(url-digest-auth-name-value-string, url-digest-auth-source-creds):
(url-digest-cached-key, url-digest-cache-key, url-digest-find-creds):
(url-digest-find-new-key, url-digest-prompt-creds): Add new functions
to simplify code and aid in unit testing.
(url-digest-auth-build-response): Hook up new functionality, or fall
back to previous.
(url-digest-auth-make-request-digest-qop):
(url-digest-auth-make-cnonce, url-digest-auth-nonce-count):
(url-digest-auth-name-value-string): Add new helper functions.
* test/lisp/url/url-auth-tests.el (url-auth-test-colonjoin):
(url-auth-test-digest-ha1, url-auth-test-digest-ha2):
(url-auth-test-digest-request-digest): Add a few tests as now more
features are testable via intermediate functions.
(url-auth-test-challenges, url-auth-test-digest-request-digest): Test
the new implementation.  Parts of these were accidentally already
merged in the past.

7 years agoTweak ediff-ptch test in previous commit a bit more
Tino Calancha [Sat, 1 Apr 2017 03:28:54 +0000 (12:28 +0900)]
Tweak ediff-ptch test in previous commit a bit more

* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Apply patches without requiring a shell.  Add some comments.

7 years agoTweak an ediff-ptch test
Glenn Morris [Fri, 31 Mar 2017 21:30:01 +0000 (17:30 -0400)]
Tweak an ediff-ptch test

* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Add skip conditions.  Avoid going through shell where not needed.

7 years ago* lisp/net/tramp-smb.el (tramp-smb-errors):
Michael Albinus [Fri, 31 Mar 2017 18:04:15 +0000 (20:04 +0200)]
* lisp/net/tramp-smb.el (tramp-smb-errors):

Add "NT_STATUS_PASSWORD_MUST_CHANGE".

7 years ago* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet): New test.
Stefan Monnier [Fri, 31 Mar 2017 14:05:12 +0000 (10:05 -0400)]
* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet): New test.

7 years agodired-mark-suffix: New command
Tino Calancha [Fri, 31 Mar 2017 08:27:08 +0000 (17:27 +0900)]
dired-mark-suffix: New command

Now dired-mark-extension prepends '.' to extension when not present.
Add command dired-mark-suffix to preserve the previous
behaviour (Bug#25942).
* lisp/dired-x.el (dired-mark-suffix): New command;
mark files ending in a given suffix.
(dired--mark-suffix-interactive-spec): New defun.
(dired-mark-extension, dired-mark-suffix): Use it.
* doc/misc/dired-x.texi (Advanced Mark Commands): Update manual.
* test/lisp/dired-x-tests.el: New test suite; add test for these features.
; * etc/NEWS (Incompatible Lisp Changes in Emacs 26.1):
; Mention these changes.

7 years agoUse find -delete if available
Paul Eggert [Fri, 31 Mar 2017 02:26:58 +0000 (19:26 -0700)]
Use find -delete if available

This shortens the ‘make’ output and should avoid some
repetitive scanning of directories during a build.
* configure.ac (FIND_DELETE): New var.
* lisp/Makefile.in (compile-always, bootstrap-clean):
* test/Makefile.in (clean, bootstrap-clean): Use it.
* test/Makefile.in (ELCFILES, LOGSAVEFILES): Remove; no longer needed.

7 years agoRemove gnus-boundp
Mark Oteiza [Fri, 31 Mar 2017 02:22:47 +0000 (22:22 -0400)]
Remove gnus-boundp

* lisp/gnus/gnus-start.el (gnus-display-time-event-handler): Use
bound-and-true-p.
* lisp/gnus/gnus-util (gnus-boundp): Remove.

7 years agoStop `fixup-whitespace' adding trailing whitespace (Bug#18783)
Niels Möller [Tue, 21 Oct 2014 09:59:11 +0000 (11:59 +0200)]
Stop `fixup-whitespace' adding trailing whitespace (Bug#18783)

* lisp/simple.el (fixup-whitespace): Insert no spaces if point is at
end of line after deleting horizontal whitespace.

Copyright-paperwork-exempt: yes

7 years ago* src/inotify.c (add_watch): Add comment.
Paul Eggert [Fri, 31 Mar 2017 00:47:58 +0000 (17:47 -0700)]
* src/inotify.c (add_watch): Add comment.

7 years agoMinor filenotify.el fixes
Andreas Politz [Fri, 31 Mar 2017 00:44:37 +0000 (17:44 -0700)]
Minor filenotify.el fixes

* lisp/filenotify.el: Require subr-x.
(file-notify-callback): Use equal, not eq.

7 years agoFix a small incompatibility in ibuffer
John Mastro [Thu, 30 Mar 2017 23:01:41 +0000 (16:01 -0700)]
Fix a small incompatibility in ibuffer

Translate nil values from column functions to the empty string, so that
subsequent calls to string-width don't signal an error (Bug#26317).
* lisp/ibuffer.el (ibuffer-compile-format): If a column function returns
nil, treat it like the empty string.

7 years agoFix C++ fontification problems 500 bytes after typing a space, and other bugs
Alan Mackenzie [Thu, 30 Mar 2017 20:24:39 +0000 (20:24 +0000)]
Fix C++ fontification problems 500 bytes after typing a space, and other bugs

Also implement the "asymmetric space" rule for fontifying otherwise
ambiguous
declarations/expressions.

* lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Don't set
c-new-BEG or c-new-END when there is no need.
(c-forward-decl-or-cast-1): Add "CASE 17.5" to implement the "asymmetric
space" rule.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): New function,
extracted from c-font-lock-declarations.  Add to this function processing to
make `context' 'decl for lines contained within parens when these are also
declarations.
(c-font-lock-declarations): Call the newly extracted function above in place
of inline code.

* lisp/progmodes/cc-mode.el (c-fl-decl-start): Set point before calling
c-literal-start.

* lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag): New user option.

* doc/misc/cc-mode.texi (Misc Font Locking): New node documenting the new
"asymmetric fontification" rule, including the variable
c-asymmetric-fontification-flag.

7 years agoSome inotify cleanup
Paul Eggert [Thu, 30 Mar 2017 18:08:23 +0000 (11:08 -0700)]
Some inotify cleanup

This catches some problems with integer overflow and races
that I noticed in inotify.c after reviewing the changes
installed to fix Bug#26126.
* src/fns.c, src/lisp.h (equal_no_quit): Now extern.
* src/inotify.c (aspect_to_inotifymask):
Check for cycles and for improper lists.
(make_lispy_mask, lispy_mask_match_p): Remove.
All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER.
(inotifyevent_to_event, add_watch):
Don’t assume watch descriptors and cookies fit in fixnums.
(add_watch): Use assoc_no_quit, not Fassoc.
Avoid integer overflow in (very!) long-running processes where
the Emacs watch ID could overflow.  Avoid some duplicate code.
(find_descriptor): New function.
(remove_descriptor): First arg is now the returned value from
find_descriptor, rather than the descriptor.  This way, the
value can be removed without calling Fdelete, which might quit.
Wait until the end (when watch_list is consistent) before signaling
any errors.
(remove_watch, inotify_callback):
Use find_descriptor to avoid the need for Fdelete.
(inotify_callback): Use simpler tests for ioctl failure.
Free temporary buffer if signaled, and put it on the stack if small.
Use ssize_t to index through read results, to avoid a cast.
(valid_watch_descriptor): New function, with a tighter check.
(Finotify_rm_watch, Finotify_valid_p): Use it.
(Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead
of Fassoc.  Do not assume the first assoc succeeds.
* test/src/inotify-tests.el (inotify-valid-p-simple):
Add inotify-valid-p tests, some of which dump core without
the fixes noted above.

7 years ago* lisp/net/tramp-sh.el (tramp-get-remote-locale): Add "C.UTF-8" as candidate.
Michael Albinus [Thu, 30 Mar 2017 15:18:17 +0000 (17:18 +0200)]
* lisp/net/tramp-sh.el (tramp-get-remote-locale): Add "C.UTF-8" as candidate.

7 years ago* lisp/cedet/semantic/wisent/wisent.el (wisent-automaton-p): Use obarrayp.
Stefan Monnier [Thu, 30 Mar 2017 14:44:35 +0000 (10:44 -0400)]
* lisp/cedet/semantic/wisent/wisent.el (wisent-automaton-p): Use obarrayp.

7 years agoFix assoc_no_quit so that it does not quit
Paul Eggert [Thu, 30 Mar 2017 05:34:02 +0000 (22:34 -0700)]
Fix assoc_no_quit so that it does not quit

The problem was that it called Fequal, which can quit.
* src/fns.c (enum equal_kind):
New enum, to be used in place of a boolean.
(equal_no_quit): New function.
(Fmemql, Feql): Use it to compare floats, as a minor tuneup.
(assoc_no_quit): Use it to avoid quitting, the main point here.
(internal_equal): Generalize bool to enum equal_kind arg, so that
there are now 3 possibilities instead of 2.  Do not signal an
error if EQUAL_NO_QUIT.  Put the arg before the depth, since depth
should be irrelevant if the arg is EQUAL_NO_QUIT.  All callers
changed.

7 years agoAmend gitmerge to recognize the injunction "don't merge".
Alan Mackenzie [Wed, 29 Mar 2017 17:58:37 +0000 (17:58 +0000)]
Amend gitmerge to recognize the injunction "don't merge".

* admin/gitmerge.el (gitmerge-skip-regexp): amend regexp to match "don't" as
well as "do not".

7 years agoAdd one more CSS pseudo-class
Simen Heggestøyl [Wed, 29 Mar 2017 17:50:18 +0000 (19:50 +0200)]
Add one more CSS pseudo-class

* lisp/textmodes/css-mode.el (css-pseudo-class-ids): Add
`focus-within'.

7 years agoUpdate list of CSS pseudo-classes
Simen Heggestøyl [Wed, 29 Mar 2017 17:39:04 +0000 (19:39 +0200)]
Update list of CSS pseudo-classes

* lisp/textmodes/css-mode.el (css-pseudo-class-ids): Update list of
pseudo-classes.

7 years agoAdjust some search failure errors in info.el
Noam Postavsky [Tue, 28 Mar 2017 14:10:34 +0000 (10:10 -0400)]
Adjust some search failure errors in info.el

* lisp/info.el (Info-select-node): The search for beginning of node is
an internal detail, and is not normally expected to fail, so it should
not be a user error.
(Info-complete-menu-item): Failing to find a menu indicates the user
searched for a menu when there isn't one, so change to `use-error'.

7 years ago* lisp/progmodes/cc-defs.el (c-version): Restore c-version to 5.33
Alan Mackenzie [Tue, 28 Mar 2017 20:25:34 +0000 (20:25 +0000)]
* lisp/progmodes/cc-defs.el (c-version):  Restore c-version to 5.33

7 years agoDon’t mishandle (format "%i" -1.0)
Paul Eggert [Tue, 28 Mar 2017 19:44:09 +0000 (12:44 -0700)]
Don’t mishandle (format "%i" -1.0)

* src/editfns.c (styled_format): Treat %i like %d when converting arg.

7 years ago* lisp/emacs-lisp/ert.el (ert-run-tests): Make INTERACTIVE arg optional.
Noam Postavsky [Tue, 28 Mar 2017 13:40:45 +0000 (09:40 -0400)]
* lisp/emacs-lisp/ert.el (ert-run-tests): Make INTERACTIVE arg optional.

7 years ago* src/inotify.c (Finotify_add_watch): aspect can also be a symbol.
Michael Albinus [Tue, 28 Mar 2017 11:38:49 +0000 (13:38 +0200)]
* src/inotify.c (Finotify_add_watch): aspect can also be a symbol.

7 years agoDon't add `search-failed' to ignored errors in info.el (Bug#6106)
Noam Postavsky [Fri, 24 Mar 2017 03:54:58 +0000 (23:54 -0400)]
Don't add `search-failed' to ignored errors in info.el (Bug#6106)

* lisp/info.el: Stop adding `search-failed' to `debug-ignored-errors'.
(Info-select-node, Info-search): Replace (signal 'search-failed ...)
with (user-error "Search failed: "...).

7 years agoFix obsolete ‘test/automated’ references
Paul Eggert [Mon, 27 Mar 2017 18:22:54 +0000 (11:22 -0700)]
Fix obsolete ‘test/automated’ references

* Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean)
(bootstrap-clean, maintainer-clean):
Clean ‘test’, not ‘test/automated’.  Test for existence of
subdirectory only for ‘test’, not for directories that should
always exist.
* admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el:
* lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el:
* lisp/man.el (Man-parse-man-k):
* lisp/url/url-domsuf.el, make-dist:
* test/file-organization.org:
Fix obsolete references to test/automated.

7 years agoshr-image-fetched: Work for narrowed Gnus article
Katsumi Yamaoka [Mon, 27 Mar 2017 09:05:41 +0000 (09:05 +0000)]
shr-image-fetched: Work for narrowed Gnus article

See <8737e3msun.fsf@gmail.com> of bug#26231 in the bug-gnu-emacs list.

* lisp/net/shr.el (shr-image-fetched): Work for narrowed article.

7 years ago* lisp/net/tramp.el (tramp-file-name-handler): Autoload it.
Michael Albinus [Mon, 27 Mar 2017 08:13:11 +0000 (10:13 +0200)]
* lisp/net/tramp.el (tramp-file-name-handler): Autoload it.

7 years agoAdd check for expected backtrace in module calls.
Philipp Stephani [Sun, 20 Dec 2015 20:59:10 +0000 (21:59 +0100)]
Add check for expected backtrace in module calls.

* test.el (mod-test-non-local-exit-signal-test): Compare actual
  backtrace to expected backtrace.

7 years agoFix redisplay glitches due to recent change in redisplay_internal
Eli Zaretskii [Sun, 26 Mar 2017 18:36:52 +0000 (21:36 +0300)]
Fix redisplay glitches due to recent change in redisplay_internal

* src/xdisp.c (redisplay_internal): A better fix for bug#26097.
See http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00695.html
for the problems caused by the original fix.

7 years agoFix Bug#26258
Michael Albinus [Sun, 26 Mar 2017 15:37:00 +0000 (17:37 +0200)]
Fix Bug#26258

* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Autoload.  Call `tramp-register-foreign-file-name-handler'.  (Bug#26258)

* lisp/net/tramp.el (tramp-autoload-file-name-handler): Remove.
(tramp-register-autoload-file-name-handlers)
(tramp-register-file-name-handlers): Do not handle
`tramp-autoload-file-name-handler' anymore.  Mark `operations'
the handlers are responsible for.
(tramp-register-foreign-file-name-handler): New defun.

7 years agoMinor fixes for inotify.c and filenotify.el
Andreas Politz [Sun, 26 Mar 2017 09:41:12 +0000 (11:41 +0200)]
Minor fixes for inotify.c and filenotify.el

* lisp/filenotify.el (file-notify--watch-absolute-filename):
Add docstring.
(file-notify-callback): Simplify.

* src/inotify.c (Finotify_add_watch): Adapt docstring.

7 years ago; Format files from last commit
Michael Albinus [Sun, 26 Mar 2017 07:42:40 +0000 (09:42 +0200)]
; Format files from last commit

7 years agoFix issues regarding inotify file-notification
Andreas Politz [Sun, 26 Mar 2017 07:21:56 +0000 (09:21 +0200)]
Fix issues regarding inotify file-notification

Remove special code handling the inotify back-end.
* lisp/filenotify.el (file-notify--watch): New struct
representing a file-watch.
(file-notify-descriptors): Use the new struct as hash-value.
(file-notify-handle-event): Check that event is a cons.
(file-notify--rm-descriptor, file-notify--event-watched-file)
(file-notify--event-file-name, file-notify--event-file1-name)
(file-notify-callback, file-notify-add-watch)
(file-notify-rm-watch, file-notify-valid-p): Use new struct.
Remove special code handling inotify descriptors.  Remove code
handling multiple clients per descriptor.
(file-notify--descriptor): Remove unused function.

Let inotify-add-watch return a unique descriptor on every
call, like every other back-end does (Bug#26126).  Prevent
multiple clients from interfering with each other, when
watching a shared descriptor.
* src/inotify.c (watch_list): Extend the format by including a
id and the provided mask.
(INOTIFY_DEFAULT_MASK): Default mask used for all clients.
(make_watch_descriptor): Removed.
(make_lispy_mask, lispy_mask_match_p): New functions.
(inotifyevent_to_event): Match event against the mask provided
by the client.
(add_watch, remove_descriptor, remove_watch): New functions
for managing the watch_list.
(inotify_callback): Use the new functions.
(Finotify_add_watch, Finotify_rm_watch): Remove deprecated
flags from documentation.  Add check for validity of provided
descriptor.  Use the new functions.  Use the default mask.
(INOTIFY_DEBUG): Add new debug conditional.
(inotify-watch-list, inotify-allocated-p): New debug functions.
(symbol_to_inotifymask, syms_of_inotify): Remove deprecated symbols.

* test/lisp/filenotify-tests.el:
(file-notify-test02-rm-watch): Remove expected failure for inotify.

7 years ago* lisp/emacs-lisp/pcase.el (pcase): Comment debug message (Bug#26177).
Paul Pogonyshev [Sun, 19 Mar 2017 21:54:43 +0000 (22:54 +0100)]
* lisp/emacs-lisp/pcase.el (pcase): Comment debug message (Bug#26177).

7 years agoStop edebug getting stuck on backquote (Bug#23651)
Jens Uwe Schmidt [Sun, 29 May 2016 18:09:41 +0000 (20:09 +0200)]
Stop edebug getting stuck on backquote (Bug#23651)

* lisp/emacs-lisp/edebug.el (edebug-read-sexp): Move forward after
reading backquote or comma.

Copyright-paperwork-exempt: yes

7 years agoExpand manual section on quitting windows
Eric Abrahamsen [Fri, 24 Mar 2017 19:10:06 +0000 (12:10 -0700)]
Expand manual section on quitting windows

* doc/lispref/windows.texi (Quitting Windows): Provide more
  information about the elements of the quit-restore window parameter,
  and how they affect the behavior of quit-restore-window.

7 years agoSupport in ispell.el multiple dictionaries loaded by Hunspell
Eli Zaretskii [Sat, 25 Mar 2017 16:12:07 +0000 (19:12 +0300)]
Support in ispell.el multiple dictionaries loaded by Hunspell

* lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
Support Hunspell configurations that load more than one dictionary
by default.  Doc fix.  (Bug#25830)

7 years agoSimplify Tramp autoloading.
Michael Albinus [Sat, 25 Mar 2017 14:42:39 +0000 (15:42 +0100)]
Simplify Tramp autoloading.

* lisp/net/tramp.el (tramp-completion-file-name-handler):
Simplify autoloading.  Give it the `operations' property.
(tramp-completion-handle-expand-file-name): Remove.

7 years agoFix a segfault due to failure to realize some faces
Eli Zaretskii [Sat, 25 Mar 2017 13:59:17 +0000 (16:59 +0300)]
Fix a segfault due to failure to realize some faces

* src/xdisp.c (redisplay_internal): If the frame becomes garbaged
while redisplaying its windows, redisplay all of its windows
again.  (Bug#26097)
(init_iterator): When freeing all realized faces on all frames,
reset the 'face_change' flag of the frame whose window we are
about to iterate.

7 years agoUse a named function for 'safe-local-variable
Philipp Stephani [Sat, 25 Mar 2017 12:04:13 +0000 (13:04 +0100)]
Use a named function for 'safe-local-variable

This improves the help screen for `version-control' (Bug#25431).

* lisp/files.el (version-control-safe-local-p): New function.
(version-control): Use it.

7 years agoMake it easier to abort a series of tests with C-g
Helmut Eller [Sun, 2 Mar 2014 15:35:33 +0000 (16:35 +0100)]
Make it easier to abort a series of tests with C-g

* emacs-lisp/ert.el (ert-run-tests): Add "interactively" arg.  If
interactively is true and a test was aborted then ask if the remaining
tests should be aborted too.
(ert-run-tests-batch, ert-run-tests-interactively): Pass in
interactively arg.

7 years ago; lib-src/Makefile.in (exp_archlibdir): Drop extra '&&' from previous commit
Noam Postavsky [Sat, 25 Mar 2017 00:09:58 +0000 (20:09 -0400)]
; lib-src/Makefile.in (exp_archlibdir): Drop extra '&&' from previous commit

7 years agoDon’t require chown/chgrp for game installation
Paul Eggert [Fri, 24 Mar 2017 15:09:25 +0000 (10:09 -0500)]
Don’t require chown/chgrp for game installation

Problem reported by Joseph Mingrone in:
http://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00622.html
* lib-src/Makefile.in (exp_archlibdir): Don’t fail if chown or
chgrp fails with update-game-score and the game directory.
Instead, expect the installer to fix this up afterwards.

7 years ago* lisp/emacs-lisp/lisp-mode.el: Don't highlight \( at BOL
Stefan Monnier [Fri, 24 Mar 2017 13:39:34 +0000 (09:39 -0400)]
* lisp/emacs-lisp/lisp-mode.el: Don't highlight \( at BOL

(elisp--font-lock-backslash): Extract from lisp-el-font-lock-keywords-2.
Don't highlight \ at BOL.  Don't assume syntax-ppss preserves match-data.

7 years agoProtect against an infloop in python-mode
Philipp Stephani [Tue, 28 Feb 2017 21:21:37 +0000 (22:21 +0100)]
Protect against an infloop in python-mode

There appears to be an edge case caused by using `syntax-ppss' in a
narrowed buffer during JIT lock inside of Python triple-quote strings.
Unfortunately it is impossible to reproduce without manually
destroying the syntactic information in the Python buffer, but it has
been observed in practice.  In that case it can happen that the syntax
caches get sufficiently out of whack so that there appear to be
overlapping strings in the buffer.  As Python has no nested strings,
this situation is impossible and leads to an infloop in
`python-nav-end-of-statement'.  Protect against this by checking
whether the search for the end of the current string makes progress.

* python.el (python-nav-end-of-statement): Protect against infloop.
* progmodes/python-tests.el
(python-tests--python-nav-end-of-statement--infloop): Add unit test.

7 years ago* doc/lispref/os.texi (File Notifications):
Michael Albinus [Thu, 23 Mar 2017 16:07:55 +0000 (17:07 +0100)]
* doc/lispref/os.texi (File Notifications):

Strengthen the recommendation to use filenotify.el.

7 years agoMerge from gnulib
Paul Eggert [Thu, 23 Mar 2017 15:51:44 +0000 (08:51 -0700)]
Merge from gnulib

This incorporates:
2017-03-22 getopt: merge from glibc
* build-aux/config.sub, lib/getopt.c, lib/getopt.in.h:
* lib/getopt1.c, lib/getopt_int.h: Copy from gnulib.
* lib/gnulib.mk.in: Regenerate.

7 years agoUse lexical-bind in Tramp
Michael Albinus [Thu, 23 Mar 2017 13:58:04 +0000 (14:58 +0100)]
Use lexical-bind in Tramp

* lisp/net/tramp*.el: Add lexical-binding cookie.  Move declarations up.

* lisp/net/tramp-adb.el (tramp-adb-parse-device-names): Use `push'
rather than `add-to-list'.
(tramp-adb-get-device): Remove unused variable.

* lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): Remove unused
variable.

* lisp/net/tramp.el (auto-save-file-name-transforms): Declare.
(tramp-find-file-name-coding-system-alist): Use `push' rather
than `add-to-list'.

* test/lisp/net/tramp-tests.el: Add lexical-binding cookie.
Require 'dired.  Move declarations up.
(tramp-test32-make-nearby-temp-file): Wrap `make-nearby-temp-file'
and `temporary-file-directory' calls with `with-no-warnings'.
(tramp-test35-asynchronous-requests): Mark unused variable.

7 years agoDo not include comment start chars in ffap string
Kaushal Modi [Fri, 17 Mar 2017 22:03:23 +0000 (18:03 -0400)]
Do not include comment start chars in ffap string

* lisp/ffap.el (ffap-string-at-point): If the point is in a comment,
ensure that the returned string does not contain the comment start
characters (especially for major modes that have '//' as comment start
characters).  Otherwise, in a major mode like c-mode, with `ido-mode'
enabled and `ido-use-filename-at-point' set to `guess', doing "C-x
C-f" on a "//foo" comment will initiate an attempt to access a path
"//foo" (Bug#24057).

Co-authored-by: Noam Postavsky <npostavs@gmail.com>
7 years agoc:/Temp/gtk-window-move/ChangeLog.txt
Martin Rudalics [Thu, 23 Mar 2017 06:51:19 +0000 (07:51 +0100)]
c:/Temp/gtk-window-move/ChangeLog.txt

7 years agoFix filenotify.el issue for kqueue
Michael Albinus [Wed, 22 Mar 2017 19:33:03 +0000 (19:33 +0000)]
Fix filenotify.el issue for kqueue

* lisp/filenotify.el (file-notify-add-watch): Use directory
for remote file name handlers.

* test/lisp/filenotify-tests.el (file-notify-test01-add-watch):
Create/delete temporary file only for "kqueue".
(file-notify-test02-rm-watch): Create/delete temporary files.

7 years agoExtend `file-notify-test02-rm-watch'
Michael Albinus [Wed, 22 Mar 2017 13:15:45 +0000 (14:15 +0100)]
Extend `file-notify-test02-rm-watch'

* test/lisp/filenotify-tests.el (file-notify-test02-rm-watch):
Expect it failed for inotify.  Divide tests into different
`unwind-protect' clauses.  Check, that removing watch
descriptors out of order do not harm.  (Bug#26126)