]> git.eshelyaron.com Git - emacs.git/log
emacs.git
4 years agoDon't use `let*' with just one binding
Juanma Barranquero [Tue, 24 Dec 2019 03:09:46 +0000 (04:09 +0100)]
Don't use `let*' with just one binding

* lisp/registry.el (registry-reindex):
* lisp/emacs-lisp/generator.el (cps--add-state):
Use `let', not `let*'.

4 years agoPrepare module header generation for Emacs 28.
Philipp Stephani [Mon, 23 Dec 2019 21:00:01 +0000 (22:00 +0100)]
Prepare module header generation for Emacs 28.

* configure.ac: Substitute environment function snippet for Emacs 28.

* src/module-env-28.h: New file, with dummy contents for now.

* src/emacs-module.h.in: Provide emacs_env_28 structure.

4 years ago* src/emacs-module.h.in: Use @emacs_major_version@ for current env.
Philipp Stephani [Mon, 23 Dec 2019 20:58:26 +0000 (21:58 +0100)]
* src/emacs-module.h.in: Use @emacs_major_version@ for current env.

4 years agoMake fido-mode behave more like ido-mode when finding directories
João Távora [Mon, 23 Dec 2019 23:43:30 +0000 (23:43 +0000)]
Make fido-mode behave more like ido-mode when finding directories

Notably C-x d (M-x dired) and C-x v d (M-x vc-dir) behaved quite
differently, having regular files as the default instead of ido's
usual "./".

* lisp/icomplete.el (icomplete--sorted-completions): New helper.
(icomplete-completions): Use it.

4 years agoSlightly simplify lisp/icomplete.el with new icomplete--category helper
João Távora [Mon, 23 Dec 2019 23:19:01 +0000 (23:19 +0000)]
Slightly simplify lisp/icomplete.el with new icomplete--category helper

* lisp/icomplete.el (icomplete-fido-kill)
(icomplete-fido-delete-char, icomplete-fido-ret)
(icomplete-fido-backward-updir, icomplete-exhibit): Use
icomplete--category.
(icomplete--category): New helper.

4 years agoAnother adjustment to flex completion style's sorting function
João Távora [Mon, 23 Dec 2019 23:11:59 +0000 (23:11 +0000)]
Another adjustment to flex completion style's sorting function

* lisp/minibuffer.el (completion--flex-adjust-metadata): Adjust
case when minibuffer-default is non-nil.

4 years ago* src/pdumper.c (Fdump_emacs_portable): Reword error message.
Philipp Stephani [Mon, 23 Dec 2019 20:26:38 +0000 (21:26 +0100)]
* src/pdumper.c (Fdump_emacs_portable): Reword error message.

4 years agoRemove some undefined behavior related to left shifts.
Philipp Stephani [Mon, 23 Dec 2019 20:24:37 +0000 (21:24 +0100)]
Remove some undefined behavior related to left shifts.

Found by UBSan.

* src/nsfns.m (ns_set_foreground_color, ns_set_background_color):
* src/nsimage.m (getPixelAtX:Y:):
* src/nsterm.m (ns_color_index_to_rgba): Add explicit casts to avoid
undefined behavior when left-shifting beyond the bounds of the int
type.

* src/macfont.m (METRICS_VALUE): Add explicit casts to avoid undefined
behavior when left-shifting a negative value.

4 years agoFurther expand coverage of unit tests for time-stamp
Stephen Gildea [Mon, 23 Dec 2019 19:51:47 +0000 (11:51 -0800)]
Further expand coverage of unit tests for time-stamp

* test/lisp/time-stamp-tests.el (time-stamp-custom-format-tabs-expand,
time-stamp-custom-end, time-stamp-helper-string-defaults): New tests.
(time-stamp-custom-count): Test 0 case.
(time-stamp-format-non-date-conversions): Test different system values.

Development of these new tests was guided by the "testcover" library.

