Commit graph

139777 commits

Author SHA1 Message Date
Eli Zaretskii
1e240a0ecd 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)
2019-12-16 17:43:30 +02:00
Juri Linkov
5aab1e83f5 * 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).
2019-12-16 02:18:00 +02:00
Juri Linkov
7254b63462 Revert aa89c84e00 (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)
2019-12-16 01:58:14 +02:00
Juri Linkov
1d52883047 * 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*".
2019-12-16 01:14:02 +02:00
Juri Linkov
468c871994 * lisp/tab-bar.el (tab-bar-handle-mouse): Handle close button. 2019-12-16 01:08:45 +02:00
Juri Linkov
b73c21fa97 * lisp/tab-bar.el (tab-bar-select-tab): Message about selected tab (bug#38624) 2019-12-16 01:03:55 +02:00
Robert Cochran
35388c5679 * lisp/tab-bar.el (tab-bar-close-other-tabs): Use tab close customs 2019-12-16 00:55:54 +02:00
Robert Cochran
c46a4931b1 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.
2019-12-16 00:55:47 +02:00
Phil Sainty
9b7f0de639 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.
2019-12-16 10:55:24 +13:00
Paul Eggert
9ee5af3150 Adjust intptr_t advice
* doc/lispref/internals.texi (C Integer Types): Say to prefer
uintptr_t when pointer arithmetic might overflow intptr_t.
2019-12-14 14:22:35 -08:00
Paul Eggert
bb42f6ef10 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.
2019-12-14 14:22:35 -08:00
Eli Zaretskii
a01a722282 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)
2019-12-14 20:02:11 +02:00
Stefan Monnier
0eff1a0191 * lisp/minibuffer.el (completion-pcm--find-all-completions): Simplify a bit 2019-12-14 12:40:29 -05:00
Michael Albinus
3f36cab333 * lisp/net/tramp.el (tramp-initial-file-name-regexp): Make it more precise. 2019-12-14 14:20:00 +01:00
Eli Zaretskii
7ebbec03ec Fix cross-references in ELisp manual
* doc/lispref/commands.texi (Misc Events, Special Events): Fix
cross-references.  (Bug#38520)
2019-12-14 13:56:29 +02:00
Eli Zaretskii
82a315b9e7 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)
2019-12-14 13:39:26 +02:00
Paul Eggert
c6e655c77b 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.
2019-12-13 17:07:16 -08:00
Juanma Barranquero
b2949d3926 xfaces.c: Silence spurious maybe-uninitialized compiler warning
* src/xfaces.c (face_inherited_attr): Initialize 'ok' to false.
2019-12-13 18:52:49 +01:00
João Távora
73f37da12d 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
2019-12-13 17:34:15 +01:00
Michael Albinus
84a8d07e7a * lisp/net/tramp.el (tramp-unload-tramp): Autoload function body. 2019-12-13 16:36:57 +01:00
Andrii Kolomoiets
51d3c95147 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.
2019-12-13 07:47:14 -05:00
Mattias Engdegård
82b4e48c59 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.
2019-12-13 13:30:14 +01:00
Philipp Stephani
b04086adf6 ; * src/emacs-module.h.in: Sort includes alphabetically. 2019-12-13 13:21:36 +01:00
Noam Postavsky
966abdba09 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.
2019-12-13 06:41:05 -05:00
Eli Zaretskii
dd3f2130cf 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)
2019-12-13 12:29:05 +02:00
Juri Linkov
9eaad4de02 * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Use 'user-error'. 2019-12-13 01:47:03 +02:00
Juri Linkov
b5781e63cb * lisp/wid-edit.el (widget-field): Add ':extend t' to defface (bug#37774) 2019-12-13 01:43:35 +02:00
Mattias Engdegård
f16766a0eb 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 `|'.
2019-12-12 23:47:25 +01:00
Eli Zaretskii
d7efe98951 ; * src/xdisp.c (face_at_pos): Fix last change. 2019-12-12 20:07:42 +02:00
Michael Albinus
ede63fed1f 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.
2019-12-12 15:21:34 +01:00
Juanma Barranquero
54d2fd1178 Avoid spurious warning about maybe-uninitialized variable
* src/xdisp.c (face_at_pos): Initialize base_face_id to 0
to silence the compiler.
2019-12-12 14:42:53 +01:00
Eli Zaretskii
6ee3675dad 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)
2019-12-12 13:16:46 +02:00
Robert Pluim
d57bb0c323 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).
2019-12-12 08:28:25 +01:00
Stefan Monnier
7a498af10a * 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.
2019-12-11 20:24:44 -05:00
Stefan Monnier
a642b4d35c * lisp/font-lock.el (font-lock-fontify-region): Widen here (bug#38049)
(font-lock-default-fontify-region): Instead of here.
2019-12-11 20:21:17 -05:00
Stefan Monnier
a8b628107b * lisp/calculator.el (cl-lib): Require at run-time as well.
Needed since we pass the `cl-flet` macro to `eval` in `calculator-funcall`.
2019-12-11 20:18:49 -05:00
Stefan Monnier
47a767c24e * 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`.
2019-12-11 20:17:17 -05:00
Stefan Monnier
394c91e4bf * lisp/net/eudc.el (eudc-query-with-words): New function
Extracted from eudc-expand-inline.
(eudc-expand-inline): Use it.
2019-12-11 17:20:02 -05:00
Eli Zaretskii
bad2532f66 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>.
2019-12-11 19:11:23 +02:00
Paul Eggert
73e51c9846 * src/xterm.c: Remove long-obsolete comments. 2019-12-11 08:53:33 -08:00
Robert Pluim
ea84a95bd8 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).
2019-12-11 16:28:24 +01:00
Michael Albinus
8aaa92a4b6 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.
2019-12-11 16:05:12 +01:00
Paul Eggert
eb7df2a4e3 Improve tv_nsec doc
* doc/lispref/internals.texi (Module Values):
Document tv_nsec more accurately.
2019-12-10 20:41:55 -08:00
Paul Eggert
b0f20651e3 ; Spelling fixes 2019-12-10 20:05:49 -08:00
Paul Eggert
0940296ebe 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.
2019-12-10 13:58:38 -08:00
Mattias Engdegård
ea93326cc0 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'.
2019-12-10 22:37:47 +01:00
Alan Third
9546a2a0d6 Fix XBM files on NS (bug#26133)
Reinstate some of the functionality removed in commit
67a878f78f.

* 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.
2019-12-10 20:38:21 +00:00
Alan Third
33a37360de Fix dabbrev-completion (bug#17899)
* lisp/dabbrev.el (dabbrev--check-all-buffers): Add new variable.
(dabbrev-completion): Lexical scoping means we can't use let to
override global variables, so use setq.
(dabbrev--reset-global-variables): Reset new variable.
(dabbrev--make-friend-buffer-list): Use new variable.
* test/lisp/dabbrev-tests.el (dabbrev-completion-test):
(dabbrev-completion-test-with-argument): New tests.
2019-12-10 20:38:21 +00:00
Alan Third
fbf9fea4fd Fix mouse-position on macOS (bug#4892)
* src/nsterm.m (ns_mouse_position): Implement a search for the frame
under the mouse pointer.
2019-12-10 20:38:21 +00:00
Federico Tedin
9042ece787 Simplify call to add-to-history in read_minibuf
* src/minibuf.c (read_minibuf): Avoid restoring the previous buffer,
as this is already done at the end of the function; call
`add-to-history' after that point.
2019-12-10 11:12:23 -05:00