Paul Pogonyshev [Fri, 28 Dec 2018 04:10:47 +0000 (20:10 -0800)]
Accept 1-arg 'substring' calls in byte compiler
Those have been supported by the function implementation since
commit 2014-03-31T12:06:34Z!dmantipov@yandex.ru (Bug#33807).
* lisp/emacs-lisp/bytecomp.el: substring has 1-3 args, not 2-3.
Paul Eggert [Thu, 27 Dec 2018 19:45:21 +0000 (11:45 -0800)]
Update from Gnulib
* build-aux/config.guess, lib/regcomp.c, lib/regex.c:
* lib/regex_internal.h, lib/regexec.c: Copy from Gnulib.
Eli Zaretskii [Thu, 27 Dec 2018 16:52:30 +0000 (18:52 +0200)]
Avoid assertion violation in directory-files
* src/dired.c (directory_files_internal): Make sure MATCH is
either nil or a string. (Bug#33889)
Michael Albinus [Thu, 27 Dec 2018 11:24:24 +0000 (12:24 +0100)]
Bump Tramp version to 2.4.1
* doc/misc/trampver.texi:
* lisp/net/tramp.el:
* lisp/net/trampver.el: Change version to "2.4.1".
Martin Rudalics [Thu, 27 Dec 2018 09:29:02 +0000 (10:29 +0100)]
Fix last change of debug.el
* lisp/emacs-lisp/debug.el (debug): In noninteractive calls do
the buffer text truncation in the debugger buffer.
Dmitry Gutov [Wed, 26 Dec 2018 23:40:05 +0000 (01:40 +0200)]
Tone down diff-refine-removed and diff-refine-added as well
* lisp/vc/diff-mode.el (diff-refine-removed, diff-refine-added):
Change backgrounds in light backgrounds themes (bug#33567).
Paul Eggert [Wed, 26 Dec 2018 09:11:58 +0000 (01:11 -0800)]
Port message-checksum to bignums
* lisp/gnus/message.el (message--rotate-fixnum-left): New function.
(message-checksum): Use it instead of assuming fixnum-only arithmetic.
This should fix Bug#33083.
Martin Rudalics [Wed, 26 Dec 2018 08:09:44 +0000 (09:09 +0100)]
Set up debugger buffer earlier and fit window to it (Bug#32825)
* lisp/emacs-lisp/debug.el (debug): Set up debugger buffer
before displaying it and advise 'display-buffer' to fit the
window to it (Bug#32825).
Dmitry Gutov [Wed, 26 Dec 2018 00:28:10 +0000 (02:28 +0200)]
Tone down diff-added and diff-removed in light themes
* lisp/vc/diff-mode.el (diff-removed, diff-added): Tone down
light background colors (bug#33567).
Juri Linkov [Tue, 25 Dec 2018 21:54:26 +0000 (23:54 +0200)]
* lisp/isearch.el (isearch-done): Reset isearch-lazy-highlight-last-string
to nil (bug#33838).
(isearch-lazy-highlight-new-loop)
(isearch-lazy-highlight-buffer-update): Don't set arg ELLIPSIS of
isearch-message to t to not reset the value of isearch-error.
Juri Linkov [Tue, 25 Dec 2018 21:49:13 +0000 (23:49 +0200)]
* lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): Add `*' to names
of ephemeral buffers like in " *org-src-fontification:%s*" from
`org-src-font-lock-fontify-block'. (Bug#33567)
(diff-header, diff-file-header): Tone down light background colors.
Dmitry Gutov [Tue, 25 Dec 2018 16:23:01 +0000 (18:23 +0200)]
Prepend 'rubocop' with 'bundle exec' when appropriate
Dmitry Gutov [Tue, 25 Dec 2018 15:32:10 +0000 (17:32 +0200)]
; Documentation updates
Dmitry Gutov [Tue, 25 Dec 2018 15:08:58 +0000 (17:08 +0200)]
Use rubocop --lint when no .rubocop.yml
* lisp/progmodes/ruby-mode.el (ruby-flymake-rubocop): When no
config file found, only run lint cops (bug#31760).
Michael Albinus [Tue, 25 Dec 2018 10:08:30 +0000 (11:08 +0100)]
Provide tramp-adb-handle-make-process
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
Add `tramp-adb-handle-make-process' and
`tramp-handle-start-file-process'.
(tramp-adb-handle-make-process): New defun, derived from
`tramp-adb-handle-start-file-process'. (Bug#28691)
Michael Albinus [Mon, 24 Dec 2018 13:28:31 +0000 (14:28 +0100)]
Provide tramp-sh-handle-make-process
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
Add `tramp-sh-handle-make-process' and
`tramp-handle-start-file-process'.
(tramp-sh-handle-make-process): New defun, derived from
`tramp-sh-handle-start-file-process'. (Bug#28691)
* lisp/net/tramp.el (tramp-handle-start-file-process): New defun.
* test/lisp/net/tramp-tests.el (tramp-test30-make-process):
New test.
(tramp-test31-interrupt-process, tramp-test32-shell-command)
(tramp-test33-environment-variables)
(tramp-test33-environment-variables-and-port-numbers)
(tramp-test34-explicit-shell-file-name, tramp-test35-exec-path)
(tramp-test35-remote-path, tramp-test36-vc-registered)
(tramp-test37-make-auto-save-file-name)
(tramp-test38-find-backup-file-name)
(tramp-test39-make-nearby-temp-file)
(tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls, tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls, tramp-test42-file-system-info)
(tramp-test43-asynchronous-requests, tramp-test44-auto-load)
(tramp-test44-delay-load, tramp-test44-recursive-load)
(tramp-test44-remote-load-path, tramp-test45-unload): Rename.
Dmitry Gutov [Mon, 24 Dec 2018 03:11:02 +0000 (05:11 +0200)]
xref-goto-xref: Highlight the exact symbol after the jump
* lisp/progmodes/xref.el (xref-goto-xref): Bind
'xref--current-item' to highlight the exact symbol after the jump
and not the whole line.
Dmitry Gutov [Mon, 24 Dec 2018 02:37:24 +0000 (04:37 +0200)]
; Don't require semantic/symref, it's unnecessary now
Dmitry Gutov [Mon, 24 Dec 2018 02:36:08 +0000 (04:36 +0200)]
execute-extended-command: Skip waiting in more cases
* lisp/simple.el (execute-extended-command): Don't wait when
there's no binding the current command, and the user doesn't want
to see "shorter" suggestions, or TYPED is nil anyway.
Eli Zaretskii [Sun, 23 Dec 2018 18:27:12 +0000 (20:27 +0200)]
; * etc/HELLO: Remove stray x-charset. (Bug#33851)
Michael Albinus [Sun, 23 Dec 2018 08:51:22 +0000 (09:51 +0100)]
; Add +++ to recent entry in etc/NEWS
Michael Albinus [Sun, 23 Dec 2018 08:50:27 +0000 (09:50 +0100)]
; Fix wording in etc/NEWS
Michael Albinus [Sun, 23 Dec 2018 08:48:05 +0000 (09:48 +0100)]
Handle `make-process' in Tramp and ange-ftp
* doc/lispref/processes.texi (Asynchronous Processes):
Explain, that not all file name handlers support `make-process'.
* lisp/net/ange-ftp.el:
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-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):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
* lisp/net/tramp.el (tramp-file-name-for-operation): Add `make-process'.
* lisp/vc/ediff-util.el:
* src/process.c:
* test/src/process-tests.el: Use "file name handler" consequently.
Juri Linkov [Sat, 22 Dec 2018 23:52:25 +0000 (01:52 +0200)]
* lisp/simple.el (next-error-no-select): Use save-selected-window.
Let-bind display alist of display-buffer-overriding-action to
`(inhibit-same-window . t)'. (Bug#32607)
Philipp Stephani [Mon, 17 Dec 2018 20:47:46 +0000 (21:47 +0100)]
Add file name handler support for 'make-process' (Bug#28691)
* src/process.c (Fmake_process): Add new keyword argument
':file-handler'.
(syms_of_process) <make-process, :file-handler>: Define new symbols.
* lisp/files.el (file-name-non-special): Add support for
'make-process'.
* test/src/process-tests.el (make-process/file-handler/found)
(make-process/file-handler/not-found)
(make-process/file-handler/disable): New unit tests.
(process-tests--file-handler): New helper function.
* test/lisp/files-tests.el
(files-tests-file-name-non-special-make-process): New unit test.
* doc/lispref/files.texi (Magic File Names): Document that
'make-process' can invoke file name handlers.
* doc/lispref/processes.texi (Asynchronous Processes): Document
':file-handlers' argument to 'make-process'.
* etc/NEWS (Lisp Changes in Emacs 27.1): Mention new
:file-handler argument for 'make-process'.
Eli Zaretskii [Sat, 22 Dec 2018 20:41:53 +0000 (22:41 +0200)]
* etc/HELLO: Add missing charset properties for Japanese and Korean.
Charles A. Roelli [Sat, 22 Dec 2018 16:28:35 +0000 (17:28 +0100)]
Macroexpand before evaluating in eval-expression (bis)
* lisp/simple.el (eval-expression): Macroexpand before
evaluating. This repeats the fix made for Bug#20730 in
another branch of the code a few lines down.
Thomas Fitzsimmons [Sat, 22 Dec 2018 14:48:27 +0000 (09:48 -0500)]
ldap.el: Do not set process-connection-type
* lisp/net/ldap.el (ldap-search-internal): Leave
process-connection-type at its default value. (Bug#33050)
Michael Albinus [Sat, 22 Dec 2018 13:07:49 +0000 (14:07 +0100)]
; Cosmetic changes to etc/NEWS
Michael Albinus [Sat, 22 Dec 2018 12:57:54 +0000 (13:57 +0100)]
Use "file name handler" consequently
* doc/lispref/files.texi:
* doc/lispref/processes.texi:
* doc/misc/ediff.texi:
* lisp/simple.el:
* lisp/vc/ediff-ptch.el:
* src/buffer.c:
* src/dired.c:
* src/fileio.c:
* src/image.c:
* src/insdel.c:
* src/w32fns.c: Use "file name handler" consequently.
Michael Albinus [Fri, 21 Dec 2018 12:53:20 +0000 (13:53 +0100)]
Fix Bug#33735
* lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter):
Delete empty lines. (Bug#33735)
(tramp-sh-inotifywait-process-filter): Use `string-match'.
(tramp-set-remote-path): Check for PIPE_BUF but PATH_MAX.
* test/lisp/filenotify-tests.el: Handle $REMOTE_FILE_NOTIFY_LIBRARY.
(file-notify--deftest-remote): Suppress vc-handled-backends.
(file-notify-test08-backup): Do not expect failure on hydra.
(Bug#33735).
Michael Albinus [Fri, 21 Dec 2018 08:41:04 +0000 (09:41 +0100)]
* test/lisp/filenotify-tests.el, test/lisp/shadowfile-tests.el:
Don't require tramp-sh, bug#33781 is fixed.
Juri Linkov [Thu, 20 Dec 2018 23:57:34 +0000 (01:57 +0200)]
* lisp/emacs-lisp/debug.el (debug): Add display-buffer-below-selected
to display actions of pop-to-buffer, and `(window-min-height . 10)'
to display alist. (Bug#32825)
Juri Linkov [Thu, 20 Dec 2018 23:41:25 +0000 (01:41 +0200)]
* lisp/windmove.el (windmove-delete-in-direction): Change prefix arg C-u
to kill the buffer. Add prefix arg M-0 to delete the selected window.
(Bug#32790)
Juri Linkov [Thu, 20 Dec 2018 23:28:31 +0000 (01:28 +0200)]
* lisp/window.el (switch-to-buffer-obey-display-actions): New defcustom.
(switch-to-buffer): Use it. (Bug#32790)
(switch-to-buffer-preserve-window-point): Mention it in docstring.
* lisp/windmove.el (windmove-display-in-direction): Mention it in docstring.
* doc/lispref/windows.texi (Switching Buffers):
Document switch-to-buffer-obey-display-actions.
Juri Linkov [Thu, 20 Dec 2018 23:00:44 +0000 (01:00 +0200)]
* lisp/hi-lock.el (hi-salmon, hi-aquamarine): New faces. (Bug#33398)
(hi-lock-face-defaults): Add them.
(hi-green-b, hi-red-b): Tone down foreground colors.
Glenn Morris [Thu, 20 Dec 2018 15:51:17 +0000 (07:51 -0800)]
Merge from origin/emacs-26
081fb69 (origin/emacs-26) Check result from c-backward-token-2 to avo...
f4ea746 cl-make-random-state was not copying its arg
Glenn Morris [Thu, 20 Dec 2018 15:51:17 +0000 (07:51 -0800)]
; Merge from origin/emacs-26
The following commits were skipped:
fda43a7 Skip a vc-bzr test if run as root
4370b8e ; Copyright year fix No need to merge to master
305aca0 Backport: Handle unread-command-events consistently (bug#23980)
Glenn Morris [Thu, 20 Dec 2018 15:51:16 +0000 (07:51 -0800)]
Merge from origin/emacs-26
4c6c327 Restrict downcasing in elisp xref tests (bug#25534)
ab8ed41 Avoid test failures if directory name looks like a regexp
Glenn Morris [Thu, 20 Dec 2018 15:51:16 +0000 (07:51 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
80e9856 Fix Bug#33524
Glenn Morris [Thu, 20 Dec 2018 15:51:15 +0000 (07:51 -0800)]
Merge from origin/emacs-26
5825279 * doc/lispintro/emacs-lisp-intro.texi (Finding More): Fix xref.
Glenn Morris [Thu, 20 Dec 2018 15:51:15 +0000 (07:51 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
e8bb042 More porting to GCC 8 of --enable-gcc-warnings
Stefan Monnier [Thu, 20 Dec 2018 13:40:43 +0000 (08:40 -0500)]
* lisp/emacs-lisp/map.el: Add support for plists
(map--plist-p, map--plist-delete): New functions.
(map-elt, map-delete, map-length, map-into, map-put!, map-insert)
(map-apply, map-do): Handle the plist case.
* test/lisp/emacs-lisp/map-tests.el (with-maps-do): Add sample plist.
(test-map-put!): The behavior of map-put! is not the same for plists as
for alists.
Michael Albinus [Thu, 20 Dec 2018 13:20:36 +0000 (14:20 +0100)]
* test/lisp/net/tramp-tests.el (tramp-test32-environment-variables):
Remove expected failure.
Alan Mackenzie [Thu, 20 Dec 2018 12:21:16 +0000 (12:21 +0000)]
Check result from c-backward-token-2 to avoid infinite loop
This fixes bug #33784.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): While moving back
over enclosing parentheses, check that c-backward-token-2 actually moves.
Michael Albinus [Thu, 20 Dec 2018 10:07:15 +0000 (11:07 +0100)]
Fix Bug#33781
* lisp/net/tramp-sh.el (tramp-set-remote-path): Use a temporary
file for setting $PATH, if it exceeds PATH_MAX on the remote system.
(tramp-send-command-and-read): Ignore errors if NOERROR. (Bug#33781)
* test/lisp/net/tramp-tests.el (tramp-test34-remote-path): New test.
Glenn Morris [Wed, 19 Dec 2018 23:37:04 +0000 (18:37 -0500)]
Skip rather than fail in flymake tests
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--wait-for-backends): Skip rather than fail if
backends are slow to respond. This always seems like a temporary
system glitch and not something that should be reported as a failure.
Eric Abrahamsen [Wed, 19 Dec 2018 22:11:14 +0000 (14:11 -0800)]
Make gnus-newsgroup-name local var available to gnus-summary-mode
* lisp/gnus/gnus-sum.el (gnus-summary-mode-group): New defvar for
passing gnus-newsgroup-name (a local variable) into the body of
gnus-summary-mode, so that it's available to gnus-summary-mode-hook.
Juri Linkov [Wed, 19 Dec 2018 21:55:32 +0000 (23:55 +0200)]
* lisp/vc/diff-mode.el (diff-syntax-fontify-props): Use font-lock-ensure
unconditionally. (Bug#33798)
Paul Eggert [Wed, 19 Dec 2018 21:42:21 +0000 (13:42 -0800)]
cl-make-random-state was not copying its arg
Problem reported by Xu Chunyang (Bug#33731).
* lisp/emacs-lisp/cl-extra.el (cl-make-random-state):
Use copy-sequence, not copy-tree, so that the record is copied.
* test/lisp/emacs-lisp/cl-extra-tests.el:
(cl-extra-test-cl-make-random-state): New test.
Paul Eggert [Wed, 19 Dec 2018 20:57:25 +0000 (12:57 -0800)]
Minor fixes/simplifications to time functions
* doc/lispintro/emacs-lisp-intro.texi (Files List): Simplify.
* doc/lispref/os.texi (Time of Day): Mention format-time-string
as an alternative to current-time-string.
* lisp/arc-mode.el (archive-unixdate, archive-unixtime):
Port better to future versions of Emacs where (COUNT . HZ)
will take precedence to (HI . LO).
* lisp/arc-mode.el (archive-unixtime):
* lisp/calendar/todo-mode.el (todo-insert-item--basic)
(todo-item-done, todo-read-time):
Prefer format-time-string to substringing current-time-string.
* lisp/calc/calc-forms.el (calc-time, calcFunc-now):
Prefer decode-time to parsing the output of current-time-string.
* lisp/emacs-lisp/cl-extra.el (cl--random-time):
Prefer encode-time to hashing the output of current-time-string.
* lisp/gnus/gnus-score.el (gnus-score-headers)
(gnus-score-adaptive):
Avoid stringifying and then reparsing timestamp.
* src/timefns.c (Fencode_time): Omit redundant assignment.
Glenn Morris [Wed, 19 Dec 2018 20:06:18 +0000 (15:06 -0500)]
Skip a vc-bzr test if run as root
* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads):
Skip this test when run as root. This works around a race
condition in root-specific code in vc-mode-line when deleting a file.
; Do not merge to master, instead fix vc-mode-line there.
Michael Albinus [Wed, 19 Dec 2018 19:29:29 +0000 (20:29 +0100)]
* lisp/net/tramp-sh.el (tramp-set-remote-path): Send a warning, if
$PATH exceeds PATH_MAX on the remote system.
Nicholas Drozd [Wed, 19 Dec 2018 16:55:54 +0000 (08:55 -0800)]
* src/editfns.c (Finsert_char): Skip unnecessary fixnum check.
Glenn Morris [Wed, 19 Dec 2018 16:29:21 +0000 (08:29 -0800)]
; Copyright year fix
No need to merge to master
Chris Feng [Tue, 7 Nov 2017 16:39:43 +0000 (00:39 +0800)]
Backport: Handle unread-command-events consistently (bug#23980)
* src/keyboard.c (read_char): Events put into `unread-command-events'
with the form (t . EVENT) should always have the t stripped when read
out.
* test/src/keyboard-tests.el: New tests for `unread-command-events'.
(cherry picked from commit
1f3f4b1296613b8cdc0632a68fde86e86ddad866)
Glenn Morris [Wed, 19 Dec 2018 07:21:37 +0000 (23:21 -0800)]
Skip a remote filenotify test on hydra
* test/lisp/filenotify-tests.el (file-notify--deftest-remote):
Add optional argument to skip test.
(file-notify-test07-many-events-remote): Skip on hydra.nixos.org.
Stefan Monnier [Wed, 19 Dec 2018 04:26:49 +0000 (23:26 -0500)]
* lisp/font-lock.el: Use lexical-binding
(font-lock-initial-fontify, font-lock-compile-keywords):
Silence compiler warning.
(font-lock-ensure-function): Fix some problems in last commit.
Stefan Monnier [Wed, 19 Dec 2018 04:05:36 +0000 (23:05 -0500)]
* lisp/font-lock.el (font-lock-ensure-function): Fix bug#33798
Glenn Morris [Wed, 19 Dec 2018 02:18:31 +0000 (21:18 -0500)]
Restrict downcasing in elisp xref tests (bug#25534)
The tests happen to not fail at the moment because find-library-name
now has an extra feature, find-library--from-load-history, which
happens to do a case-insensitive regexp match; but still it seems
better not to rely on this.
* test/lisp/progmodes/elisp-mode-tests.el (xref--case-insensitive):
New variable.
(xref-elisp-test-run, emacs-test-dir): Only downcase if the
filesystem seems to be case-insensitive.
Juri Linkov [Tue, 18 Dec 2018 23:10:09 +0000 (01:10 +0200)]
More font-lock improvements for diff-mode
* lisp/vc/diff-mode.el (diff-font-lock-keywords): Use diff-header face
for git index lines (like already used for bzr index lines).
Use diff-file-header face for binary file headers.
(diff-find-source-location): Use expand-file-name for vc-find-revision.
(diff--font-lock-prettify): Use diff-indicator-* faces for
left-fringe indicators.
(diff-syntax-fontify-props): Optimize to not use text-property-not-all
for font-lock-ensure.
* lisp/replace.el (occur-engine-line): Simplify to use font-lock-ensure
without text-property-not-all.
Juri Linkov [Tue, 18 Dec 2018 22:55:15 +0000 (00:55 +0200)]
Fontify one-line diffs without the final newline (bug#33567)
* lisp/vc/diff-mode.el (diff-hunk-text, diff-syntax-fontify-hunk):
Skip lines beginning with backslash like "\ No newline at end of file".
(diff-syntax-fontify-hunk): Use string-trim-right.
For one-line diffs use 1 explicitly in the list of line numbers.
Rob Browning [Tue, 18 Dec 2018 20:34:01 +0000 (15:34 -0500)]
Avoid test failures if directory name looks like a regexp
Taken from <https://sources.debian.org/patches/emacs/1:26.1+1-1>
* test/lisp/ibuffer-tests.el (ibuffer-filter-inclusion-3):
* test/lisp/net/tramp-tests.el (tramp-test42-remote-load-path):
Regexp-quote file names to avoid failures with directory names
of the form "build/emacs-i87jK3/emacs-26.1+1/...".
Paul Eggert [Tue, 18 Dec 2018 20:21:27 +0000 (12:21 -0800)]
Support (ash INTEGER BIGNUM)
* src/data.c (emacs_mpz_mul_2exp): 2nd arg is now a
nonnegative EMACS_INT not mp_bitcnt_t, to simplify checking.
(Fash): Support COUNT values that are bignums or that
exceed mp_bitcnt_t range.
* test/src/data-tests.el (data-tests-ash-lsh): Test this.
Michael Albinus [Mon, 17 Dec 2018 10:56:05 +0000 (11:56 +0100)]
Fix Bug#33524
* lisp/progmodes/flymake-proc.el
(flymake-proc-create-temp-with-folder-structure):
Unquote file-name. (Bug#33524)
Glenn Morris [Tue, 18 Dec 2018 16:29:05 +0000 (08:29 -0800)]
Expect tramp environment test to fail on hydra
* test/lisp/net/tramp-tests.el (tramp-test32-environment-variables):
Expect failure on hydra.nixos.org.
Glenn Morris [Tue, 18 Dec 2018 16:25:55 +0000 (08:25 -0800)]
A filenotify test now passes on hydra
* test/lisp/filenotify-tests.el (file-notify-test04-autorevert):
Remote test now passes on hydra.nixos.org, since PATH
workaround for bug#33781.
Michael Albinus [Tue, 18 Dec 2018 12:58:00 +0000 (13:58 +0100)]
Fix Bug#33781
* lisp/net/tramp-cache.el (tramp-connection-properties):
* lisp/net/tramp-sh.el (tramp-remote-path)
(tramp-remote-process-environment, tramp-sh-extra-args):
Reinsert autoload cookie. (Bug#33781)
* test/lisp/net/tramp-tests.el: Do not require tramp-sh before
changing tramp-remote-path.
Nicolas Petton [Tue, 18 Dec 2018 08:42:50 +0000 (09:42 +0100)]
New convenience functions in seq.el
Functions to access the first or all but the first elements of
sequences have been repeatedly asked for (the last occurrence being
https://github.com/NicolasPetton/seq.el/issues/9).
* lisp/emacs-lisp/seq.el (seq-first, seq-rest): New functions.
* test/lisp/emacs-lisp/seq-tests.el (test-seq-first, test-seq-rest):
New tests for seq-first and seq-rest.
Glenn Morris [Tue, 18 Dec 2018 06:52:34 +0000 (22:52 -0800)]
Tiny ert-summarize-tests-batch-and-exit improvement
* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
Report the details of unexpected passes as well as failures.
Juri Linkov [Mon, 17 Dec 2018 23:11:15 +0000 (01:11 +0200)]
Syntactic fontification of diff hunks (bug#33567)
* lisp/vc/diff-mode.el (diff-font-lock-syntax): New defcustom.
(diff-default-directory): New buffer-local variable.
(diff-indicator-removed, diff-indicator-added)
(diff-indicator-changed): Set foreground to distinctive colors.
(diff-context): Remove colors to make room for syntax highlighting.
(diff-font-lock-keywords): Add diff--font-lock-syntax.
(diff--font-lock-cleanup): Remove diff-mode syntax overlays.
(diff--font-lock-syntax, diff--font-lock-syntax--refresh)
(diff-syntax-fontify-revisions, diff-syntax-fontify-hunk)
(diff-syntax-fontify-props): New functions.
* lisp/vc/diff.el (diff-no-select): Set diff-default-directory to
default-directory.
* doc/emacs/files.texi (Diff Mode): Document diff-font-lock-syntax.
Glenn Morris [Mon, 17 Dec 2018 22:46:48 +0000 (17:46 -0500)]
* doc/lispintro/emacs-lisp-intro.texi (Finding More): Fix xref.
Paul Eggert [Mon, 17 Dec 2018 21:26:42 +0000 (13:26 -0800)]
Make org-protocol-flatten always an alias
* lisp/org/org-protocol.el (org-protocol-flatten):
Rewrite as top-level alias, as per Stefan’s suggestion,
to avoid compiler warnings.
Stefan Monnier [Mon, 17 Dec 2018 19:51:01 +0000 (14:51 -0500)]
* lisp/emacs-lisp/map.el: Avoid special casing lists.
(map-not-inplace, map-inplace): New errors.
(map-insert): New generic function.
(map-put!): Signal map-not-inplace rather than a generic 'error'.
(map-elt): Use map-not-inplace and map-insert to avoid hardcoding
a special case for lists.
* test/lisp/emacs-lisp/map-tests.el (test-map-put!): Rename from
test-map-put. Also test the errors signaled.
Glenn Morris [Mon, 17 Dec 2018 18:52:46 +0000 (13:52 -0500)]
Avoid tests failures on hydra due to Tramp autoload changes
* test/lisp/filenotify-tests.el, test/lisp/shadowfile-tests.el:
* test/lisp/net/tramp-tests.el: Require tramp-sh before changing
tramp-remote-path.
Paul Eggert [Mon, 17 Dec 2018 18:19:48 +0000 (10:19 -0800)]
One more flatten-tree test
* test/lisp/subr-tests.el (subr-tests-flatten-tree):
Add a test for lots of nothing.
Paul Eggert [Mon, 17 Dec 2018 18:19:23 +0000 (10:19 -0800)]
Some more flatten-tree aliases
* lisp/allout.el (allout-flatten):
* lisp/progmodes/hideif.el (hif-flatten):
Now an obsolete alias for flatten-tree. All callers changed.
* lisp/org/org-protocol.el (org-protocol-flatten):
Make it an alias for flatten-tree if available.
* lisp/progmodes/js.el (js--flatten-list):
Remove alias. We shouldn’t need obsolete function aliases for
private functions.
Paul Eggert [Mon, 17 Dec 2018 17:55:06 +0000 (09:55 -0800)]
Improve flatten-tree documentation
* doc/lispref/lists.texi (Building Lists):
* lisp/subr.el (flatten-tree):
Don’t imply that flatten-tree modifies its argument.
Clarify wording.
Paul Eggert [Mon, 17 Dec 2018 17:54:14 +0000 (09:54 -0800)]
Improve flatten-tree performance
* lisp/subr.el (flatten-tree): Improve performance by calling
‘cons’ once rather than twice when a cons cell is popped.
Paul Eggert [Mon, 17 Dec 2018 17:31:08 +0000 (09:31 -0800)]
Assume ‘emacs’ is defined in Emacs-only code
* src/charset.c, src/coding.c, src/coding.h, src/gmalloc.c:
* src/ralloc.c, src/regex-emacs.c: Simplify slightly by
assuming that ‘emacs’ is defined. These modules have long
been specific to Emacs, and are not used elsewhere.
Paul Eggert [Mon, 17 Dec 2018 16:11:55 +0000 (08:11 -0800)]
More porting to GCC 8 of --enable-gcc-warnings
Backport from master.
I ran into this when building Emacs 26 with GCC 8 on Fedora 29 x86.
* lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
* lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
* lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
No longer const.
* src/emacs-module.c: Ignore -Wcast-function-type.
Michael Albinus [Mon, 17 Dec 2018 11:26:58 +0000 (12:26 +0100)]
Use `flatten-tree' in Tramp
* lisp/net/tramp-compat.el (tramp-compat-flatten-tree): New defun.
(tramp-compat-flatten-list): Remove.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Use it.
Alex Branham [Mon, 17 Dec 2018 11:15:09 +0000 (12:15 +0100)]
New function flatten-tree
Co-authored-by: Basil L. Contovounesios <contovob@tcd.ie>
* doc/lispref/lists.texi: Document `flatten-tree'.
* lisp/progmodes/js.el (js--maybe-join):
* lisp/printing.el (pr-switches):
* lisp/lpr.el (lpr-print-region):
* lisp/gnus/nnimap.el (nnimap-find-wanted-parts):
* lisp/gnus/message.el (message-talkative-question):
* lisp/gnus/gnus-sum.el (gnus-remove-thread)
(gnus-thread-highest-number, gnus-thread-latest-date):
* lisp/eshell/esh-util.el (eshell-flatten-and-stringify):
* lisp/eshell/esh-opt.el (eshell-eval-using-options):
* lisp/eshell/esh-ext.el (eshell-external-command):
* lisp/eshell/em-xtra.el (eshell/expr):
* lisp/eshell/em-unix.el (eshell/rm, eshell-mvcpln-template)
(eshell/cat, eshell/make, eshell-poor-mans-grep, eshell-grep)
(eshell/du, eshell/time, eshell/diff, eshell/locate):
* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
* lisp/eshell/em-term.el (eshell-exec-visual):
* lisp/eshell/em-dirs.el (eshell-dirs-substitute-cd, eshell/cd):
* lisp/eshell/em-basic.el (eshell/printnl):
Use new flatten-tree.
* lisp/progmodes/js.el (js--flatten-list):
* lisp/lpr.el (lpr-flatten-list):
* lisp/gnus/message.el (message-flatten-list):
* lisp/eshell/esh-util.el (eshell-flatten-list):
Obsolete in favor of Emacs-wide `flatten-tree'.
* lisp/subr.el (flatten-list): Alias to `flatten-tree' for
discoverability.
* lisp/subr.el (flatten-tree): New defun.
* test/lisp/subr-tests.el (subr-tests-flatten-tree): New test.
Michael Albinus [Mon, 17 Dec 2018 10:56:05 +0000 (11:56 +0100)]
Fix Bug#33524
* lisp/progmodes/flymake-proc.el
(flymake-proc-create-temp-with-folder-structure):
Unquote file-name. (Bug#33524)
Michael Albinus [Mon, 17 Dec 2018 10:50:06 +0000 (11:50 +0100)]
Reduce autoloaded objects in Tramp
* lisp/net/tramp-adb.el (tramp-adb-program)
(tramp-adb-connect-if-not-connected, tramp-adb-prompt):
Remove autoload cookie.
* lisp/net/tramp-cache.el (tramp-connection-properties)
(tramp-persistency-file-name): Remove autoload cookie.
* lisp/net/tramp-ftp.el (tramp-ftp-enable-ange-ftp):
Use `tramp-autoload' cookie.
* lisp/net/tramp-gvfs.el (tramp-gvfs-zeroconf-domain):
Remove autoload cookie.
* lisp/net/tramp-rclone.el (tramp-rclone-program): Remove autoload
cookie.
(tramp-set-completion-function): Use `tramp--with-startup'.
* lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
(tramp-copy-size-limit, tramp-histfile-override)
(tramp-use-ssh-controlmaster-options, tramp-remote-path)
(tramp-remote-process-environment, tramp-sh-extra-args):
Remove autoload cookie.
(tramp-stat-marker, tramp-stat-quoted-marker): Move to tramp.el.
* lisp/net/tramp-smb.el (tramp-smb-program)
(tramp-smb-acl-program, tramp-smb-conf)
(tramp-smb-winexe-program, tramp-smb-winexe-shell-command)
(tramp-smb-winexe-shell-command-switch): Remove autoload cookie.
* lisp/net/tramp-sudoedit.el (server, tramp-sh): Do not require.
* lisp/net/tramp.el (tramp--startup-hook): Define.
(tramp-stat-marker, tramp-stat-quoted-marker): New defconsts,
taken from tramp-sh.el.
* test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit)
(tramp-persistency-file-name): Declare.
* test/lisp/net/tramp-tests.el (tramp-connection-properties)
(tramp-display-escape-sequence-regexp)
(tramp-inline-compress-start-size, tramp-remote-path): Declare.
Stefan Monnier [Mon, 17 Dec 2018 04:39:51 +0000 (23:39 -0500)]
* lisp/emacs-lisp/macroexp.el: Don't hide backtrace
(macroexp--compiler-macro): Use condition-case-unless-debug.
João Távora [Sun, 16 Dec 2018 16:55:09 +0000 (16:55 +0000)]
Jsonrpc error handlers can now safely call jsonrpc-shutdown
Previously, if an error handler called jsonrpc-shutdown, and if that
error handler was being called from the process sentinel,
jsonrpc-shutdown would infloop waiting for jsonrpc-sentinel-done to be
set.
Rename the process property jsonrpc-sentinel-done to
jsonrpc-sentinel-cleanup-started, arrange for it to be set earlier
in the sentinel, and also check for it earlier in jsonrpc-shutdown.
* lisp/jsonrpc.el (Version): Bump to 1.0.7.
(jsonrpc--process-sentinel): Set jsonrpc-sentinel-cleanup-started
a bit earlier than previous jsonrpc-sentinel-done.
(jsonrpc-shutdown): Query jsonrpc-sentinel-cleanup-started
Paul Eggert [Sun, 16 Dec 2018 16:11:35 +0000 (08:11 -0800)]
Update from Gnulib
This incorporates:
2018-12-16 regex: propagate fix for glibc bug 18040
2018-12-16 obstack, libc-config: Support HP-UX cc in C99 mode
2018-12-15 regex: work around a bug in glibc-2.27 and prior
2018-12-13 localtime-buffer: Avoid endless recursion
* build-aux/config.guess, build-aux/config.sub, lib/cdefs.h:
* lib/gettext.h, lib/localtime-buffer.c, lib/regexec.c, m4/regex.m4:
Copy from Gnulib.
Stefan Monnier [Sun, 16 Dec 2018 15:32:53 +0000 (10:32 -0500)]
* lisp/net/tramp: Rework mutual dependencies
Functionally split tramp-loaddefs.el into two parts: one part run
while loading it at the very beginning of loading tramp.el (holding plain
autoloads and declarations), and another run at the very end of loading
tramp.el (holding setup code).
This should reduce infinite-recursion problems while loading.
* lisp/net/tramp.el: Require tramp-loaddefs at beginning.
Run (new and internal) tramp--startup-hook at the end.
Remove all tramp-autoloads. Prefer tramp--with-startup over
eval-after-load.
(tramp--with-startup): New macro.
(tramp-set-syntax): Show the new value rather than the old value in the
error message.
(tramp-syntax-values): Explicitly return 'values'.
(tramp-prefix-format, tramp-prefix-regexp, tramp-method-regexp)
(tramp-postfix-method-format, tramp-postfix-method-regexp)
(tramp-prefix-ipv6-format, tramp-prefix-ipv6-regexp)
(tramp-postfix-ipv6-format, tramp-postfix-ipv6-regexp)
(tramp-postfix-host-format, tramp-postfix-host-regexp)
(tramp-remote-file-name-spec-regexp, tramp-file-name-structure)
(tramp-completion-file-name-regexp): Don't initialize in the declaration,
since it's recomputed at the end anyway.
(tramp-time-dont-know, tramp-time-doesnt-exist): Move before first use.
* lisp/net/tramp-compat.el: Don't require tramp-loaddefs any more.
(tramp-compat-tramp-syntax): Declare tramp-syntax.
* lisp/net/tramp-smb.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-ftp.el:
* lisp/net/tramp-adb.el: Wrap all autoloaded setup operations within
tramp--with-startup.
* lisp/net/tramp-sh.el: Wrap all autoloaded setup operations within
tramp--with-startup.
(tramp-display-escape-sequence-regexp)
(tramp-device-escape-sequence-regexp): Don't tramp-autoload any more.
(tramp-stat-marker): Use eval-and-compile rather than tramp-autoload.
* lisp/net/tramp-sudoedit.el: Wrap all autoloaded setup operations within
tramp--with-startup.
Require tramp-sh at compile-time to precompute some regexps based on
tramp-stat-marker.
Michael Albinus [Sun, 16 Dec 2018 14:49:07 +0000 (15:49 +0100)]
Add Tramp sudoedit method
* doc/misc/tramp.texi (Quick Start Guide): New section "Using sudoedit".
(External methods) <sudoedit>: Describe.
* 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-rclone.el (tramp-rclone-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):
Add handler.
* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-uid-gid): Rename from
`tramp-sh-handle-set-file-uid-gid'. Handle only remote file names.
* lisp/net/tramp-sudoedit.el: New file.
* lisp/net/tramp.el (tramp-file-name-for-operation): Handle also
`tramp-set-file-uid-gid'.
(tramp-set-file-uid-gid): New defun.
(tramp-get-local-uid, tramp-get-local-gid): Cache result.
* test/lisp/net/tramp-tests.el (tramp--test-sudoedit-p): New defun.
(tramp-test20-file-modes, tramp-test22-file-times)
(tramp--test-sudoedit-p): Use it.
João Távora [Sun, 16 Dec 2018 11:45:27 +0000 (11:45 +0000)]
Rephrase a confusing sentence in the jsonrpc.el manual
* doc/lispref/text.texi (JSONRPC Overview): Rephrase first
sentence on building JSONRPC applications.
Glenn Morris [Sun, 16 Dec 2018 02:17:01 +0000 (18:17 -0800)]
Expect two epg tests to fail on hydra
* test/lisp/epg-tests.el (epg-decrypt-1, epg-roundtrip-1):
These currently fail for unknown reasons on hydra.nixos.org.
Glenn Morris [Sat, 15 Dec 2018 23:23:58 +0000 (15:23 -0800)]
; * src/macuvs.h: Regenerate with new header.
Glenn Morris [Sat, 15 Dec 2018 23:19:25 +0000 (15:19 -0800)]
Merge from origin/emacs-26
fa953b5 (origin/emacs-26) Fix an epg test for recent GnuPG versions (...
3015636 Document font structure layout constraints
f14d574 Document font structure layout constraints
f519aa1 Fix display of line numbers in empty lines beyond EOB
24b5026 Fix redisplay when a window's scroll bar or fringes are changed
5d1b158 Tiny markup fix in Elisp manual
Glenn Morris [Sat, 15 Dec 2018 23:08:28 +0000 (15:08 -0800)]
Ensure flymake tests use gcc rather than $CC
* test/lisp/progmodes/flymake-resources/Makefile: Force use of gcc.
This seems to be what the tests expect. (Bug#33735)
Glenn Morris [Sat, 15 Dec 2018 23:04:24 +0000 (15:04 -0800)]
Suppress filenotify remote test failures on hydra.nixos.org
* test/lisp/filenotify-tests.el (file-notify--deftest-remote):
Add optional argument to pass expected-result.
(file-notify-test04-autorevert-remote)
(file-notify-test08-backup-remote): Expect failure on hydra (bug#33735).
Glenn Morris [Sat, 15 Dec 2018 22:49:46 +0000 (14:49 -0800)]
Fix an eshell ls dired test for non-recent files
* test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844):
Work around an eshell issue with non-recent files. (Bug#33734)
Glenn Morris [Sat, 15 Dec 2018 01:09:02 +0000 (20:09 -0500)]
Fix an epg test for recent GnuPG versions (bug#33439)
* test/lisp/epg-tests.el (epg-decrypt-1):
Tell recent GnuPG (e.g. 2.2.11) not to worry about missing MDC.
Glenn Morris [Fri, 14 Dec 2018 20:41:17 +0000 (15:41 -0500)]
* make-dist: Improve no-byte-compile check.
Glenn Morris [Fri, 14 Dec 2018 20:40:15 +0000 (15:40 -0500)]
* make-dist: Improve tempfile handling.
Prompted by /tmp/out existing and being owned by another user.