1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-14 19:01:45 -07:00
Commit graph

149293 commits

Author SHA1 Message Date
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
73a2f51043 Add another test for global module references
* test/src/emacs-module-tests.el (mod-test-globref-reordered): New
unit test.

* test/data/emacs-module/mod-test.c (Fmod_test_globref_reordered): New
test module function.
(emacs_module_init): Export it.
2020-07-26 22:54:33 +02: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
Philipp Stephani
3838aeb739 Backport: add another test case for module assertions.
This backports commit 9f01ce6327 from master.  Since the bug isn’t
present on emacs-27, just backport the new test case.

* 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-26 14:33:59 +02:00
Philipp Stephani
bde5f5f897 Backport: Add module test for edge case.
This backports commit 6355a3ec62 from master.  Since the bug isn’t
present in emacs-27, just backport the test case.

* 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-26 14:31:49 +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
Andrea Corallo
7a161dc688 Merge remote-tracking branch 'savahnna/master' into HEAD 2020-07-26 09:40:02 +02:00
Andrea Corallo
79ed903805 * Add NATIVE_COMP to `system-configuration-features'
* configure.ac (emacs_config_features): Add NATIVE_COMP
2020-07-26 09:38:14 +02:00
Andrea Corallo
6c108e44c9 * Add `comp-ensure-native-compiler' guarding entry points
* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): New function.
	(native-compile, batch-native-compile)
	(batch-byte-native-compile-for-bootstrap, native-compile-async):
	Make use of `comp-ensure-native-compiler'.
2020-07-26 09:36:09 +02: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
4b3085a7fe Fix last change
* src/composite.c (composition_reseat_it): Fix of the commentary,
and a minor change of the last fix.
2020-07-25 19:25:02 +03:00
Pip Cet
efdd4632c9 Fix Arabic shaping when column-number-mode is in effect
* src/indent.c (scan_for_column, compute_motion): Pass -1,
instead of NEUTRAL_DIR, to 'composition_reseat_it'.
* src/composite.c (composition_reseat_it): Interpret negative
value of BIDI_LEVEL to mean the caller doesn't know what is the
bidi direction of the text.  (Bug#41005)
2020-07-25 19:19:27 +03: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
Eli Zaretskii
d5acc50941 Fix description of kmacro-* commands in the user manual
* doc/emacs/kmacro.texi (Basic Keyboard Macro): Separate old-style
macro definition commands from the new style in the summary
table.  (Bug#42492)
2020-07-24 17:47:59 +03:00
Lars Ingebrigtsen
96a3b473fa 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-24 16:37:28 +02: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