4 years agoDon’t allow portable dumping in interactive mode (Bug#38453).
Philipp Stephani [Mon, 23 Dec 2019 19:49:15 +0000 (20:49 +0100)]
Don’t allow portable dumping in interactive mode (Bug#38453).

* src/pdumper.c (Fdump_emacs_portable): Don’t allow dumping in
interactive mode.

4 years ago; Fix oversights during renaming of example code
Mario Lang [Mon, 23 Dec 2019 17:30:09 +0000 (18:30 +0100)]
; Fix oversights during renaming of example code

Introduced in 94fa7ceb480632fec7dda6d41f63223e4127bd83

4 years agoMake argument names in module interface more consistent.
Philipp Stephani [Mon, 23 Dec 2019 16:12:56 +0000 (17:12 +0100)]
Make argument names in module interface more consistent.

Previously, the names of arguments and other details were needlessly
inconsistent between the documentation, the declarations, and the
definitions, as well as between each other.  This commit makes them
more consistent, in most cases by applying the names from the
documentation everywhere.

* src/module-env-27.h:
* src/module-env-25.h:
* src/emacs-module.h.in:
* src/emacs-module.c (module_get_environment)
(module_make_global_ref, module_free_global_ref)
(module_non_local_exit_get, module_non_local_exit_signal)
(module_make_function, module_funcall, module_type_of)
(module_is_not_nil, module_extract_integer)
(module_extract_float, module_copy_string_contents)
(module_make_string, module_vec_set, module_vec_get)
(module_vec_size, module_extract_time)
(module_assert_runtime):
* doc/lispref/internals.texi (Module Initialization)
(Module Functions, Module Values): Make argument names and some other
details consistent.  No functional changes.

4 years agoBump Emacs version to 28.0.50
Eli Zaretskii [Mon, 23 Dec 2019 16:00:52 +0000 (18:00 +0200)]
Bump Emacs version to 28.0.50

* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp:
* src/msdos.c (internal_terminal_init):
* etc/refcards/ru-refcard.tex: Bump Emacs version to 28.0.50.

* lisp/cus-edit.el (customize-changed-options-previous-release):
Bump up the value to 26.3.

* etc/NEWS.27: Renamed from NEWS.
* etc/NEWS: New file for Emacs 28.

4 years agoDocument and verify that emacs_limb_t doesn’t have padding bits.
Philipp Stephani [Mon, 23 Dec 2019 14:37:49 +0000 (15:37 +0100)]
Document and verify that emacs_limb_t doesn’t have padding bits.

This is a useful property when doing further bit-twiddling with the
magnitude array before/after calling extract_big_integer or
make_big_integer.  For example, constructing an emacs_limb_t object
using repeated shift-and-add should work as expected, but relies on
the type not having padding bits.  Since the C standard already
guarantees that unsigned integers use a pure binary representation,
not having padding bits is enough to guarantee that the type has
unique object representations in the sense of C++’s
std::has_unique_object_representations.

* doc/lispref/internals.texi (Module Values): Document that
emacs_limb_t doesn’t have padding bits.

* src/emacs-module.c: Verify that emacs_limb_t doesn’t have padding
bits.

4 years agoFix extension of underline, overline, and strike-through attributes
Jimmy Aguilar Mena [Sun, 22 Dec 2019 22:46:39 +0000 (23:46 +0100)]
Fix extension of underline, overline, and strike-through attributes

* src/xdisp.c (extend_face_to_end_of_line): Don't return early
if face attributes beyond background color and box are set,
since that means these attributes need to be extended past the
EOL.

4 years ago; * lisp/mouse.el: declare functions to silence warnings
Mattias Engdegård [Mon, 23 Dec 2019 11:39:41 +0000 (12:39 +0100)]
; * lisp/mouse.el: declare functions to silence warnings

4 years agoComment on limitation of flex completion style's sorting function
João Távora [Mon, 23 Dec 2019 11:08:43 +0000 (12:08 +0100)]
Comment on limitation of flex completion style's sorting function

* lisp/minibuffer.el (completion--flex-adjust-metadata): Add
comment.

4 years agoFix a bug in completion--flex-adjust-metadata
João Távora [Mon, 23 Dec 2019 11:03:13 +0000 (12:03 +0100)]
Fix a bug in completion--flex-adjust-metadata

If minibuffer-default coincided with the first of completions, the
empty list would be returned.

* lisp/minibuffer.el (completion--flex-adjust-metadata): Make sure
to never return empty list.

4 years agoFix documentation of implied frame resizing (Bug#38684)
Martin Rudalics [Mon, 23 Dec 2019 09:50:44 +0000 (10:50 +0100)]
Fix documentation of implied frame resizing (Bug#38684)

* src/frame.c (frame_inhibit_implied_resize): Fix doc-string.
* doc/lispref/frames.texi (Implied Frame Resizing): Update and
rewrite section.

4 years agoAdded `comint-password-function' hook
Michael R. Mauger [Mon, 23 Dec 2019 04:56:05 +0000 (23:56 -0500)]
Added `comint-password-function' hook

* etc/NEWS:
* lisp/comint.el (comint-password-function): New variable.
  (comint-send-invisible): Use it.
* test/lisp/comint-tests.el (comint-test-no-password-function,
  comint-test-password-function-with-value,
  comint-test-password-function-with-nil): Test new variable.

4 years ago* lisp/files.el (save-buffers-kill-emacs): Mark "*Process List*" as dedicated.
Juri Linkov [Sun, 22 Dec 2019 23:02:22 +0000 (01:02 +0200)]
* lisp/files.el (save-buffers-kill-emacs): Mark "*Process List*" as dedicated.

Using the 'dedicated' prop for display-buffer--maybe-at-bottom marks the
window of the buffer "*Process List*" as dedicated, so it won't be replaced
by another buffer that might be visited following links to process buffers
from the buffer "*Process List*".

4 years ago* lisp/tab-bar.el: Use alist-get instead of (cdr (assq ...))
Juri Linkov [Sun, 22 Dec 2019 22:55:38 +0000 (00:55 +0200)]
* lisp/tab-bar.el: Use alist-get instead of (cdr (assq ...))

* lisp/tab-bar.el (tab-bar-mode): Bind s-0 to tab-bar-switch-to-recent-tab.

4 years ago* lisp/proced.el (proced-signal-list): Add more POSIX 1003.1-2001 signals.
Juri Linkov [Sun, 22 Dec 2019 22:51:49 +0000 (00:51 +0200)]
* lisp/proced.el (proced-signal-list): Add more POSIX 1003.1-2001 signals.

4 years agoFix bug in flex completion style's sorting and simplify
João Távora [Sun, 22 Dec 2019 21:51:08 +0000 (22:51 +0100)]
Fix bug in flex completion style's sorting and simplify

This previous commit targetting this function introduced a bug whereby
the completion table's sorting function wouldn't be called.  That is
fixed by this commit, which also simplifies the function further: it
now skips re-sorting the completions completely if there is no
minibuffer input at all (in other words, when flex isn't doing
anything useful).

* lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify.

4 years ago* lisp/gnus/gnus-start.el: Use lexical-binding
Stefan Monnier [Sun, 22 Dec 2019 21:09:31 +0000 (16:09 -0500)]
* lisp/gnus/gnus-start.el: Use lexical-binding

(gnus-group-change-level, gnus-make-hashtable-from-newsrc-alist):
Use gnus-info-make.
(gnus-make-hashtable-from-newsrc-alist): Prefer `gnus-info-group`
to `car` when applied to a `gnus-info` object.
(gnus-make-hashtable-from-killed): Remove unused vars `lists` and `list`.
(gnus-gnus-to-quick-newsrc-format): Extract common code from if branches.

* lisp/gnus/gnus.el (gnus-info-make): New constructor.

4 years agoFix wording of recent documentation changes
Eli Zaretskii [Sun, 22 Dec 2019 19:02:48 +0000 (21:02 +0200)]
Fix wording of recent documentation changes

* src/xdisp.c (syms_of_xdisp):
* lisp/minibuffer.el (minibuffer-message-clear-timeout):
* etc/NEWS:
* doc/lispref/display.texi (Displaying Messages): Minor
changes of wording of a recent commit.  (Bug#38457)

4 years agoExtend tramp-tests.el for other host name syntax and file name syntax
Michael Albinus [Sun, 22 Dec 2019 12:48:36 +0000 (13:48 +0100)]
Extend tramp-tests.el for other host name syntax and file name syntax

* test/lisp/net/tramp-tests.el (inhibit-message)
(connection-local-criteria-alist)
(connection-local-profile-alist, async-shell-command-width): Declare.
(tramp-test01-file-name-syntax)
(tramp-test02-file-name-dissect): Set syntax to `default'.
(tramp-test03-file-name-defaults)
(tramp-test03-file-name-host-rules)
(tramp-test03-file-name-method-rules)
(tramp-test04-substitute-in-file-name)
(tramp-test05-expand-file-name)
(tramp-test06-directory-file-name, tramp-test44-auto-load):
Skip unless syntax is `default'.
(tramp-test06-directory-file-name, tramp-test10-write-region)
(tramp-test17-dired-with-wildcards)
(tramp-test26-file-name-completion): Handle IPv6 host names.
(tramp-test21-file-links): Support all syntaxes.
(tramp-test30-make-process, tramp-test45-unload):
Suppress compiler warnings.
(tramp-test37-make-auto-save-file-name): Skip for `separate' syntax.

4 years ago* lisp/net/trampver.el (inhibit-message): Declare.
Michael Albinus [Sun, 22 Dec 2019 12:47:38 +0000 (13:47 +0100)]
* lisp/net/trampver.el (inhibit-message): Declare.

4 years agoAdd item to Frequently Asked Questions of Tramp manual
Michael Albinus [Sun, 22 Dec 2019 12:47:29 +0000 (13:47 +0100)]
Add item to Frequently Asked Questions of Tramp manual

* doc/misc/tramp.texi (Frequently Asked Questions): Add item for
ControlMaster option on proxy hosts.  Explain changing syntax to
Ange FTP.

4 years ago* lisp/term/ns-win.el (ns-insert-working-text): Comment is obsolete.
Alan Third [Sun, 22 Dec 2019 12:03:33 +0000 (12:03 +0000)]
* lisp/term/ns-win.el (ns-insert-working-text): Comment is obsolete.

4 years agoImprove sorting of flex completion style with non-nil minibuffer-default
João Távora [Sun, 22 Dec 2019 11:52:17 +0000 (12:52 +0100)]
Improve sorting of flex completion style with non-nil minibuffer-default

This affects the behaviour of flex completion when there is a default
completion and the user hasn't entered any input pattern to flex-match
against.  It is most visible when icomplete-mode or fido-mode are
being used in conjunctio.

When using M-x man, for instance, the default completion is picked
from text around point.  Say it is "emacs" (for Emacs's man page).  It
will not match the intended completion, "emacs(1)", exactly.  If the
user hasn't yet given any input to the completion prompt, that
completion should bubble to top so that
icomplete-force-complete-and-exit will select it, but it didn't.

This new approach uses 'string-prefix-p' instead of 'equal' to find
the default to bubble to the top.  This strategy could eventually be
improved, most naturally by flex-matching the default string to all
the candidates and picking the highest scoring one.

Additionally, the new strategy only considers minibuffer-default if
there is no input in the minibuffer, which seems sensible and produces
a small but noticeable speedup.

* lisp/minibuffer.el (completion--flex-adjust-metadata):
Reformulate sorting strategy.

4 years agoFix display of working text on NS (Bug#23412, Bug#1453)
Masahiro Nakamura [Wed, 18 Dec 2019 15:32:54 +0000 (00:32 +0900)]
Fix display of working text on NS (Bug#23412, Bug#1453)

* lisp/term/ns-win.el (ns-insert-working-text):
(ns-delete-working-text): Change how working text is deleted to handle
changed order of operations.
* src/nsterm.m ([EmacsView insertText:]): Move deletion of working
text until after insertion of new text.

Copyright-paperwork-exempt: yes

4 years agoCheck if file is in iCloud drive (bug#38618)
Alan Third [Tue, 17 Dec 2019 21:17:46 +0000 (21:17 +0000)]
Check if file is in iCloud drive (bug#38618)

* src/nsfns.m (ns_set_represented_filename): Check whether the file is
a `ubiquitous item', and if so don't display a proxy icon.

4 years ago* lisp/tab-bar.el: Rename tab-bar-list to tab-switcher (bug#38624)
Juri Linkov [Sat, 21 Dec 2019 23:10:56 +0000 (01:10 +0200)]
* lisp/tab-bar.el: Rename tab-bar-list to tab-switcher (bug#38624)

4 years agoNew variable set-message-function to show message at the end of the minibuffer
Juri Linkov [Sat, 21 Dec 2019 22:02:10 +0000 (00:02 +0200)]
New variable set-message-function to show message at the end of the minibuffer

* doc/lispref/display.texi (Displaying Messages): Document
set-message-function and clear-message-function.

* lisp/minibuffer.el (minibuffer-message-clear-timeout): New defcustom.
(minibuffer-message-timer, minibuffer-message-overlay): New variables.
(set-minibuffer-message, clear-minibuffer-message): New functions.
(set-message-function, clear-message-function): Set variables to
set-minibuffer-message and clear-minibuffer-message respectively.

* src/keyboard.c (read_char): Call clear_message when
Vclear_message_function is a function.

* src/xdisp.c (set_message): Call Vset_message_function when it's a function.
(clear_message): Call Vclear_message_function when it's a function.
(syms_of_xdisp): New variables set-message-function and clear-message-function
(bug#38457).

4 years agobackup-by-copying-when-privileged-mismatch applies to file gid, too.
Stephen Gildea [Fri, 20 Dec 2019 17:15:13 +0000 (09:15 -0800)]
backup-by-copying-when-privileged-mismatch applies to file gid, too.

* lisp/files.el (backup-by-copying-when-privileged-mismatch):  In addition
to checking the file uid, a second test is added: if the file gid is not
greater than backup-by-copying-when-privileged-mismatch,
backup-by-copying-when-mismatch will also be forced on.

* doc/emacs/files.texi, doc/lispref/backups.texi: Updated documentation.

Also fixed a typo in the Emacs reference manual, changing "higher" to
"no greater" so that the limit is no longer documented reversed.

4 years ago;* src/process.c (read_process_output): Fix last change.
Eli Zaretskii [Sat, 21 Dec 2019 18:18:05 +0000 (20:18 +0200)]
;* src/process.c (read_process_output): Fix last change.

4 years agoAdd new function `python-shell-send-statement'
lin.sun [Fri, 29 Nov 2019 08:10:12 +0000 (03:10 -0500)]
Add new function `python-shell-send-statement'

* lisp/progmodes/python.el (python-shell-send-statement): New function.
(python-mode-map): Bind it to key "C-c C-e", and define a python-menu
item for it.  (Bug#38426)

4 years agoAllow control of data amount read from subprocess in one chunk
Eli Zaretskii [Sat, 21 Dec 2019 08:47:31 +0000 (10:47 +0200)]
Allow control of data amount read from subprocess in one chunk

* src/process.c (syms_of_process) <read-process-output-max>:
New variable.
(read_process_output): Use it instead of the hard-coded
constant 4096.  (Bug#38561)
Use SAFE_ALLOCA to support large buffers for reading process
output.

* etc/NEWS: Mention 'read-process-output-max'.

4 years ago* lisp/international/mule-cmds.el: Fix bug#38642
Stefan Monnier [Fri, 20 Dec 2019 22:34:38 +0000 (17:34 -0500)]
* lisp/international/mule-cmds.el: Fix bug#38642

(universal-coding-system-argument): Adjust the code to the way
`universal-argument` works nowadays.  Handle `prefix-arg` a bit more
like `command_loop` does.

* test/lisp/international/mule-tests.el
(mule-cmds--test-universal-coding-system-argument): New test.

4 years agoSpeed up vc-dir-update
Dmitry Gutov [Fri, 20 Dec 2019 22:07:08 +0000 (00:07 +0200)]
Speed up vc-dir-update

* lisp/vc/vc-dir.el (vc-dir-update): Speed up.
(https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00568.html)

4 years agoElisp manual: mention parse-partial-sexp as the source of a parser state, etc
Alan Mackenzie [Fri, 20 Dec 2019 19:55:29 +0000 (19:55 +0000)]
Elisp manual: mention parse-partial-sexp as the source of a parser state, etc

* doc/lispref/syntax.texi (Parser State): mention parse-partial-sexp as a
function returning a parser state, and the function to which one supplies a
parser state as an argument for continued parsing.
Refine the documentation of syntax-ppss-context, and correct the text
introducing it and another function.

4 years agoSupport setting OS names of threads on MS-Windows
Eli Zaretskii [Fri, 20 Dec 2019 18:59:07 +0000 (20:59 +0200)]
Support setting OS names of threads on MS-Windows

* src/w32fns.c (setup_w32_kbdhook): Don't initialize
is_debugger_present here...
(globals_of_w32fns): ...initialize it here.  Also initialize
the new global variable set_thread_description.
* src/systhread.c: [WINDOWSNT] Include mbctype.h
(w32_set_thread_name): New function.
(MS_VC_EXCEPTION): New macro.
(THREADNAME_INFO, IsDebuggerPresent_Proc)
(SetThreadDescription_Proc): New typedefs.
(w32_beginthread_wrapper): Call w32_set_thread_name to set the
name of the new thread.
* src/thread.h (struct thread_state): New member thread_name.
* src/thread.c (Fmake_thread): Set the thread_name field of
the new thread object.
(run_thread): Free the thread_name member after the thread
exits.

4 years agoFix error in tramp-process-sentinel
Michael Albinus [Fri, 20 Dec 2019 12:32:24 +0000 (13:32 +0100)]
Fix error in tramp-process-sentinel

* lisp/net/tramp.el (tramp-process-sentinel): Check, that process
buffer is alive.

4 years ago* lisp/tab-bar.el: Sort tab names by recency for tab switching (bug#38624)
Juri Linkov [Thu, 19 Dec 2019 23:18:28 +0000 (01:18 +0200)]
* lisp/tab-bar.el: Sort tab names by recency for tab switching (bug#38624)

* lisp/tab-bar.el (tab-bar--tabs-recent): New function with code
extracted from tab-bar--tab-index-recent.
(tab-bar-switch-to-tab): Use tab-bar--tabs-recent in interactive spec
to sort names of tabs by recency for default values of completing-read.
(tab-prefix-map): Bind RET to tab-bar-select-tab-by-name, and 'm' to tab-move.

4 years ago; Fix typos in ange-ftp.el (bug#38660)
Michael Albinus [Thu, 19 Dec 2019 08:34:44 +0000 (09:34 +0100)]
; Fix typos in ange-ftp.el (bug#38660)

4 years agoMore precise 'regexp-opt' documentation
Mattias Engdegård [Sun, 15 Dec 2019 21:17:11 +0000 (22:17 +0100)]
More precise 'regexp-opt' documentation

* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
* doc/lispref/searching.texi (Regexp Functions):
Be more specific about how the KEEP-ORDER argument actually works.
If nil, the regexp guarantees a longest match; this is the behaviour
that many callers implicitly rely on.

4 years agoFix an error with remote file name in compile.el
Michael Albinus [Wed, 18 Dec 2019 09:19:19 +0000 (10:19 +0100)]
Fix an error with remote file name in compile.el

* lisp/progmodes/compile.el (compilation-get-file-structure):
Compute proper remote file name.  (Bug#38648)

4 years agoVerilog-Mode collected updates.
Wilson Snyder [Tue, 17 Dec 2019 23:04:48 +0000 (18:04 -0500)]
Verilog-Mode collected updates.

* lisp/progmodes/verilog-mode.el (verilog-compiler-directives): Support
indenting `uselib.
(verilog-read-decls): Fix AUTO* to ignore `protected regions.
(verilog-read-auto-template-middle): Fix AUTO_TEMPLATEs with multiple
module templates and at-REGEXPs, msg3183.  Reported by Berk Akinci.

4 years agoImprove Tramp's file-name-completion
Michael Albinus [Tue, 17 Dec 2019 09:38:42 +0000 (10:38 +0100)]
Improve Tramp's file-name-completion

* lisp/net/tramp.el (tramp-handle-file-name-completion):
Filter out "./" and "../", if there's only one other result.

4 years agoAdjust cursor column when auto-scrolling during rectangle selection
Mattias Engdegård [Mon, 16 Dec 2019 21:42:16 +0000 (22:42 +0100)]
Adjust cursor column when auto-scrolling during rectangle selection

* lisp/mouse.el (mouse-drag-region-rectangle):
Move cursor to the correct column during auto-scrolling both when
crutches are used and not (bug#38641).  Reported by Konrad Podczeck.

4 years agoMake ls-files-unknown only return proper files, not directories
Andrii Kolomoiets [Mon, 16 Dec 2019 23:49:34 +0000 (01:49 +0200)]
Make ls-files-unknown only return proper files, not directories

* lisp/vc/vc-git.el (vc-git-dir-status-goto-stage):
Make ls-files-unknown only return proper files, not directories
(bug#38615).

4 years agovc-git-after-dir-status-stage: Avoid erroneous up-to-date status
Dmitry Gutov [Mon, 16 Dec 2019 21:55:11 +0000 (23:55 +0200)]
vc-git-after-dir-status-stage: Avoid erroneous up-to-date status

* lisp/vc/vc-git.el (vc-git-after-dir-status-stage):
Don't set `up-to-date' status if the previous stage (`diff-index')
has assigned some other status to the file (bug#38615).

4 years agoFix face merging for display strings broken by a recent commit
Eli Zaretskii [Mon, 16 Dec 2019 15:43:30 +0000 (17:43 +0200)]
Fix face merging for display strings broken by a recent commit

* src/xfaces.c (face_at_string_position): Revert the last
change, as it cannot possibly solve bug#38563.
* src/xdisp.c (face_at_pos): Fix a typo made during last
change here, which broke face merging for display strings.
(Bug#38633)

4 years ago* lisp/isearch.el (isearch-xterm-paste): Use code like in 'xterm-paste'.
Juri Linkov [Mon, 16 Dec 2019 00:18:00 +0000 (02:18 +0200)]
* lisp/isearch.el (isearch-xterm-paste): Use code like in 'xterm-paste'.

Add arg 'event' and use it to get pasted text.
This allows pasting text on terminals to the
search string (bug#18727, bug#36950).

4 years agoRevert aa89c84e00d8dc85100e6fedab7631c415e6364d (bug#38457)
Juri Linkov [Sun, 15 Dec 2019 23:58:14 +0000 (01:58 +0200)]
Revert aa89c84e00d8dc85100e6fedab7631c415e6364d (bug#38457)

* src/editfns.c (Fmessage): Don't use minibuffer-message.
(Fmessage_in_echo_area): Remove function message-in-echo-area.
(syms_of_editfns): Remove variable message-in-echo-area.

* lisp/isearch.el (isearch--momentary-message): Remove message-in-echo-area.
* lisp/minibuffer.el (minibuffer-message): Don't record message
in the *Messages* buffer.
(minibuffer-completion-help): Remove message-in-echo-area.

* lisp/subr.el (do-after-load-evaluation): Remove discard-input (bug#38560)

4 years ago* lisp/tab-line.el (tab-line-auto-hscroll): Improve.
Juri Linkov [Sun, 15 Dec 2019 23:14:02 +0000 (01:14 +0200)]
* lisp/tab-line.el (tab-line-auto-hscroll): Improve.

Better handling of tabs scrolled to the left.
Don't scroll tabs that are already visible.

Remove setq of buffer-undo-list because undo is disabled
anyway in internal buffers with name " *temp*".

4 years ago* lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button.
Juri Linkov [Sun, 15 Dec 2019 23:08:45 +0000 (01:08 +0200)]
* lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button.

4 years ago* lisp/tab-bar.el (tab-bar-select-tab): Message about selected tab (bug#38624)
Juri Linkov [Sun, 15 Dec 2019 23:03:55 +0000 (01:03 +0200)]
* lisp/tab-bar.el (tab-bar-select-tab): Message about selected tab (bug#38624)

4 years ago* lisp/tab-bar.el (tab-bar-close-other-tabs): Use tab close customs
Robert Cochran [Wed, 11 Dec 2019 18:29:00 +0000 (10:29 -0800)]
* lisp/tab-bar.el (tab-bar-close-other-tabs): Use tab close customs

4 years agoDocument variables that affect tabs in function docstrings
Robert Cochran [Wed, 11 Dec 2019 18:04:06 +0000 (10:04 -0800)]
Document variables that affect tabs in function docstrings

* lisp/tab-bar.el (tab-bar-new-tab-to): Mention
tab-bar-post-open-functions in docstring.
(tab-bar-close-tab): Mention tab-bar-prevent-tab-functions,
tab-bar-tab-pre-close-functions, and tab-bar-close-last-tab-choice.

4 years agoNew command 'diff-buffers'
Phil Sainty [Sat, 14 Dec 2019 07:49:41 +0000 (20:49 +1300)]
New command 'diff-buffers'

* lisp/vc/diff.el (diff-buffers): New command.
(diff, diff-no-select, diff-file-local-copy): Improve docstrings.
* doc/emacs/files.texi:
* etc/NEWS: Document new command, and the previously-undocumented
ability for 'diff' to compare buffers.

4 years agoAdjust intptr_t advice
Paul Eggert [Sat, 14 Dec 2019 22:22:03 +0000 (14:22 -0800)]
Adjust intptr_t advice

* doc/lispref/internals.texi (C Integer Types): Say to prefer
uintptr_t when pointer arithmetic might overflow intptr_t.

4 years agoRemove nothing from union output_data
Paul Eggert [Sat, 14 Dec 2019 22:13:10 +0000 (14:13 -0800)]
Remove nothing from union output_data

* src/frame.h (union output_data): Remove ‘nothing’ member.
It has had no effect for quite some time.
All uses removed.

4 years agoUpdate documentation of pure-space overflow
Eli Zaretskii [Sat, 14 Dec 2019 18:02:11 +0000 (20:02 +0200)]
Update documentation of pure-space overflow

* doc/lispref/internals.texi (Garbage Collection)
(Pure Storage):
* src/alloc.c (Fgarbage_collect): Update the documentation of
pure-space overflow for when pdumper is used.  (Bug#38492)

4 years ago* lisp/minibuffer.el (completion-pcm--find-all-completions): Simplify a bit
Stefan Monnier [Sat, 14 Dec 2019 17:40:29 +0000 (12:40 -0500)]
* lisp/minibuffer.el (completion-pcm--find-all-completions): Simplify a bit

4 years ago* lisp/net/tramp.el (tramp-initial-file-name-regexp): Make it more precise.
Michael Albinus [Sat, 14 Dec 2019 13:20:00 +0000 (14:20 +0100)]
* lisp/net/tramp.el (tramp-initial-file-name-regexp): Make it more precise.

4 years agoFix cross-references in ELisp manual
Eli Zaretskii [Sat, 14 Dec 2019 11:56:29 +0000 (13:56 +0200)]
Fix cross-references in ELisp manual

* doc/lispref/commands.texi (Misc Events, Special Events): Fix
cross-references.  (Bug#38520)

4 years agoDon't warn about pure-space overflow
Eli Zaretskii [Sat, 14 Dec 2019 11:39:26 +0000 (13:39 +0200)]
Don't warn about pure-space overflow

* lisp/startup.el (command-line-1): Don't warn about
pure-space overflow if we were dumped with pdumper.
(Bug#38492)

4 years agoFix typo that broke GNU/Linux unexec build
Paul Eggert [Sat, 14 Dec 2019 01:06:52 +0000 (17:06 -0800)]
Fix typo that broke GNU/Linux unexec build

* src/emacs.c (Fdump_emacs): Remove stray closing brace that
breaks the build when configured with --with-dumping=unexec on
GNU/Linux.  (Apparently everybody is using pdumper now.)
I introduced the bug in 2019-07-09T00:50:39Z!eggert@cs.ucla.edu.

4 years agoxfaces.c: Silence spurious maybe-uninitialized compiler warning
Juanma Barranquero [Fri, 13 Dec 2019 17:52:49 +0000 (18:52 +0100)]
xfaces.c: Silence spurious maybe-uninitialized compiler warning

* src/xfaces.c (face_inherited_attr): Initialize 'ok' to false.

4 years agoDisable undo in the process buffers of a JSONRPC connection
João Távora [Wed, 11 Dec 2019 21:26:35 +0000 (22:26 +0100)]
Disable undo in the process buffers of a JSONRPC connection

* lisp/jsonrpc.el (initialize-instance jsonrpc-process-connection):
Use buffer-disable-undo in stdout and stderr buffers.

* lisp/jsonrpc.el (Version): Bump to 1.0.9

4 years ago* lisp/net/tramp.el (tramp-unload-tramp): Autoload function body.
Michael Albinus [Fri, 13 Dec 2019 15:36:57 +0000 (16:36 +0100)]
* lisp/net/tramp.el (tramp-unload-tramp): Autoload function body.

4 years agopython-shell-completion-at-point: respect simple-operator (Bug#37808)
Andrii Kolomoiets [Fri, 18 Oct 2019 13:04:32 +0000 (16:04 +0300)]
python-shell-completion-at-point: respect simple-operator (Bug#37808)

* lisp/progmodes/python.el (python-shell-completion-at-point): Also
stop on simple-operator while parsing input.

4 years agoAllow characters and single-char strings in rx charsets
Mattias Engdegård [Fri, 13 Dec 2019 12:10:58 +0000 (13:10 +0100)]
Allow characters and single-char strings in rx charsets

The `not' and `intersection' forms, and `or' inside these forms,
now accept characters and single-character strings as arguments.
Previously, they had to be wrapped in `any' forms.
This does not add expressive power but is a convenience and is easily
understood.

* doc/lispref/searching.texi (Rx Constructs): Amend the documentation.
* etc/NEWS: Announce the change.
* lisp/emacs-lisp/rx.el (rx--charset-p, rx--translate-not)
(rx--charset-intervals, rx): Accept characters and 1-char strings in
more places.
* test/lisp/emacs-lisp/rx-tests.el (rx-not, rx-charset-or)
(rx-def-in-charset-or, rx-intersection): Test the change.

4 years ago; * src/emacs-module.h.in: Sort includes alphabetically.
Philipp Stephani [Fri, 13 Dec 2019 12:21:36 +0000 (13:21 +0100)]
; * src/emacs-module.h.in: Sort includes alphabetically.

4 years agoAdd prefix to help.el uni-confusable* vars
Noam Postavsky [Fri, 13 Dec 2019 11:36:02 +0000 (06:36 -0500)]
Add prefix to help.el uni-confusable* vars

* lisp/help.el (help-uni-confusables, help-uni-confusables-regexp):
Rename from uni-confusable and uni-confusables-regexp, respectively.
(help-uni-confusable-suggestions): Use ngettext.  Use new variable
name.
* lisp/emacs-lisp/lisp-mode.el (lisp--match-confusable-symbol-character):
Use new variable name.

4 years agoA better fix for extension of overlay string's faces
Eli Zaretskii [Fri, 13 Dec 2019 10:29:05 +0000 (12:29 +0200)]
A better fix for extension of overlay string's faces

* src/xdisp.c (face_at_pos): Revert previous change that
rejected the underlying face if it failed the filtering
criteria.
* src/xfaces.c (face_at_string_position): Reset the base face's
attribute used for filtering faces if the attribute is t.
(Bug#38563)

4 years ago* lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Use 'user-error'.
Juri Linkov [Thu, 12 Dec 2019 23:47:03 +0000 (01:47 +0200)]
* lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Use 'user-error'.

4 years ago* lisp/wid-edit.el (widget-field): Add ':extend t' to defface (bug#37774)
Juri Linkov [Thu, 12 Dec 2019 23:43:35 +0000 (01:43 +0200)]
* lisp/wid-edit.el (widget-field): Add ':extend t' to defface (bug#37774)

4 years agoUse `or' instead of `union' for charset union in rx
Mattias Engdegård [Thu, 12 Dec 2019 22:04:00 +0000 (23:04 +0100)]
Use `or' instead of `union' for charset union in rx

Design change suggested by Stefan Monnier.

* doc/lispref/searching.texi (Rx Constructs):
* etc/NEWS: Document.
* lisp/emacs-lisp/rx.el (rx--translate-or): Detect charset arguments.
(rx--charset-p): New.
(rx--translate-not, rx--charset-intervals, rx--translate-union):
Change from `union' to `or'.
(rx--translate-form, rx--builtin-forms, rx): Remove `union'.
* test/lisp/emacs-lisp/rx-tests.el (rx-union, rx-def-in-union)
(rx-intersection): Rename tests and change `union' to `or' and `|'.

4 years ago; * src/xdisp.c (face_at_pos): Fix last change.
Eli Zaretskii [Thu, 12 Dec 2019 18:07:42 +0000 (20:07 +0200)]
; * src/xdisp.c (face_at_pos): Fix last change.

4 years agoOptimize prompt search in Tramp
Michael Albinus [Thu, 12 Dec 2019 14:21:34 +0000 (15:21 +0100)]
Optimize prompt search in Tramp

* lisp/net/tramp.el (tramp-search-regexp): New defun.
(tramp-check-for-regexp, tramp-process-sentinel):
* lisp/net/tramp-adb.el (tramp-adb-send-command-and-check)
(tramp-adb-wait-for-output):
* lisp/net/tramp-sh.el (tramp-wait-for-output)
(tramp-send-command-and-check):
* lisp/net/tramp-smb.el (tramp-smb-handle-set-file-acl):
Bind search length.

4 years agoAvoid spurious warning about maybe-uninitialized variable
Juanma Barranquero [Thu, 12 Dec 2019 13:42:36 +0000 (14:42 +0100)]
Avoid spurious warning about maybe-uninitialized variable

* src/xdisp.c (face_at_pos): Initialize base_face_id to 0
to silence the compiler.

4 years agoFix face extension of overlay strings on buffer text with faces
Eli Zaretskii [Thu, 12 Dec 2019 11:16:46 +0000 (13:16 +0200)]
Fix face extension of overlay strings on buffer text with faces

* src/xdisp.c (face_at_pos): Reject the face returned by
'underlying_face_id' when we are filtering by face attribute,
and that attribute's value fails the filter test.  (Bug#38563)

4 years agoTreat passed strings as raw-text when percent-escaping in epg
Robert Pluim [Mon, 9 Dec 2019 17:41:59 +0000 (18:41 +0100)]
Treat passed strings as raw-text when percent-escaping in epg

The strings contained in gpg keys can contain UTF-8 data, but can also
use percent-escapes to encode non-ASCII chars.  When converting those
escapes, use 'raw-text' coding system rather than 'string-to-unibyte',
since the latter signals an error for non-ASCII characters.

* lisp/epg.el (epg--decode-percent-escape): Convert the passed
string to raw-text before treating percent escapes (Bug#38512).

4 years ago* lisp/emacs-lisp/debug.el (debug-on-entry): Allow undefined functions
Stefan Monnier [Thu, 12 Dec 2019 01:24:44 +0000 (20:24 -0500)]
* lisp/emacs-lisp/debug.el (debug-on-entry): Allow undefined functions

Allow placing debug-on-entry on a function not-yet-defined, which
is convenient when the problem you're investigating happens while
the relevant files are loaded.

4 years ago* lisp/font-lock.el (font-lock-fontify-region): Widen here (bug#38049)
Stefan Monnier [Thu, 12 Dec 2019 01:21:17 +0000 (20:21 -0500)]
* lisp/font-lock.el (font-lock-fontify-region): Widen here (bug#38049)

(font-lock-default-fontify-region): Instead of here.

4 years ago* lisp/calculator.el (cl-lib): Require at run-time as well.
Stefan Monnier [Thu, 12 Dec 2019 01:18:49 +0000 (20:18 -0500)]
* lisp/calculator.el (cl-lib): Require at run-time as well.

Needed since we pass the `cl-flet` macro to `eval` in `calculator-funcall`.

4 years ago* lisp/gnus/message.el (message-expand-name-standard-ui): New option
Stefan Monnier [Thu, 12 Dec 2019 01:17:17 +0000 (20:17 -0500)]
* lisp/gnus/message.el (message-expand-name-standard-ui): New option

(message--old-style-completion-functions): New var.
(message-completion-function): Allow functions on
`message-completion-alist` to follow the capf protocol.
(message-completion-alist): Adjust docstring accordingly.
Simplify regexps and make them apply more liberally.
(message-expand-group): Use the capf protocol.
(completion-category-defaults): Use 'substring' completion style by
default for email addresses.
(message--bbdb-query-with-words, message--name-table): New functions.
(message-expand-name): Use them to obey `message-expand-name-standard-ui`.

4 years ago* lisp/net/eudc.el (eudc-query-with-words): New function
Stefan Monnier [Wed, 11 Dec 2019 22:20:02 +0000 (17:20 -0500)]
* lisp/net/eudc.el (eudc-query-with-words): New function

Extracted from eudc-expand-inline.
(eudc-expand-inline): Use it.

4 years agoAvoid infloop in face merging due to bad face spec
Eli Zaretskii [Wed, 11 Dec 2019 17:11:23 +0000 (19:11 +0200)]
Avoid infloop in face merging due to bad face spec

* src/xfaces.c (face_inherited_attr): Don't infloop if
get_lface_attributes fails in the inner loop.  Reported by
Yuri D'Elia <wavexx@thregr.org>.

4 years ago* src/xterm.c: Remove long-obsolete comments.
Paul Eggert [Wed, 11 Dec 2019 16:53:14 +0000 (08:53 -0800)]
* src/xterm.c: Remove long-obsolete comments.

4 years agoCheck for GUI frame in ns_color_index_to_rgba
Robert Pluim [Wed, 11 Dec 2019 10:21:22 +0000 (11:21 +0100)]
Check for GUI frame in ns_color_index_to_rgba

* nsterm.m (ns_color_index_to_rgba): Check that we're using a GUI
frame before converting color (Bug#38564).

4 years agoDon't spam the echo area and the *Messages* buffer in Tramp
Michael Albinus [Wed, 11 Dec 2019 15:05:12 +0000 (16:05 +0100)]
Don't spam the echo area and the *Messages* buffer in Tramp

* lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered):
When called during `revert-buffer', don't spam the echo area and
the *Messages* buffer.

4 years agoImprove tv_nsec doc
Paul Eggert [Wed, 11 Dec 2019 04:41:28 +0000 (20:41 -0800)]
Improve tv_nsec doc

* doc/lispref/internals.texi (Module Values):
Document tv_nsec more accurately.

4 years ago; Spelling fixes
Paul Eggert [Wed, 11 Dec 2019 04:04:36 +0000 (20:04 -0800)]
; Spelling fixes

4 years agoJust use size_t for emacs_limb_t
Paul Eggert [Tue, 10 Dec 2019 21:54:20 +0000 (13:54 -0800)]
Just use size_t for emacs_limb_t

* src/emacs-module.h.in: Do not include limits.h; no longer needed.
(emacs_limb_t, EMACS_LIMB_MAX): Now size_t and SIZE_MAX.

4 years agoAdd `union' and `intersection' to rx (bug#37849)
Mattias Engdegård [Fri, 6 Dec 2019 21:23:57 +0000 (22:23 +0100)]
Add `union' and `intersection' to rx (bug#37849)

These character set operations, together with `not' for set
complement, improve the compositionality of rx, and reduce duplication
in complicated cases.  Named character classes are not permitted in
set operations.

* lisp/emacs-lisp/rx.el (rx--translate-any): Split into multiple
functions.
(rx--foldl, rx--parse-any, rx--generate-alt, rx--intervals-to-alt)
(rx--complement-intervals, rx--intersect-intervals)
(rx--union-intervals, rx--charset-intervals, rx--charset-union)
(rx--charset-all, rx--charset-intersection, rx--translate-union)
(rx--translate-intersection): New.
(rx--translate-not, rx--translate-form, rx--builtin-forms, rx):
Add `union' and `intersection'.
* test/lisp/emacs-lisp/rx-tests.el (rx-union ,rx-def-in-union)
(rx-intersection, rx-def-in-intersection): New tests.
* doc/lispref/searching.texi (Rx Constructs):
* etc/NEWS:
Document `union' and `intersection'.

4 years agoFix XBM files on NS (bug#26133)
Alan Third [Fri, 6 Dec 2019 16:49:25 +0000 (16:49 +0000)]
Fix XBM files on NS (bug#26133)

Reinstate some of the functionality removed in commit
67a878f78f879ce534232408c34dd11f42dd802b.

* src/nsimage.m (ns_image_from_XBM): Use new reverseBytes argument.
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Add
ability to reverse the contents of each byte for use with XBMs, while
still working with fringe bitmaps.
* src/nsterm.h
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Modified
function definition.
* src/nsterm.m (ns_draw_fringe_bitmap): Use new reverseBytes argument.