1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-05 15:11:30 -08:00
Commit graph

143955 commits

Author SHA1 Message Date
Mattias Engdegård
558b6dbca7 Fix replace-regexp-in-string substring match data translation
For certain patterns, re-matching the same regexp on the matched
substring does not produce correctly translated match data
(bug#15107 and bug#44861).

Using a new builtin function also improves performance since the
number of calls to string-match is halved.

Reported by Kevin Ryde and Shigeru Fukaya.

* lisp/subr.el (replace-regexp-in-string): Translate the match data
using match-data--translate instead of trusting a call to string-match
on the matched string to do the job.
* test/lisp/subr-tests.el (subr-replace-regexp-in-string):
Add test cases.
* src/search.c (Fmatch_data__translate): New internal function.
(syms_of_search): Register it as a subroutine.
2020-11-26 14:20:13 +01:00
Lars Ingebrigtsen
0287c51768 Keep point in the *eldoc* buffer in eldoc-display-in-echo-area
* lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Use
'save-excursion' to keep point position in *eldoc* buffer.
Suggested by Andrii Kolomoiets <andreyk.mad@gmail.com>.
2020-11-26 11:24:20 +01:00
Lars Ingebrigtsen
d23723cfb2 Allow following symlinks when recompiling directories
* doc/lispref/compile.texi (Compilation Functions): Document it.
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Allow
following symlinks (bug#10292).
2020-11-26 11:00:35 +01:00
Stefan Kangas
9c72666fea ; * etc/NEWS: Add some missing documentation markers. 2020-11-26 07:02:36 +01:00
Stefan Kangas
82e4b826fb * lisp/files.el (auto-mode-alist): Add entry for "archive-contents". 2020-11-26 06:37:37 +01:00
Eric Abrahamsen
61f1eb99b0 Add "replied" -> "answered" for gnus-search imap searches
* lisp/gnus/gnus-search.el (gnus-search-imap-handle-flag): This allows
"mark:A" to be translated into "ANSWERED" and "-mark:A" to be
translated into "UNANSWERED".
2020-11-25 15:27:54 -08:00
Eric Abrahamsen
11bef9693a Assume default imap TEXT search even when not using parsed queries
This behavior both better matches the previous nnir behavior, reducing
confusion for new users, and matches behavior when using parsed
queries.

* lisp/gnus/gnus-search.el (gnus-search-imap-search-keys): Make sure
this variable contains all known IMAP search keys.
(gnus-search-run-search): If the search query doesn't start with a
known search key, prepend "TEXT " to the query.
2020-11-25 15:06:55 -08:00
Michael Albinus
67a8bdb90c Use null-device where appropriate
* lisp/filesets.el (filesets-select-command):
* lisp/shell.el (shell-mode):
* lisp/term.el (term-exec-1):
* lisp/wdired.el (wdired-do-symlink-changes):
* lisp/cedet/ede/pmake.el (ede-proj-makefile-create):
* lisp/eshell/esh-io.el (eshell-set-output-handle):
* lisp/gnus/gnus-fun.el (gnus-grab-cam-x-face):
* lisp/gnus/mml2015.el (mml2015-epg-key-image):
* lisp/gnus/smime.el (smime-noverify-region):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-screen.el (org-babel-prep-session:screen)
(org-babel-prep-session:screen):
* lisp/play/fortune.el (fortune-quiet-strfile-options):
* lisp/progmodes/cperl-mode.el (cperl-pod2man-build-command):
* lisp/progmodes/sh-script.el (sh-tmp-file):
* lisp/vc/diff-mode.el (diff-add-log-current-defuns)
(diff--font-lock-prettify):
* lisp/vc/ediff-mult.el (ediff-patch-file-form-meta):
* lisp/vc/ediff-ptch.el (ediff-map-patch-buffer)
(ediff-fixup-patch-map, ediff-dispatch-file-patching-job):
* lisp/vc/vc.el (vc-diff-internal): Use null-device or 	(null-device),
respectively.  (Bug#3736)
2020-11-25 22:13:33 +01:00
Juri Linkov
b5e34c34bc * lisp/minibuffer.el (completions-format): Add new value 'one-column'.
* lisp/minibuffer.el (completion--insert-strings): Support 'one-column'.

* lisp/simple.el (read-from-kill-ring): Truncate strings at frame-width.
2020-11-25 22:24:11 +02:00
Stefan Monnier
1eb168fa97 (defvar): Detect defining a variable currently lexically bound
* src/eval.c (lexbound_p): New function.
(Finternal__define_uninitialized_variable): Use it.
2020-11-25 14:49:55 -05:00
Mattias Engdegård
d148d0259a Add tests for replace-regexp-in-string
* test/lisp/subr-tests.el (subr-replace-regexp-in-string): New.
2020-11-25 13:57:16 +01:00
Mattias Engdegård
be53fe0263 * doc/lispref/searching.texi (Rx Constructs): Group numbering fix 2020-11-25 13:57:16 +01:00
Michael Albinus
20f9645898 * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process):
Use `tramp--test-windows-nt-p'.
2020-11-25 12:24:08 +01:00
Michael Albinus
e45ad6b08e Merge from origin/emacs-27
6442cdc0e4 Revert extra focus redirection in do_switch_frame (Bug#24803)
fc4379f1ae Minor cleanup of tramp-tests.el on MS Windows
dea3d6aa18 Fix handling of defcustom :local tag
2020-11-25 12:18:23 +01:00
Michael Albinus
fe5ffb7366 ; Merge from origin/emacs-27
The following commit was skipped:

b2ee665024 CC Mode.  Fix an off by one error.  Fixes bug #41809
2020-11-25 11:49:54 +01:00
Michael Albinus
ba004ac7dd Merge from origin/emacs-27
f425a774c2 Fix display artifacts when 'display' properties cover newl...
2020-11-25 11:49:54 +01:00
Martin Rudalics
6442cdc0e4 Revert extra focus redirection in do_switch_frame (Bug#24803)
* src/frame.c (do_switch_frame): Do not also redirect frame
focus when FRAME has its minibuffer window on the selected
frame which was intended to fix Bug#24500.  It may cause
Bug#24803 and lead to a nasty state where no active cursor is
shown on any frame, see
https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01137.html.
2020-11-25 09:58:21 +01:00
Juri Linkov
3b740591b0 Add 'completions-detailed' to add prefix/suffix with 'affixation-function'
* doc/lispref/minibuf.texi (Completion Variables)
(Programmed Completion): Add affixation-function.

* lisp/help-fns.el (help--symbol-completion-table-affixation): New function.
(help--symbol-completion-table): Set affixation-function when
completions-detailed is non-nil.

* lisp/minibuffer.el (completion-metadata): Add affixation-function
to docstring.
(completions-annotations): Inherit from shadow with italic.
(completions-detailed): New defcustom.
(completion--insert-strings): Count string-width on all strings in
completion list.  Insert prefix and suffix.
(completion-extra-properties): Add affixation-function to docstring.
(minibuffer-completion-help): Call affixation-function.
(minibuffer-default-prompt-format): Move down closer to its use.

https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00613.html
2020-11-25 10:46:59 +02:00
Michael Albinus
fc4379f1ae Minor cleanup of tramp-tests.el on MS Windows
* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process):
Do not test remote pty on MS Windows.
2020-11-25 09:41:11 +01:00
Lars Ingebrigtsen
d7a580c7eb Move code in face-remap.el to avoid a compilation warning
* lisp/face-remap.el (text-scale--refresh): Move code to avoid
compilation warning.

In text-scale--refresh:
face-remap.el:241:14: Warning: reference to free variable ‘text-scale-mode’
2020-11-25 06:29:10 +01:00
Stefan Kangas
30c437752d Make text-scale-mode optionally adjust the header line
* lisp/face-remap.el
(text-scale-remap-header-line-face): New buffer local variable.
(text-scale-mode): Adjust header line if above variable is non-nil.
(face-remap--clear-remappings, face-remap--remap-face): New defuns.
* lisp/face-remap.el: Arrange to watch text-scale-mode-remapping.
(text-scale--refresh): New function.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Use
text-scale-remap-header-line.  (Bug#41852)
2020-11-25 03:03:48 +01:00
Juri Linkov
83b5fcb001 Yank items selected from kill-ring using completion and minibuffer history
* doc/emacs/killing.texi (Earlier Kills): Document standalone M-y.

* doc/emacs/search.texi (Isearch Yank): Explain standalone M-y.

* doc/lispref/text.texi (Yank Commands): Soften the wording of
yank after another yank.

* lisp/delsel.el: Put 'yank' property on yank-pop and yank-from-kill-ring.

* lisp/isearch.el (isearch-yank-pop): Use with-isearch-suspended
and read-from-kill-ring to read a string from the kill-ring and
append it to the search string.

* lisp/simple.el (yank-pop): Call yank-from-kill-ring and
read-from-kill-ring when last-command is not 'yank' instead of
signaling an error.  Remove "*" from interactive spec.  Update docstring.
(read-from-kill-ring): New function.
(yank-from-kill-ring): New command.

https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00801.html
2020-11-24 21:23:41 +02:00
Stefan Kangas
2490ba0eb0 * build-aux/update-subdirs: Use lexical-binding in subdirs.el. 2020-11-24 20:09:04 +01:00
Philipp Stephani
5804ac0b49 Add a (broken) unit test to exemplify Bug#11218.
* test/lisp/emacs-lisp/ert-tests.el
(ert-test-with-demoted-errors): New (broken) unit test.
2020-11-24 18:39:58 +01:00
Stefan Kangas
f004b66bdb ; Reintroduce line mistakenly removed in my last commit 2020-11-24 18:10:29 +01:00
Stefan Kangas
6240c0dc1f Remove XEmacs compat code from idlw-help.el
* lisp/progmodes/idlw-help.el (idlwave-do-context-help)
(idlwave-help-show-help-frame): Remove XEmacs compat code.
2020-11-24 18:06:05 +01:00
Stefan Kangas
affe9b225d Make XEmacs compat aliases easy-menu-{add,remove} obsolete
* lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add):
Make XEmacs compat aliases obsolete.
* lisp/allout.el (allout-setup-menubar):
* lisp/cus-edit.el (Custom-mode):
* lisp/gnus/gnus-art.el (gnus-article-edit-mode):
* lisp/gnus/message.el (message-mode):
* lisp/net/sieve.el (sieve-manage-mode):
* lisp/org/org-agenda.el (org-agenda-mode):
* lisp/org/org-table.el (org-table-edit-formulas, orgtbl-mode):
* lisp/org/org.el:
* lisp/progmodes/cperl-mode.el (cperl-mode):
* lisp/progmodes/hideshow.el (hs-minor-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/meta-mode.el (meta-common-mode):
* lisp/progmodes/octave.el (octave-mode):
* lisp/progmodes/prolog.el (prolog-menu):
* lisp/progmodes/tcl.el (tcl-mode):
* lisp/speedbar.el (speedbar-reconfigure-keymaps):
* lisp/term.el (term-mode, term-char-mode, term-process-pager):
* lisp/textmodes/dns-mode.el (dns-mode):
* lisp/wid-browse.el (widget-browse-mode): Don't call above
obsolete aliases.
* lisp/cedet/semantic/grammar.el (semantic-grammar-setup-menu-xemacs):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-identity.el (mh-identity-add-menu):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-search.el (mh-search-mode):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/obsolete/otodo-mode.el (todo-mode):
* lisp/progmodes/antlr-mode.el (antlr-mode):
* lisp/progmodes/cc-mode.el (c-mode, c++-mode, objc-mode)
(java-mode, idl-mode, pike-mode):
* lisp/progmodes/sql.el (sql-mode, sql-interactive-mode):
* lisp/progmodes/vhdl-mode.el (vhdl-update-mode-menu)
(vhdl-add-source-files-menu, vhdl-mode):
* lisp/textmodes/reftex-index.el (reftex-index-mode)
(reftex-index-phrases-mode):
* lisp/textmodes/reftex-toc.el (reftex-toc-mode):
* lisp/textmodes/reftex.el (reftex-mode): Only call above obsolete
aliases in XEmacs.

* lisp/progmodes/prolog.el (prolog-inferior-menu):
* lisp/erc/erc-menu.el (erc-menu-add, erc-menu-remove): Don't call
above obsolete aliases.  Make obsolete.
* lisp/erc/erc-menu.el (menu, erc-menu-add, erc-menu-remove):
* lisp/progmodes/prolog.el (prolog-inferior-mode): Adjust callers.
* lisp/speedbar.el (speedbar-previous-menu): Make obsolete.
(Bug#44731)
2020-11-24 18:06:05 +01:00
Basil L. Contovounesios
dea3d6aa18 Fix handling of defcustom :local tag
For discussion, see the following emacs-devel thread:
https://lists.gnu.org/r/emacs-devel/2020-11/msg00734.html

* lisp/custom.el (custom-declare-variable): Delay call to
make-variable-buffer-local until after user option has been
initialized with a value.  Otherwise the user option may be
initialized to nil.
* test/lisp/custom-tests.el (custom--test-local-option)
(custom--test-permanent-option): New :local user options.
(custom-test-local-option): New test for defcustom :local keyword.
2020-11-24 16:50:37 +00:00
Alan Mackenzie
b2ee665024 CC Mode. Fix an off by one error. Fixes bug #41809
* lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Change > to >= (twice).
2020-11-24 16:34:07 +00:00
Basil L. Contovounesios
e86199bf90 ; Fix last change to gnus-sum.el
* lisp/gnus/gnus-sum.el (gnus-paging-select-next): Add :version tag.
2020-11-24 16:19:55 +00:00
Eli Zaretskii
f425a774c2 Fix display artifacts when 'display' properties cover newlines
* src/xdisp.c (pos_visible_p): Set glyph_row of scratch iterators
to NULL, to avoid producing glyphs while we figure out the layout.
(Bug#44826)
2020-11-24 17:04:37 +02:00
Mauro Aranda
c390141d39 Fix menu binding for files in fileset
* lisp/filesets.el (filesets-remake-shortcut): We want the callback of
the menu item, not a list that contains the callback.  (Bug#44764)
2020-11-24 08:48:55 -03:00
Mauro Aranda
cbd24607d7 Fix matching of inline choices for the choice widget
A choice widget should be able to match either no inline values or
inline values, upon request.  (Bug#44579)

* lisp/wid-edit.el (choice): New property, :inline-bubbles-p.  A
predicate that returns non-nil if the choice widget can act as an
inline widget.  Document it.
(widget-choice-inline-bubbles-p): New function, for the
:inline-bubbles-p property of the choice widget.
(widget-inline-p): New function.  Use the :inline-bubbles-p property
of the widget, if any.
(widget-match-inline): Use the above to see if the widget can act like
an inline widget.  Document it.
(widget-choice-value-create): Account for the case of a choice widget
that has inline members.
(widget-checklist-add-item, widget-editable-list-value-create)
(widget-group-value-create): Use widget-inline-p rather than just
checking for a non-nil :inline property, allowing these functions to
pass the complete information to widgets like the choice widget to
create their values.

* test/lisp/wid-edit-tests.el (widget-test-choice-match-no-inline)
(widget-test-choice-match-all-inline)
widget-test-choice-match-some-inline): New tests, to check that choice
widgets can match its choices, inline or not.
(widget-test-inline-p): New test, for the new function
widget-inline-p.
(widget-test-repeat-can-handle-choice)
(widget-test-repeat-can-handle-inlinable-choice)
(widget-test-list-can-handle-choice)
(widget-test-list-can-handle-inlinable-choice)
(widget-test-option-can-handle-choice)
(widget-test-option-can-handle-inlinable-choice): New tests.  This
grouping widgets need to be able to create a choice widget regardless
if it has inline choices or not.
2020-11-24 08:31:18 -03:00
Drew Adams
5cc570215a Fix finding filelist for :tree fileset (Bug#976)
* lisp/filesets.el (filesets-files-under): New function, used to get
all files for a :tree fileset.
(filesets-get-filelist): Use it.  Look for the directory and the
pattern in the right place inside entry.
2020-11-24 08:00:29 -03:00
Mattias Engdegård
89a24e4d05 Autoload the 'rx' pcase macroexpander (bug#44807)
* lisp/emacs-lisp/rx.el (rx--pcase-macroexpander]): Autoload.
2020-11-24 10:37:37 +01:00
Lars Ingebrigtsen
329feffc68 Allow controlling whether SPC in Gnus goes to the next article
* doc/misc/gnus.texi (Summary Maneuvering): Document it.
* lisp/gnus/gnus-sum.el (gnus-paging-select-next): New variable.
(gnus-summary-prev-page, gnus-summary-next-page): Use it.
2020-11-24 09:27:14 +01:00
Lars Ingebrigtsen
71916f0758 Make the `C' command work on marked files
* lisp/arc-mode.el (archive-copy-file): Make the `C' command work
on marked files (bug#44753).
2020-11-24 08:44:30 +01:00
Lars Ingebrigtsen
6dad1f25de Add a user option to control how links are followed in eww
* doc/misc/eww.texi (Advanced): Document it (bug#44783).

* lisp/net/eww.el (eww-use-browse-url): New variable.
(eww-follow-link): Use it.
2020-11-24 08:22:26 +01:00
Itai Seggev
868f51324a Codesign the executable on recene MacOS systems
* src/Makefile.in (temacs$(EXEEXT)): Codesign the executable on
recent (ARM) MacOS systems (bug#43878).  Without this, building
Emacs fails.

Copyright-paperwork-exempt: yes
2020-11-24 06:52:27 +01:00
Lars Ingebrigtsen
3802f9ce3d Delete the emacs-server directory upon Emacs exit
* lisp/server.el (server-start): Delete the server directory upon
Emacs exit (bug#44644).  This fixes the problem of /tmp/emacs0
directories being left behind when running an Emacs server as root.
2020-11-24 06:41:03 +01:00
Lars Ingebrigtsen
33e2515257 Tweak the face of unknown backend indicators in flymake
* lisp/progmodes/flymake.el (flymake--mode-line-format): Don't put
a face on the the "?" unknown backend indicator, because that
looks odd in inactive windows (bug#44689).
2020-11-24 06:22:52 +01:00
Paul W. Rankin
5a823a2a0c Handle outline overlays better when cycling in outline.el
* lisp/outline.el (outline--cycle-state): Only consider outline
overlays that are on outline headings; when subtree end is
point-max, return overlay-end +1 because final subtree overlay
only reaches point-max -1 (bug#41198).
(outline-cycle-buffer): Check that buffer has top-level headings
before calling outline-hide-sublevels 1 thus preventing
disconcerting buffer state of content reduced to single "..."
2020-11-24 06:08:59 +01:00
Michael Albinus
e2acb8fef4 Adapt files-x-tests.el according to recent Tramp changes
* test/lisp/files-x-tests.el (tramp-connection-local-default-profile):
Don't declare.
(tramp-connection-local-default-shell-variables)
(tramp-connection-local-default-system-variables): Declare.
(files-x-test-with-connection-local-variables): Use them.
2020-11-23 19:54:09 +01:00
Glenn Morris
a19b29d22c ; Merge from origin/emacs-27
The following commits were skipped:

2b1cec5592 (origin/emacs-27) Sync latest SKK-JISYO.L
070c1f8cd7 Update publicsuffix.txt from upstream
2020-11-23 09:41:53 -08:00
Glenn Morris
593c262124 Merge from origin/emacs-27
3ceee39819 Fix Bug#44481
2020-11-23 09:41:53 -08:00
Glenn Morris
3401251744 ; Merge from origin/emacs-27
The following commit was skipped:

a824888188 Minor Edebug manual keystroke clarifications
2020-11-23 09:41:53 -08:00
Glenn Morris
be17ee78c6 Merge from origin/emacs-27
86cbc9d216 Make ignoring modifiers on IME input optional
32b97bb9e0 Ignore modifiers when processing WM_IME_CHAR messages
f641ef1a07 Improve documentation of 'font-spec'

# Conflicts:
#	etc/NEWS
2020-11-23 09:41:53 -08:00
Glenn Morris
a8c513b6f5 ; Merge from origin/emacs-27
The following commit was skipped:

9d02e6c5ff Further doc fixes for dotimes about RESULT
2020-11-23 09:41:53 -08:00
Glenn Morris
a228b9dd56 Merge from origin/emacs-27
e66502fec1 ; * doc/misc/eshell.texi (Input/Output): Fix typo.
2020-11-23 09:41:53 -08:00
Glenn Morris
f583cae4cc ; Merge from origin/emacs-27
The following commit was skipped:

d5d3862c56 ; * INSTALL: Correct a recent change.
2020-11-23 09:41:53 -08:00