1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-28 00:01:33 -08:00
Commit graph

141751 commits

Author SHA1 Message Date
Michael Albinus
1b2fed81e1 Apply simpler fix for Tramp bug#39399
* lisp/net/tramp-sh.el (tramp-open-shell): Remove "~/.editrc" editing.
(tramp-open-connection-setup-interactive-shell): Move up "set +o
vi +o emacs" command.   (Bug#39399)
2020-07-28 09:21:01 +02:00
Lars Ingebrigtsen
b2bb1135d8 Fix thinko in previous nnmail.el patch
* lisp/gnus/nnmail.el (nnmail-check-duplication): Fix thinko in
previous patch -- group-art is a list of pairs, not a pair.
2020-07-28 00:51:29 +02:00
Lars Ingebrigtsen
3bd748ebba Fix problem with new-mail-mark in Gnus with non-unique names
* lisp/gnus/gnus-group.el (gnus-group-new-mail): Call with Gnus
group name.
(gnus-group-catchup): Ditto.

* lisp/gnus/gnus-sum.el (gnus-summary-exit): Ditto.

* lisp/gnus/nnimap.el (nnimap-update-info): Store Gnus group name.

* lisp/gnus/nnmail.el (nnmail-check-duplication): Store unique
Gnus names in the history instead of backend-specific (possibly
duplicated) group names (bug#41842).
2020-07-28 00:46:37 +02:00
Eric Abrahamsen
9903b39148 * doc/misc/gnus.texi: Add introductory section to Gnus manual
"Don't Panic: Your first 20 minutes with Gnus."
2020-07-27 15:37:40 -07:00
João Távora
9d751aa822 Make newer ElDoc versions are compatible with Emacs < 28
Fixes: bug#42563

For some time, Eldoc has has some Elisp-specific code that shouldn't
live there, but in elisp-mode.el.  This can be fixed in Emacs master,
but since ElDoc is distributed in GNU Elpa and is meant to work with
Emacs 26 and 27, this means that that elisp-specific code must still
be distributed with eldoc.el and kept up to date.

* lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Ensure
implementation is compatible with Emacs < 28.
(Version): Bump to 1.8
2020-07-27 22:18:57 +01:00
João Távora
688c03f412 Bring back ElDoc's eldoc-display-message-p, but obsolete it
Like others, this is an implementation detail that third parties could
be relying on.  Better not remove it outright just now, since its
implementation is very simple anyway.

* lisp/emacs-lisp/eldoc.el (Version): Bump to 1.7.0
(eldoc-display-message-p): Bring back, but obsolete.
2020-07-27 16:26:33 +01:00
Dmitry Gutov
4d195bb7d0 Fix argument reference
* lisp/progmodes/project.el
(project-display-buffer-other-frame): Fix argument reference.
2020-07-27 03:05:16 +03:00
Dmitry Gutov
33667e02e6 Move project--value-in-dir to a different section
* lisp/progmodes/project.el (project--value-in-dir):
Move closer to its uses.
2020-07-27 03:04:09 +03:00
Dmitry Gutov
7551aff22c Bind switch-to-buffer-obey-display-actions to t
* lisp/progmodes/project.el (project--other-place-command):
Bind switch-to-buffer-obey-display-actions to t, so that
project-other-window-command and friends can affect
project-switch-to-buffer.
2020-07-27 02:57:06 +03:00
Sean Whitton
b63c5a7efc Add project other place commands
* lisp/progmodes/project.el (project-other-window-map,
project-other-frame-map, project--other-place-command,
project-other-window-command, project-other-frame-command,
project-other-tab-command): Add these functions and maps.
* lisp/progmodes/project.el: Bind project-other-window-command to C-x
4 p, project-other-frame-command to C-x 5 p and
project-other-tab-command to C-x t p (bug#42210).
2020-07-27 02:56:50 +03:00
Sean Whitton
e3614fcc62 Add project-display-buffer and project-display-buffer-other-frame
* lisp/progmodes/project.el (project-display-buffer,
project-display-buffer-other-frame): Add commands.
2020-07-27 02:52:10 +03:00
Sean Whitton
7479c11b4e Factor out project--read-project-buffer from project-switch-buffer
* lisp/progmodes/project.el (project--read-project-buffer): New
function extracted from project-switch-buffer.
* lisp/progmodes/project.el (project-switch-buffer): Instead of
unconditionally reading a project buffer from the user, add
buffer-or-name argument, and populate it using
project--read-project-buffer when called interactively.  Update
docstring.
2020-07-27 02:52:10 +03:00
Philipp Stephani
7d9096b6ac Small refactoring to simplify the interface of internal function.
* src/emacs-module.c (allocate_emacs_value): Remove STORAGE parameter.
(lisp_to_value): Adapt caller.
2020-07-26 20:34:30 +02:00
João Távora
dae97708ea Correct order or eldoc-documentation-functions in Elisp mode
Fixes: bug#42531

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Reverse order of
eldoc-documentation-functions.
2020-07-26 10:54:24 +01:00
Philipp Stephani
9f01ce6327 Make checking for liveness of global values more precise.
We can't just use a hash lookup because a global and a local reference
might refer to the same Lisp object.

* src/emacs-module.c (module_free_global_ref): More precise check for
global liveness.

* test/data/emacs-module/mod-test.c (Fmod_test_globref_invalid_free):
New test module function.
(emacs_module_init): Export it.

* test/src/emacs-module-tests.el
(module--test-assertions--globref-invalid-free): New unit test.
2020-07-25 23:23:19 +02:00
Philipp Stephani
6355a3ec62 Fix subtle bug when checking liveness of module values.
We can't simply look up the Lisp object in the global reference table
because an invalid local and a valid global reference might refer to
the same object.  Instead, we have to test the address of the global
reference against the stored references.

* src/emacs-module.c (module_global_reference_p): New helper function.
(value_to_lisp): Use it.

* test/data/emacs-module/mod-test.c
(Fmod_test_invalid_store_copy): New test module function.
(emacs_module_init): Export it.

* test/src/emacs-module-tests.el
(module--test-assertions--load-non-live-object-with-global-copy):
New unit test.
2020-07-25 23:04:05 +02:00
Mattias Engdegård
609cbd63c3 Optimise 3-arg +, - and *
Turn (+ a b c) into (+ (+ a b) c), and do the same for - and *.
The 2-arg operations have their own bytecode which results in a 1.5×
speed-up.  Furthermore, the transform enables other optimisations; for
example, (+ a 1 b) -> (+ (1+ a) b).

* lisp/emacs-lisp/byte-opt.el (byte-optimize-plus, byte-optimize-minus)
(byte-optimize-multiply): Transform (OP a b c) into (OP (OP a b) c).
2020-07-25 19:24:56 +02:00
Eli Zaretskii
3b44829823 Update and improve documentation of project.el commands
* doc/emacs/custom.texi (Prefix Keymaps): Document
'project-prefix-map'.
* doc/emacs/maintaining.texi (Project File Commands)
(Switching Projects): Describe key bindings for the commands
described in the sections.  Document 'project-list-file'.
(Project Buffer Commands): New section.
* doc/emacs/emacs.texi (Top): Add Project sections to the detailed
menu.

* etc/NEWS: Add entries for project.el, and mark documented entries as
appropriate.
2020-07-25 12:28:05 +03:00
Eli Zaretskii
eaad6eac00 Fix display of man pages after killing the 'man' process
* lisp/man.el (Man-bgproc-filter, Man-bgproc-sentinel): Use
'buffer-live-p' instead of just testing the buffer's name.
(Bug#42160)
2020-07-25 10:15:07 +03:00
Dmitry Gutov
19064761ad project-remember-project: New public function
* lisp/progmodes/project.el (project-remember-project):
Rename from project--add-to-project-list-front (bug#42332).
And autoload it.
2020-07-25 03:17:47 +03:00
Juri Linkov
bca8686f55 * lisp/vc/vc-git.el (vc-git-log-view-mode): Fix commit regexp (bug#40248)
The regexp 'log-view-message-re' should match e.g. "commit 123456789",
not "CommitDate".
2020-07-24 02:29:12 +03:00
Tassilo Horn
f7ebba5724 Don't call undefined function elisp-eldoc-documentation-function (bug#42493)
* lisp/ielm.el (inferior-emacs-lisp-mode): Add
`elisp-eldoc-var-docstring' and `elisp-eldoc-funcall' as
`eldoc-documentation-functions' instead of the undefined
elisp-eldoc-documentation-function (bug#42493).
2020-07-23 22:05:26 +02:00
Tassilo Horn
0d7d422b76 bug-reference auto-setup for IRC, implementation for ERC
* lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist):
Change SERVER-REGEXP to NETWORK-REGEXP in docstring.
* lisp/progmodes/bug-reference.el (bug-reference--maybe-setup-from-irc):
Change semantics from requiring a match of channel OR server to
requiring a match of both (if both are configured).
* lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-erc):
New defun doing the auto-setup for ERC.
(bug-reference--run-auto-setup): Run bug-reference-try-setup-from-erc.
* etc/NEWS: Extend entry describing bug-reference auto-setup.
2020-07-23 19:03:25 +02:00
Lars Ingebrigtsen
84ec57fe06 Fix viewing of encrypted S/MIME messages
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Don't
add a content-type header if there already is one (bug#41659).
2020-07-23 17:12:40 +02:00
Philipp Stephani
5c5eb97908 Fix memory leak for global module objects (Bug#42482).
Instead of storing the global values in a global 'emacs_value_storage'
object, store them as hash values alongside the reference counts.
That way the garbage collector takes care of cleaning them up.

* src/emacs-module.c (global_storage): Remove.
(struct module_global_reference): New pseudovector type.
(XMODULE_GLOBAL_REFERENCE): New helper function.
(module_make_global_ref, module_free_global_ref): Use
'module_global_reference' struct for global reference values.
(value_to_lisp, module_handle_nonlocal_exit): Adapt to deletion of
'global_storage'.
2020-07-23 14:03:27 +02:00
João Távora
fcd43287b3 Don't needlessly request docs from ElDoc functions
Fixes: bug#42421

Do this conservatively for now: if the ElDoc helper buffer (as
returned by eldoc--doc-buffer) is visible and showing documentation
for the very same "situation" (as computed by the the new
eldoc--request-state helper), don't request that documentation from
sources again.

Before this change, not only was that request inefficient but if the
user invoked scroll-other-window to see more of the helper buffer,
that would eventually cause it to be reformatted and unexpectedly
recentered.

Later on, when a customizable list of documentation "sinks" is offered
to the user, say, something like eldoc-display-functions, this process
must be consolidated.  In those circumstances, as soon as one of those
sinks signals that it doesn't have up-to-date documentation for the
state computed by eldoc--request-state, documentation will have to be
requested anew from eldoc-documentation-functions via
eldoc--invoke-strategy.

* lisp/emacs-lisp/eldoc.el (eldoc--request-docs-p): Rework from
eglot-display-message-p.
(eldoc--last-request-state): New variable.
(eldoc--request-state): New helper.
(eldoc--handle-docs): Memorize state of request in doc buffer.
(eldoc-print-current-symbol-info): Pass a token to
eldoc--request-docs-p.
(Version): Bump to 1.6.0
2020-07-23 11:57:27 +01:00
Glenn Morris
1bae7ba53b ; Merge from origin/emacs-27
The following commits were skipped:

8bc8565721 (origin/emacs-27) Revert "Rectify allout-widgets region un...
db479d6354 Revert "Resolve missing button-region keymap bindings."
259dc75c23 Revert "Provide missing let definition to prevent backgrou...
56422a6366 Revert "Don't let item decoration be disrupted by too-shal...
8e4eae0ce3 Revert "Fix allout-widgets-mode handling of edits to item ...
2020-07-22 07:50:47 -07:00
Glenn Morris
496ee0911a Merge from origin/emacs-27
4db3235fd8 Run custom-magic-reset in the customize buffer
3c9c3f04de ; spelling fix
2020-07-22 07:50:47 -07:00
Glenn Morris
0a71a7380f ; Merge from origin/emacs-27
The following commits were skipped:

bc10e467f1 Backport: Rectify allout-widgets region undecoration so it...
82742e295d Backport: Resolve missing button-region keymap bindings.
2035ecca57 Backport: Provide missing let definition to prevent backgr...
3071cecda0 Backport: Don't let item decoration be disrupted by too-sh...
044960ead2 Backport: Fix allout-widgets-mode handling of edits to ite...
2020-07-22 07:50:47 -07:00
Mattias Engdegård
687a9d3e2f Calc: fix interval entry snag (bug#42438)
* lisp/calc/calc.el (calcDigit-key): Don't signal a 'Bad format' error
when entering '..' after pushing an incomplete interval.

Reported by Allen Li.
2020-07-22 11:27:15 +02:00
Ken Manheimer
8bc8565721 Revert "Rectify allout-widgets region undecoration so item at start is not missed."
This reverts commit 33d85cb768.

Backporting it to emacs-27 was not appropriate.
2020-07-21 10:57:29 -04:00
Ken Manheimer
db479d6354 Revert "Resolve missing button-region keymap bindings."
This reverts commit dd7c191291.

Backporting it to emacs-27 was not appropriate.
2020-07-21 10:56:55 -04:00
Ken Manheimer
259dc75c23 Revert "Provide missing let definition to prevent background void-variable error."
This reverts commit 3c410b6b47.

Backporting it to emacs-27 was not appropriate.
2020-07-21 10:55:35 -04:00
Ken Manheimer
56422a6366 Revert "Don't let item decoration be disrupted by too-shallow items."
This reverts commit 8684216542.

Backporting it to emacs-27 was not appropriate.
2020-07-21 10:55:08 -04:00
Ken Manheimer
8e4eae0ce3 Revert "Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312)"
This reverts commit 8e13d33248.

Backporting it to emacs-27 was not appropriate.
2020-07-21 10:52:50 -04:00
Robert Pluim
4db3235fd8 Run custom-magic-reset in the customize buffer
If the user has navigated away from the customize buffer, then
clicking on a widget in the customize buffer applies changes in the
selected buffer rather than in the customize buffer.  Pass the
customize buffer to 'custom-magic-reset' to avoid this.

* lisp/cus-edit.el (custom-magic-reset): Add optional buffer argument,
apply changes in that buffer.
(custom-notify): Pass the buffer containing the widget to
'custom-magic-reset'.  (Bug#40788)
2020-07-21 16:37:59 +02:00
Robert Pluim
3c9c3f04de ; spelling fix 2020-07-21 09:59:54 +02:00
Ken Manheimer
bc10e467f1 Backport: Rectify allout-widgets region undecoration so item at start is not missed.
* lisp/allout-widgets.el (allout-widgets-undecorate-region):
Reorganize the loop so an item at the start is not skipped.

(cherry picked from commit 33d85cb768)
2020-07-20 14:31:27 -04:00
Ken Manheimer
82742e295d Backport: Resolve missing button-region keymap bindings.
* lisp/allout-widgets.el (allout-item-icon-keymap,
allout-item-body-keymap, allout-cue-span-keymap, allout-widgets-mode):
Inherit from both (current-local-map) and (current-global-map). This
provides for missing global bindings when inheriting from
just (current-local-map), eg Esc-<.

(cherry picked from commit dd7c191291)
2020-07-20 14:30:40 -04:00
Ken Manheimer
2035ecca57 Backport: Provide missing let definition to prevent background void-variable error.
* lisp/allout-widgets.el (allout-widgets-exposure-change-processor)
Let-declare handled-conceal, for reference through `(symbol-value)'
within the let body. (Because the error happens in an
after-change-functions hook, so it is caught and reported as a message
by allout-widgets-hook-error-handler.)

(cherry picked from commit 3c410b6b47)
2020-07-20 14:29:36 -04:00
Ken Manheimer
3071cecda0 Backport: Don't let item decoration be disrupted by too-shallow items.
* lisp/allout-widgets.el (allout-decorate-item-and-context): Check for
parent-position having value before using it.

Also, shift local emacs vars topic deeper so it doesn't constitute
an instance of that particular aberrant case.

(cherry picked from commit 8684216542)
2020-07-20 14:29:00 -04:00
Ken Manheimer
044960ead2 Backport: Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312)
* lisp/allout-widgets.el (allout-decorate-item-cue): Properly decorate
item cue span.
(allout-setup-text-properties): use allout-graphics-modification-handler
as allout-cue-span-category modification hook.

(cherry picked from commit 8e13d33248)
2020-07-20 14:27:17 -04:00
Ken Manheimer
33d85cb768 Rectify allout-widgets region undecoration so item at start is not missed.
* lisp/allout-widgets.el (allout-widgets-undecorate-region):
Reorganize the loop so an item at the start is not skipped.
2020-07-20 14:07:50 -04:00
Ken Manheimer
dd7c191291 Resolve missing button-region keymap bindings.
* lisp/allout-widgets.el (allout-item-icon-keymap,
allout-item-body-keymap, allout-cue-span-keymap, allout-widgets-mode):
Inherit from both (current-local-map) and (current-global-map). This
provides for missing global bindings when inheriting from
just (current-local-map), eg Esc-<.
2020-07-20 14:06:41 -04:00
Ken Manheimer
3c410b6b47 Provide missing let definition to prevent background void-variable error.
* lisp/allout-widgets.el (allout-widgets-exposure-change-processor)
Let-declare handled-conceal, for reference through `(symbol-value)'
within the let body. (Because the error happens in an
after-change-functions hook, so it is caught and reported as a message
by allout-widgets-hook-error-handler.)
2020-07-20 14:05:46 -04:00
Ken Manheimer
8684216542 Don't let item decoration be disrupted by too-shallow items.
* lisp/allout-widgets.el (allout-decorate-item-and-context): Check for
parent-position having value before using it.

Also, shift local emacs vars topic deeper so it doesn't constitute
an instance of that particular aberrant case.
2020-07-20 14:04:43 -04:00
Ken Manheimer
8e13d33248 Fix allout-widgets-mode handling of edits to item cue, fixing (bug#11312)
* lisp/allout-widgets.el (allout-decorate-item-cue): Properly decorate
item cue span.
(allout-setup-text-properties): use allout-graphics-modification-handler
as allout-cue-span-category modification hook.
2020-07-20 13:39:20 -04:00
Glenn Morris
fe2d0ede28 Merge from origin/emacs-27
cd93debc60 (origin/emacs-27) Merge branch 'emacs-27' of git.savannah....
2c0c613ec5 Document prefix arg effects for 'epa-mail-{sign,encrypt}'
551123e0b2 * etc/NEWS: Correct description of :client-certificate change
05c4329cf5 Revert "Fix filename completion in shell mode buffers"
de68572742 Improve documentation of 'bookmark-bmenu-mode'
fd85e70be7 Update systems using GnuTLS certificate files
0d4ba1c2b2 Improve documentation of 'kill-emacs'
b3bbd4fd00 Improve documentation of 'display-raw-bytes-as-hex'
f50d79af6b Correct descriptions of init file
e325d2638c Fix interrupt-process on MS-Windows
d24e56a5e4 Revert "* doc/misc/flymake.texi (An annotated example back...

# Conflicts:
#	etc/NEWS
2020-07-20 07:50:44 -07:00
Eli Zaretskii
cd93debc60 Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/emacs into emacs-27 2020-07-20 17:31:50 +03:00
Michael Albinus
0cbafc236b Fix problem with Tramp progress reporter
* lisp/net/tramp.el (with-tramp-progress-reporter): Do not span a
new progress reporter if there's already another one.
2020-07-20 16:29:38 +02:00