]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoUse lexical-binding in progmodes/icon.el
Stefan Kangas [Sat, 27 Feb 2021 02:23:39 +0000 (03:23 +0100)]
Use lexical-binding in progmodes/icon.el

* lisp/progmodes/icon.el: Use lexical-binding.
(electric-icon-brace): Very minor cleanup.

3 years agoConvert change-log-mode menu to easy-menu-define
Stefan Kangas [Sat, 27 Feb 2021 02:14:04 +0000 (03:14 +0100)]
Convert change-log-mode menu to easy-menu-define

* lisp/vc/add-log.el (change-log-mode-map): Move menu from here...
(change-log-mode-menu): ...to here; convert to easy-menu-define.

3 years ago* lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
Stefan Monnier [Sat, 27 Feb 2021 01:24:52 +0000 (20:24 -0500)]
* lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings

Instead of warning about unused vars during the analysis phase of
closure conversion, do it in the actual closure conversion by
annotating the code with "unused" warnings, so that the warnings
get emitted later by the bytecomp phase, like all other warnings,
at which point the line-number info is a bit less imprecise.

Take advantage of this change to wrap the expressions of unused
let-bound vars inside (ignore ...) so the byte-compiler can better
optimize them away.

Finally, promote `macroexp--warn-and-return` to "official" status
by removing its "--" marker.

(cconv-captured+mutated, cconv-lambda-candidates): Remove vars.
(cconv-var-classification): New var to replace them.
(cconv-warnings-only): Delete function.
(cconv--warn-unused-msg, cconv--var-classification): New functions.
(cconv--convert-funcbody): Add warnings for unused args.
(cconv-convert): Add warnings for unused vars in `let` and `condition-case`.
(cconv--analyze-use): Don't emit an "unused var" warning any more,
but instead remember the fact in `cconv-var-classification`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-force-lexical-warnings):
Remove variable.
(byte-compile-preprocess): Remove corresponding case.

* lisp/emacs-lisp/pcase.el (pcase--if): Don't throw away `test` effects.
(\`):
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Use `car-safe` instead
of `car`, so it can more easily be removed by the optimizer if the
result is not used.

* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): New function.
(macroexp-warn-and-return): Rename from `macroexp--warn-and-return`.

3 years agolisp/vc/*.el: Use lexical-bindings in all the files
Stefan Monnier [Fri, 26 Feb 2021 21:51:15 +0000 (16:51 -0500)]
lisp/vc/*.el: Use lexical-bindings in all the files

Also remove some redundant `:group` arguments.

* lisp/vc/vc.el (vc-ignore): Autoload.

* lisp/vc/pcvs-util.el (cvs-every, cvs-union, cvs-map): Delete functions.
* lisp/vc/cvs-status.el: Require `cl-lib` at runtime.
(cvs-tree-tags-insert): Use `cl-mapcar` and `cl-every` instead.
* lisp/vc/pcvs.el: Require `cl-lib` at runtime.
(cvs-do-removal): Use `cl-every` instead.

* lisp/vc/ediff-init.el: Require `ediff-util` (for `ediff-cleanup-mess`
and `ediff-default-suspend-function`).

* lisp/vc/pcvs-info.el (cvs-fileinfo<): Remove unused vars `subtypea`
and `subtypeb`.

* lisp/vc/vc-git.el:
* lisp/vc/vc-bzr.el: Require `vc-dispatcher` at runtime for
`vc-do-async-command`.

3 years ago* lisp/cedet/semantic/idle.el: Fix compilation warning
Stefan Monnier [Fri, 26 Feb 2021 20:34:30 +0000 (15:34 -0500)]
* lisp/cedet/semantic/idle.el: Fix compilation warning

(eldoc-last-message): Remove var declaration.
(eldoc-message): Remove function declaration.
(semantic--eldoc-info): Rename from semantic-idle-summary-idle-function.
Make it usable on `eldoc-documentation-functions`.
(semantic-idle-summary-mode): Use `eldoc-mode`.
(semantic-idle-summary-refresh-echo-area): Delete function.

3 years ago* lisp/cedet/semantic/analyze*.el: Use lexical-binding
Stefan Monnier [Fri, 26 Feb 2021 20:19:31 +0000 (15:19 -0500)]
* lisp/cedet/semantic/analyze*.el: Use lexical-binding

* lisp/cedet/semantic/analyze.el: Use lexical-binding.
Rename the dynbound var `prefixtypes` to `semantic--prefixtypes`.
(semantic--prefixtypes): Declare var.

* lisp/cedet/semantic/analyze/complete.el: Use lexical-binding.
(semantic--prefixtypes): Declare var.
(semantic-analyze-possible-completions-default): Remove unused var `any`.
Rename `prefixtypes` to `semantic--prefixtypes`.

* lisp/cedet/semantic/analyze/debug.el: Use lexical-binding.
(semantic-analyzer-debug-global-symbol): Remove no-op use of `prefixtypes`.

* lisp/cedet/semantic/analyze/refs.el:
* lisp/cedet/semantic/analyze/fcn.el: Use lexical-binding.

3 years agoFix Tramp manual
Michael Albinus [Fri, 26 Feb 2021 17:37:14 +0000 (18:37 +0100)]
Fix Tramp manual

* doc/misc/tramp.texi (External methods): Mention "about-args".
(Remote shell setup): Use sshx.

3 years ago; * test/lisp/progmodes/f90-tests.el: Remove stale comment.
Stefan Kangas [Fri, 26 Feb 2021 16:09:57 +0000 (17:09 +0100)]
; * test/lisp/progmodes/f90-tests.el: Remove stale comment.

3 years ago* lisp/progmodes/dcl-mode.el: Minor doc fixes.
Stefan Kangas [Fri, 26 Feb 2021 16:05:18 +0000 (17:05 +0100)]
* lisp/progmodes/dcl-mode.el: Minor doc fixes.

3 years agoConvert some more progmode menus to easy-menu-define
Stefan Kangas [Fri, 26 Feb 2021 15:23:45 +0000 (16:23 +0100)]
Convert some more progmode menus to easy-menu-define

* lisp/progmodes/dcl-mode.el (dcl-mode-map):
* lisp/progmodes/icon.el (icon-mode-map):
* lisp/progmodes/scheme.el (scheme-mode-map):
Move menu definitions from here...
* lisp/progmodes/dcl-mode.el (dcl-mode-menu):
* lisp/progmodes/icon.el (icon-mode-menu)
* lisp/progmodes/scheme.el (scheme-mode-menu):
...to here, and use easy-menu-define.

* lisp/progmodes/icon.el
(icon-mode-map, icon-mode-syntax-table): Simplify.

3 years agoConvert simula-mode menu to easy-menu-define
Stefan Kangas [Fri, 26 Feb 2021 15:09:14 +0000 (16:09 +0100)]
Convert simula-mode menu to easy-menu-define

* lisp/progmodes/simula.el (simula-mode-map): Move menu definition
from here...
(simula-mode-menu): ...to here, and use easy-menu-define.
(simula-popup-menu): Declare unused function obsolete.

3 years agoFix syntax highlighting of easy-menu-define docstrings
Stefan Kangas [Fri, 26 Feb 2021 14:59:56 +0000 (15:59 +0100)]
Fix syntax highlighting of easy-menu-define docstrings

* lisp/emacs-lisp/easymenu.el (easy-menu-define): Add doc-string
declaration for correct syntax highlighting.

3 years agoRemove redundant requires of easymenu
Stefan Kangas [Fri, 26 Feb 2021 14:50:41 +0000 (15:50 +0100)]
Remove redundant requires of easymenu

* lisp/allout.el:
* lisp/emacs-lisp/edebug.el:
* lisp/emacs-lisp/ert.el:
* lisp/erc/erc-menu.el:
* lisp/help-mode.el:
* lisp/net/dictionary.el:
* lisp/nxml/rng-nxml.el:
* lisp/progmodes/ebrowse.el:
* lisp/progmodes/meta-mode.el:
* lisp/progmodes/prolog.el:
* lisp/progmodes/ps-mode.el:
* lisp/progmodes/vera-mode.el:
* lisp/wid-browse.el: Remove redundant require of easymenu.  We only
use the autoloaded macro 'easy-menu-define' here.

3 years agoRemove check for missing easymenu from cperl-mode.el
Stefan Kangas [Fri, 26 Feb 2021 04:43:53 +0000 (05:43 +0100)]
Remove check for missing easymenu from cperl-mode.el

* lisp/progmodes/cperl-mode.el (cperl-menu): Don't wrap definition
in condition-case; easymenu always exists in Emacs.
(easymenu): Remove redundant require.

3 years agoFunction-quote completion property of declare form
Basil L. Contovounesios [Sat, 20 Feb 2021 18:55:12 +0000 (18:55 +0000)]
Function-quote completion property of declare form

For discussion, see the following thread:
https://lists.gnu.org/r/emacs-devel/2021-02/msg01666.html

* lisp/emacs-lisp/byte-run.el (byte-run--set-completion): Quote with
'function' for syntactical consistency with other declare form
properties.  This allows writing (declare (completion foo)) instead
of (declare (completion 'foo)).
* lisp/emacs-lisp/easymenu.el (easy-menu-do-define):
* lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Prefer
function-put over put for function symbols.
* lisp/subr.el (ignore, undefined): Remove #'-quoting from declare
form; it is no longer needed.

3 years agoFix pcase rx pattern bugs
Mattias Engdegård [Fri, 26 Feb 2021 08:52:16 +0000 (09:52 +0100)]
Fix pcase rx pattern bugs

Two unrelated bugs: A missing type check caused an error in rx
patterns for non-string match targets, and rx patterns did not work at
all in pcase-let or pcase-let*.

Second bug reported by Basil Contovounesios and Ag Ibragimov; fixes
proposed by Stefan Monnier.  Discussion and explanation in thread at
https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg01924.html

* lisp/emacs-lisp/rx.el (rx): Add (pred stringp) to avoid type errors,
and replace the `pred` clause for the actual match with something that
works with pcase-let(*) without being optimised away.
* test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add test cases.

3 years agoFix documentation of a recent change
Eli Zaretskii [Thu, 25 Feb 2021 18:58:44 +0000 (20:58 +0200)]
Fix documentation of a recent change

* src/fns.c (Fyes_or_no_p): Don't use braces around one-line
block.
(syms_of_fns) <use-short-answers>: Improve the wording of the doc
string.
* etc/NEWS: Improve wording of the entry about 'use-short-answers'.

3 years agoNew variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p'
Juri Linkov [Thu, 25 Feb 2021 18:45:40 +0000 (20:45 +0200)]
New variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p'

* lisp/cus-start.el: Add use-short-answers.

* lisp/emacs-lisp/map-ynp.el (read-answer): Handle use-short-answers.
(read-answer-short): Add use-short-answers to docstring.

* src/fns.c (Fyes_or_no_p): Call y-or-n-p if use_short_answers is true.
(syms_of_fns): Add DEFVAR_BOOL use-short-answers (bug#46594).

3 years agoFix freeze on older macOS's (bug#46687)
Alan Third [Wed, 24 Feb 2021 09:52:42 +0000 (09:52 +0000)]
Fix freeze on older macOS's (bug#46687)

* src/nsterm.m ([EmacsView windowDidChangeBackingProperties:]):
([EmacsView viewWillDraw]): Only run this code when actually drawing
to an offscreen bitmap.

3 years agoRe-enable network-stream-tests.el :nowait t tests
Robert Pluim [Thu, 25 Feb 2021 15:39:34 +0000 (16:39 +0100)]
Re-enable network-stream-tests.el :nowait t tests

After the fix for Bug#46709, these no longer fail in the absence of a
working Internet connection

* test/lisp/net/network-stream-tests.el (internet-is-working): Remove
defvar, it's no longer needed in this file.

* test/lisp/net/network-stream-tests.el
(connect-to-tls-ipv4-nowait):
(connect-to-tls-ipv6-nowait):
(open-network-stream-tls-nowait):
(open-gnutls-stream-new-api-nowait):
(open-gnutls-stream-old-api-nowait): Remove check for internet-is-working.

3 years agoDon't crash if gnutls_handshake fails
Robert Pluim [Thu, 25 Feb 2021 15:36:56 +0000 (16:36 +0100)]
Don't crash if gnutls_handshake fails

In some situations involving Internet access not being fully
functional, gnutls_handshake returns a fatal error, which we were
ignoring, causing us to call gnutls_handshake again.  Now we check for
the error and return it to the caller.

* src/gnutls.c (gnutls_try_handshake): Return immediately if
gnutls_handshake returns a fatal error (Bug#46709).

3 years ago* Specify 'ipv4 when testing ipv4 in network-stream-tests.el
Robert Pluim [Thu, 25 Feb 2021 15:33:47 +0000 (16:33 +0100)]
* Specify 'ipv4 when testing ipv4 in network-stream-tests.el

* test/lisp/net/network-stream-tests.el
(connect-to-tls-ipv4-nowait): Specify :family 'ipv4.

3 years ago; * src/xfaces.c (realize_gui_face): Correct formatting
Robert Pluim [Tue, 23 Feb 2021 14:21:26 +0000 (15:21 +0100)]
; * src/xfaces.c (realize_gui_face): Correct formatting

* src/xfaces.c (realize_gui_face): Correct code formatting.

3 years agoConvert epa-key-list-mode menu to easy-menu-define
Stefan Kangas [Thu, 25 Feb 2021 11:54:58 +0000 (12:54 +0100)]
Convert epa-key-list-mode menu to easy-menu-define

* lisp/epa.el (epa-key-list-mode-map): Move menu from here...
(epa-key-list-mode-menu): ...to here, and convert to easy-menu-define.

3 years agoRemove last remaining external uses of `edebug-form-spec`
Stefan Monnier [Thu, 25 Feb 2021 04:08:47 +0000 (23:08 -0500)]
Remove last remaining external uses of `edebug-form-spec`

* lisp/emacs-lisp/gv.el (gv-place): Use `def-edebug-elem-spec`.

* lisp/obsolete/erc-compat.el (erc-define-minor-mode): Remove redundant
`edebug-form-spec`.

3 years ago* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case
Stefan Monnier [Wed, 24 Feb 2021 23:39:06 +0000 (18:39 -0500)]
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case

Add use of `macroexp-file-name` from a macro called from within
a function, which works thanks to eager-macroexpansion (so the macro
is expanded which the file is being loaded rather than only later
when the function is called).

* test/lisp/emacs-lisp/macroexp-resources/m1.el
(macroexp--m1-tests-file-name): New function.

3 years ago* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): New test
Stefan Monnier [Wed, 24 Feb 2021 23:12:18 +0000 (18:12 -0500)]
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): New test

* test/lisp/emacs-lisp/macroexp-resources/m1.el:
* test/lisp/emacs-lisp/macroexp-resources/m2.el: New files.

3 years agoInclude a "make check-maybe" in the admin/emake script
Lars Ingebrigtsen [Wed, 24 Feb 2021 22:55:05 +0000 (23:55 +0100)]
Include a "make check-maybe" in the admin/emake script

3 years ago; Fix recent obsoletion warning in cl.el.
Basil L. Contovounesios [Wed, 24 Feb 2021 22:34:06 +0000 (22:34 +0000)]
; Fix recent obsoletion warning in cl.el.

3 years ago; Add :version tags to recent newsticker options.
Basil L. Contovounesios [Wed, 24 Feb 2021 22:20:10 +0000 (22:20 +0000)]
; Add :version tags to recent newsticker options.

3 years ago* lisp/emacs-lisp/macroexp.el (macroexp-file-name): Work in `eval-buffer`
Stefan Monnier [Wed, 24 Feb 2021 22:16:00 +0000 (17:16 -0500)]
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): Work in `eval-buffer`

Rely on `current-load-list` instead of `load-file-name`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Change the var we override accordingly.

3 years agoImprove quail-update-leim-list-file error messaging
Lars Ingebrigtsen [Wed, 24 Feb 2021 19:32:09 +0000 (20:32 +0100)]
Improve quail-update-leim-list-file error messaging

* lisp/international/quail.el (quail-update-leim-list-file): Give
a better error message.

3 years agoFix warning generated by indian.el + quail.el
Lars Ingebrigtsen [Wed, 24 Feb 2021 19:31:31 +0000 (20:31 +0100)]
Fix warning generated by indian.el + quail.el

* lisp/leim/quail/indian.el (quail-define-indian-trans-package):
Reintroduce kludge to fix automatic detection by Quail.

3 years ago* lisp/tab-bar.el: Move aliases down closer to keybindings.
Juri Linkov [Wed, 24 Feb 2021 18:52:27 +0000 (20:52 +0200)]
* lisp/tab-bar.el: Move aliases down closer to keybindings.

3 years ago* lisp/tab-bar.el (tab-switch): New defalias to 'tab-bar-switch-to-tab'.
Juri Linkov [Wed, 24 Feb 2021 18:51:04 +0000 (20:51 +0200)]
* lisp/tab-bar.el (tab-switch): New defalias to 'tab-bar-switch-to-tab'.

(tab-prefix-map): Bind "O" to 'tab-previous'.

3 years ago* lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.
Stefan Monnier [Wed, 24 Feb 2021 18:52:45 +0000 (13:52 -0500)]
* lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function.

Yes, finally: a function that tells you the name of the file where
the code is located.  Finding this name is non-trivial in practice,
as evidenced by the "4 shift/reduce conflicts" warning when compiling
CEDET's python.el, because its `wisent-source` got it wrong in that
case, thinking the grammar came from `python.el` instead of
`python-wy.el`.

While at it, also made `macroexp-compiling-p` public, since it's
useful at various places.

(macroexp-compiling-p): Rename from `macroexp--compiling-p`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables):
Bind `load-file-name` to nil so we can distinguish a load that calls
the byte compiler from a byte compilation which causes a load.

* lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts):
Remove; it was just a workaround.
* lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars.
* lisp/cedet/semantic/fw.el (semantic-alias-obsolete):
Use `macroexp-compiling-p` and `macroexp-file-name`.
* lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name`
(wisent-total-conflicts): Tighten regexp.
* lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function
and variable.  Use `macroexp-compiling-p` instead.
* lisp/progmodes/flymake.el (flymake-log):
* lisp/emacs-lisp/package.el (package-get-version):
* lisp/emacs-lisp/ert-x.el (ert-resource-directory):
Use `macroexp-file-name`.

3 years agoAdd options to use feed names from newticker-url-list
Ulf Jasper [Wed, 24 Feb 2021 18:26:37 +0000 (19:26 +0100)]
Add options to use feed names from newticker-url-list

* lisp/net/newst-treeview.el
  (newsticker-treeview-use-feed-name-from-url-list-in-treeview): New.
  (newsticker-treeview-use-feed-name-from-url-list-in-itemview): New.
  (newsticker--treeview-item-show): Show feed name from
  newsticker-url-list if wanted.
  (newsticker--treeview-propertize-tag): Add argument 'tooltip'.
  (newsticker--treeview-tree-get-tag): Usefeed name from
  newsticker-url-list if wanted.  (Fixes third issue in
  Bug#41376.)

3 years agoFix wisent/python.el grammar warning
Lars Ingebrigtsen [Wed, 24 Feb 2021 17:29:25 +0000 (18:29 +0100)]
Fix wisent/python.el grammar warning

* lisp/cedet/semantic/wisent/python.el: Fix warning about
shift/reduce conflicts in the Python grammar.

3 years agoFix warning generated by indian.el + quail.el
Lars Ingebrigtsen [Wed, 24 Feb 2021 17:13:03 +0000 (18:13 +0100)]
Fix warning generated by indian.el + quail.el

* lisp/leim/quail/indian.el (quail-define-indian-trans-package):
Reintroduce kludge to fix automatic detection by Quail.

3 years agoRemove the "Documentation:" line from the variable help
Lars Ingebrigtsen [Wed, 24 Feb 2021 16:58:38 +0000 (17:58 +0100)]
Remove the "Documentation:" line from the variable help

* lisp/help-fns.el (describe-variable): Remove the
"Documentation:" line (bug#46702).  This makes the help text more
compact and seems easier to read, too.

3 years agoFix Calc menu item for vector dot products
Lars Ingebrigtsen [Wed, 24 Feb 2021 16:53:53 +0000 (17:53 +0100)]
Fix Calc menu item for vector dot products

* lisp/calc/calc-menu.el (calc-vectors-menu): Use the correct
function `calc-times' instead of the non-existent `calc-mult'
function (bug#46710).

3 years agoInteractive tag byte compilation functions in emacs-lisp-mode
Doug Davis [Wed, 24 Feb 2021 16:43:49 +0000 (17:43 +0100)]
Interactive tag byte compilation functions in emacs-lisp-mode

* lisp/progmodes/elisp-mode.el (emacs-lisp-byte-compile)
(emacs-lisp-byte-compile-and-load): Add interactive tagging
(bug#46721).

3 years agoRun all functions in `prefix-command-echo-keystrokes-functions'
Miha Rihtaršič [Wed, 24 Feb 2021 16:38:56 +0000 (17:38 +0100)]
Run all functions in `prefix-command-echo-keystrokes-functions'

* lisp/simple.el (internal-echo-keystrokes-prefix): Really run all
functions in `prefix-command-echo-keystrokes-functions' (bug#46727).

Copyright-paperwork-exempt: yes

3 years agoUse named faces in shortdoc
Protesilaos Stavrou [Wed, 24 Feb 2021 16:18:26 +0000 (17:18 +0100)]
Use named faces in shortdoc

* shortdoc.el (shortdoc-heading): Define new face for headings.
(shortdoc-display-group): Apply new heading face.
(shortdoc--display-function): Use existing face for section text.
* etc/NEWS: Document new face (bug#46748).

3 years agoUse sh-mode for PKGBUILD files
Utkarsh Singh [Tue, 23 Feb 2021 15:41:14 +0000 (16:41 +0100)]
Use sh-mode for PKGBUILD files

* lisp/files.el (auto-mode-alist): Use sh-mode for PKGBUILD files
(bug#46660).

Copyright-paperwork-exempt: yes

3 years agoFix dangerous code in xdisp.c
Eli Zaretskii [Wed, 24 Feb 2021 15:55:28 +0000 (17:55 +0200)]
Fix dangerous code in xdisp.c

* src/xdisp.c (move_it_to, display_line): Make sure ZV_BYTE is
greater than 1 before fetching previous byte.

3 years agoBetter support for 'truncate-line' non-nil in the mini-window
Eli Zaretskii [Wed, 24 Feb 2021 15:43:08 +0000 (17:43 +0200)]
Better support for 'truncate-line' non-nil in the mini-window

* src/xdisp.c (resize_mini_window): Resize the mini-window
when multi-line text is displayed under truncate-lines
non-nil in the minibuffer.  (Bug#46718)

3 years agoSpecify the Emacs version of new vc-dir faces
Protesilaos Stavrou [Wed, 24 Feb 2021 09:18:38 +0000 (11:18 +0200)]
Specify the Emacs version of new vc-dir faces

* vc-dir.el (vc-dir-header)
(vc-dir-header-value)
(vc-dir-directory)
(vc-dir-file)
(vc-dir-mark-indicator)
(vc-dir-status-warning)
(vc-dir-status-edited)
(vc-dir-status-up-to-date)
(vc-dir-status-ignored): Add version 28.1.  (Bug#46745)

3 years agoSmall fixes
Juri Linkov [Tue, 23 Feb 2021 19:05:30 +0000 (21:05 +0200)]
Small fixes

* lisp/emacs-lisp/seq.el (seq-contains): Move the ‘declare’ form
after the docstring.
* lisp/misc.el (copy-from-above-command): Fix whitespace regexp.

3 years ago* lisp/tab-line.el (tab-line-tab-name-format-function): New defcustom.
Juri Linkov [Tue, 23 Feb 2021 19:01:31 +0000 (21:01 +0200)]
* lisp/tab-line.el (tab-line-tab-name-format-function): New defcustom.

(tab-line-tab-name-format-default): New function as the default value.
(tab-line-format-template): Funcall tab-line-tab-name-format-function.
This is like recently added tab-bar-tab-name-format-function.

3 years ago* lisp/tab-bar.el (tab-prefix-map): Bind "n" to 'tab-duplicate'.
Juri Linkov [Tue, 23 Feb 2021 18:57:31 +0000 (20:57 +0200)]
* lisp/tab-bar.el (tab-prefix-map): Bind "n" to 'tab-duplicate'.

(tab-bar-separator): New function.
(tab-bar-make-keymap-1): Use it.

3 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Ulf Jasper [Tue, 23 Feb 2021 18:43:56 +0000 (19:43 +0100)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs

3 years agoLeave other windows unchanged, use search instead of re-search
Ulf Jasper [Tue, 23 Feb 2021 18:31:32 +0000 (19:31 +0100)]
Leave other windows unchanged, use search instead of re-search

* lisp/net/newst-backend.el (newsticker-customize-feed): Leave other
  windws unchanged.  Use search instead of re-search.

3 years agoFix invalid interactive-statement
Ulf Jasper [Tue, 23 Feb 2021 18:23:50 +0000 (19:23 +0100)]
Fix invalid interactive-statement

* lisp/net/newst-backend.el (newsticker-customize): Fix invalid
  interactive-statement.

3 years ago* test/: Use lexical-binding the few remaining files
Stefan Monnier [Tue, 23 Feb 2021 17:14:59 +0000 (12:14 -0500)]
* test/: Use lexical-binding the few remaining files

* test/manual/biditest.el: Use lexical-binding.
(biditest-generate-testfile): Remove unused var `levels`.

* test/manual/image-circular-tests.el: Use lexical-binding.

* test/manual/image-size-tests.el: Use lexical-binding.
(image-size-tests): Check `fboundp` before calling `imagemagick-types`.

* test/manual/redisplay-testsuite.el: Use lexical-binding.

* test/manual/cedet/cedet-utests.el: Use lexical-binding.
Use `with-current-buffer`.
(cedet-utest): Test `fboundp` i.s.o `featurep` to silence warning.
(srecode-map-save-file): Declare var.
(pulse-test): Test `fboundp` before calling `pulse-available-p`.
Declare `pulse-momentary-highlight-overlay` since it's not autoloaded.

* test/manual/cedet/semantic-tests.el: Use lexical-binding.
Use `with-current-buffer`.
(semanticdb-ebrowse-dump): Remove unused var `ab`.
(semanticdb-test-gnu-global): Don't use obsolete "name" arg to constructor.
(cedet-utest-directory): Declare var.

3 years agoAdd command for customizing current newsticker feed
Ulf Jasper [Tue, 23 Feb 2021 16:33:46 +0000 (17:33 +0100)]
Add command for customizing current newsticker feed

* lisp/net/newst-backend.el (newsticker-customize-feed): New.
  (newsticker--insert-bytes): Add documentation string.
  (newsticker--decode-iso8601-date): Fix documentation string.
* lisp/net/newst-treeview.el (newsticker-treeview-customize-current-feed):
  New.
  (newsticker-treeview-mode-map): Add key for new command
  'newsticker-treeview-customize-current-feed'. (Fixes second issue in
  Bug#41376.)

3 years ago; Fix tramp.texi typos
Michael Albinus [Tue, 23 Feb 2021 15:04:22 +0000 (16:04 +0100)]
; Fix tramp.texi typos

3 years ago* doc/misc/tramp.texi: Grammar/style fixes
Robert Pluim [Tue, 23 Feb 2021 13:21:26 +0000 (14:21 +0100)]
* doc/misc/tramp.texi: Grammar/style fixes

* doc/misc/tramp.texi (Overview):
(Obtaining @value{tramp}):
(Quick Start Guide):
(Configuration):
(Connection types):
(Inline methods):
(External methods):
(Password handling):
(Predefined connection information):
(Remote shell setup):
(Remote processes):
(Frequently Asked Questions):
(External packages):
(Traces and Profiles): Grammar/style fixes.

3 years ago* lisp/net/dictionary-connection.el: Grammar fixes
Robert Pluim [Tue, 23 Feb 2021 13:07:32 +0000 (14:07 +0100)]
* lisp/net/dictionary-connection.el: Grammar fixes

* lisp/net/dictionary-connection.el: Grammar fix
(dictionary-connection-open): Use active voice.
(dictionary-connection-status): Reword and improve formatting.

3 years agoMake message-mailto work for emacsclient
Robert Pluim [Tue, 23 Feb 2021 12:47:49 +0000 (13:47 +0100)]
Make message-mailto work for emacsclient

* doc/misc/message.texi (System Mailer Setup): Add index entry.
Mention option to use emacsclient.

* etc/NEWS: Mention emacsclient option for 'mailto:' handling.

* etc/emacs-mail.desktop: Add example using emacsclient.

* lisp/gnus/message.el (message-mailto): Add optional url argument
so we can call it from emacsclient.

3 years agoCC Mode: Fix bug in "state cache" invalidation function.
Alan Mackenzie [Tue, 23 Feb 2021 11:16:24 +0000 (11:16 +0000)]
CC Mode: Fix bug in "state cache" invalidation function.

* lisp/progmodes/cc-engine.el (c-invalidate-state-cache-1): Rewrite part of
it, following the code in c-parse-state-1, to get a proper setting of
c-state-cache-good-pos.

3 years agoConvert some more menus to easy-menu-define
Stefan Kangas [Tue, 23 Feb 2021 02:51:12 +0000 (03:51 +0100)]
Convert some more menus to easy-menu-define

* lisp/tar-mode.el (tar-mode-map):
* lisp/textmodes/sgml-mode.el (sgml-mode-map, html-mode-map):
* lisp/wdired.el (wdired-mode-map): Move menus from here...

* lisp/tar-mode.el (tar-mode-immediate-menu, tar-mode-mark-menu)
* lisp/textmodes/sgml-mode.el (sgml-mode-menu, html-mode-menu):
* lisp/wdired.el (wdired-mode-menu): ...to here, and convert to
easy-menu-define.

3 years agoImprove easymenu.el Commentary section
Stefan Kangas [Tue, 23 Feb 2021 02:24:31 +0000 (03:24 +0100)]
Improve easymenu.el Commentary section

* lisp/emacs-lisp/easymenu.el: Improve Commentary section.

3 years ago* lisp/progmodes/antlr-mode.el: Fix bootstrap failure
Stefan Monnier [Mon, 22 Feb 2021 22:38:58 +0000 (17:38 -0500)]
* lisp/progmodes/antlr-mode.el: Fix bootstrap failure

(antlr-mode): Remove compatibility code with older CC-mode.
This somehow appears to fix the error:

    In antlr-mode:
    progmodes/antlr-mode.el:2426:20: Error: `c-init-language-vars' defined
        after use in (c-init-language-vars) (missing `require' of a library
        file?)
    progmodes/antlr-mode.el:2427:26: Warning: c-init-language-vars called
        with 0 arguments, but requires 1

No idea what caused the error to appear after the previous patch either.

3 years agoDo mode tagging in decipher.el
Lars Ingebrigtsen [Mon, 22 Feb 2021 22:30:04 +0000 (23:30 +0100)]
Do mode tagging in decipher.el

3 years agoDo mode tagging in bubbles.el
Lars Ingebrigtsen [Mon, 22 Feb 2021 22:27:53 +0000 (23:27 +0100)]
Do mode tagging in bubbles.el

3 years ago* lisp/obsolete: Use lexical-binding
Stefan Monnier [Mon, 22 Feb 2021 21:54:59 +0000 (16:54 -0500)]
* lisp/obsolete: Use lexical-binding

Use lexical-binding in all the lisp/obsolete/*.el files.
While at it, removed redundant :group arguments and used #' to quote
functions.  Commented out the key bindings which the #' revealed
to lead to non-existing commands, and replaced those revealed to be obsolete.

* lisp/obsolete/cl-compat.el: Use cl-lib.

* lisp/obsolete/cust-print.el: Assume `defalias` exists.
(with-custom-print): Use `declare`.

* lisp/obsolete/iswitchb.el (iswitchb-init-XEmacs-trick)
(iswitchb-xemacs-backspacekey): Remove functions.

* lisp/obsolete/landmark.el (landmark, landmark-nslify-wts):
Prefer `apply` to `eval`.

* lisp/obsolete/longlines.el (longlines-mode): Don't use `add-to-list`
on a hook.

* lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region): Use `clear-string`.

* lisp/obsolete/pgg-pgp.el (pgg-pgp-encrypt-region): Remove oddly
unused var `passphrase`.
(pgg-pgp-verify-region): Declare var `jam-zcat-filename-list`.

* lisp/obsolete/pgg-pgp5.el (pgg-pgp5-encrypt-region): Remove oddly
unused var `passphrase`.
(pgg-pgp5-verify-region): Declare var `jam-zcat-filename-list`.

* lisp/obsolete/pgg.el: Remove some XEmacs compatibility code.
(pgg-run-at-time, pgg-cancel-timer, pgg-clear-string): Remove functions.
Use their core equivalent instead.

* lisp/obsolete/rcompile.el (remote-compile): Remove unused vars `l`,
`l-host`, `l-user`, and `localname`.

* lisp/obsolete/starttls.el (starttls-any-program-available):
Use `define-obsolete-function-alias`.

* lisp/obsolete/tls.el (tls-format-message): Delete function, use
`format-message` instead.

* lisp/obsolete/url-ns.el (url-ns-prefs): Use `with-current-buffer`
and `dlet`.

* lisp/obsolete/vip.el (vip-escape-to-emacs): Remove unused var `key`.
(vip-command-argument, vip-read-string, ex-delete, ex-line): Remove
unused var `conditions`.
(ex-map): Use a closure instead of `eval`.
(ex-set): Make it an alias of `set-variable`.
(ex-substitute): Remove unused var `cont`.

* lisp/obsolete/abbrevlist.el:
* lisp/obsolete/bruce.el:
* lisp/obsolete/cc-compat.el:
* lisp/obsolete/cl-compat.el:
* lisp/obsolete/cl.el:
* lisp/obsolete/complete.el:
* lisp/obsolete/crisp.el:
* lisp/obsolete/cust-print.el:
* lisp/obsolete/erc-compat.el:
* lisp/obsolete/erc-hecomplete.el:
* lisp/obsolete/eudcb-ph.el:
* lisp/obsolete/fast-lock.el:
* lisp/obsolete/gs.el:
* lisp/obsolete/gulp.el:
* lisp/obsolete/html2text.el:
* lisp/obsolete/info-edit.el:
* lisp/obsolete/iswitchb.el:
* lisp/obsolete/landmark.el:
* lisp/obsolete/lazy-lock.el:
* lisp/obsolete/longlines.el:
* lisp/obsolete/mailpost.el:
* lisp/obsolete/mantemp.el:
* lisp/obsolete/meese.el:
* lisp/obsolete/messcompat.el:
* lisp/obsolete/metamail.el:
* lisp/obsolete/mouse-sel.el:
* lisp/obsolete/nnir.el:
* lisp/obsolete/old-emacs-lock.el:
* lisp/obsolete/otodo-mode.el:
* lisp/obsolete/patcomp.el:
* lisp/obsolete/pc-mode.el:
* lisp/obsolete/pc-select.el:
* lisp/obsolete/pgg-def.el:
* lisp/obsolete/pgg-gpg.el:
* lisp/obsolete/pgg-parse.el:
* lisp/obsolete/pgg-pgp.el:
* lisp/obsolete/pgg-pgp5.el:
* lisp/obsolete/pgg.el:
* lisp/obsolete/rcompile.el:
* lisp/obsolete/s-region.el:
* lisp/obsolete/sb-image.el:
* lisp/obsolete/sregex.el:
* lisp/obsolete/starttls.el:
* lisp/obsolete/sup-mouse.el:
* lisp/obsolete/terminal.el:
* lisp/obsolete/tls.el:
* lisp/obsolete/tpu-edt.el:
* lisp/obsolete/tpu-extras.el:
* lisp/obsolete/tpu-mapper.el:
* lisp/obsolete/url-ns.el:
* lisp/obsolete/vc-arch.el:
* lisp/obsolete/vi.el:
* lisp/obsolete/vip.el:
* lisp/obsolete/ws-mode.el:
* lisp/obsolete/yow.el: Use lexical-binding.

3 years agoMention the problems with newlines in Dired
Lars Ingebrigtsen [Mon, 22 Feb 2021 21:39:27 +0000 (22:39 +0100)]
Mention the problems with newlines in Dired

* doc/emacs/dired.texi (Dired Enter): Mention newlines and what to
do about them.

* lisp/dired.el (dired-listing-switches): Mention newlines
(bug#46705).

3 years agoButtonize function values in help (and add a blank line)
Lars Ingebrigtsen [Mon, 22 Feb 2021 21:34:03 +0000 (22:34 +0100)]
Buttonize function values in help (and add a blank line)

* lisp/help-fns.el (describe-variable): Add a newline for better
readability (bug#46702).  This also has the side effect of
buttonizing `function-references-like-this' in the "Its value is"
part.

* lisp/help-mode.el (help-make-xrefs): Adjust comments.

3 years ago; Fix last change in test-custom-libs.el.
Basil L. Contovounesios [Mon, 22 Feb 2021 20:31:06 +0000 (20:31 +0000)]
; Fix last change in test-custom-libs.el.

3 years ago* lisp/progmodes/antlr-mode.el: Remove XEmacs compatibility
Stefan Monnier [Mon, 22 Feb 2021 17:22:19 +0000 (12:22 -0500)]
* lisp/progmodes/antlr-mode.el: Remove XEmacs compatibility

(cond-emacs-xemacs, cond-emacs-xemacs-macfn, defunx, ignore-errors-x):
Remove those functions and macros.  Replace every use with the result
of their use.
(antlr-default-directory): Remove function, use the `default-directory`
variable instead.
(antlr-read-shell-command): Remove function, use
`read-shell-command` instead.
(antlr-with-displaying-help-buffer): Remove function, by inlining it at
its only call site.
(antlr-end-of-rule, antlr-beginning-of-rule, antlr-end-of-body)
(antlr-beginning-of-body): Mark them as movement commands.

3 years ago* lisp/tab-bar.el: 'C-x t N' bound to tab-new-to supports a negative argument
Juri Linkov [Mon, 22 Feb 2021 17:12:43 +0000 (19:12 +0200)]
* lisp/tab-bar.el: 'C-x t N' bound to tab-new-to supports a negative argument

* lisp/tab-bar.el (tab-bar-new-tab-to): Negative TO-INDEX counts
tabs from the end of the tab bar.
(tab-bar-new-tab): Fix docstring to add reference to
'tab-bar-new-tab-to'.
(tab-prefix-map): Bind "N" to tab-new-to.

3 years ago* lisp/tab-bar.el: 'C-x t M' bound to tab-move-to supports a negative argument
Juri Linkov [Mon, 22 Feb 2021 17:08:16 +0000 (19:08 +0200)]
* lisp/tab-bar.el: 'C-x t M' bound to tab-move-to supports a negative argument

* lisp/tab-bar.el (tab-bar-move-tab-to): Negative TO-INDEX counts
tabs from the end of the tab bar.
(tab-bar-move-tab): Fix docstring to add reference to tab-bar-move-tab-to.
(tab-prefix-map): Bind "M" to tab-move-to.

3 years ago'Mod-9' bound to 'tab-last' now switches to the last tab like in web browsers
Juri Linkov [Mon, 22 Feb 2021 17:03:42 +0000 (19:03 +0200)]
'Mod-9' bound to 'tab-last' now switches to the last tab like in web browsers

* lisp/tab-bar.el (tab-bar--define-keys): Rebind 0 from
tab-bar-switch-to-recent-tab to its alias tab-recent.
Bind 9 to tab-last.
(tab-bar-switch-to-last-tab): New command.
(tab-last): New alias to tab-bar-switch-to-last-tab.
(tab-bar-switch-to-tab, tab-bar-undo-close-tab): Fix docstrings to
avoid mentioning the term "last" for "most recently used" meaning.

3 years ago* lisp/tab-bar.el (tab-bar--undefine-keys): New function from tab-bar-mode.
Juri Linkov [Mon, 22 Feb 2021 16:56:47 +0000 (18:56 +0200)]
* lisp/tab-bar.el (tab-bar--undefine-keys): New function from tab-bar-mode.

3 years agoPrefer `declare` over a `put` of `list-indent-function`.
Stefan Monnier [Mon, 22 Feb 2021 16:54:17 +0000 (11:54 -0500)]
Prefer `declare` over a `put` of `list-indent-function`.

While at it, I enabled lexical-binding in the affected files.

* lisp/cedet/semantic/sb.el: Enable lexical-binding.
(semantic-sb-with-tag-buffer): Use `declare`.

* lisp/cedet/semantic/bovine/el.el: Enable lexical-binding.
(semantic-elisp-setup-form-parser): Use `declare`.

* lisp/emacs-lisp/ert.el:
* lisp/emacs-lisp/ert-x.el: Remove redundant `put`.

* lisp/emulation/cua-rect.el: Enable lexical-binding.
(cua--rectangle-operation, cua--rectangle-aux-replace): Use `declare`.

* lisp/mh-e/mh-acros.el: Enable lexical-binding.
(mh-do-in-gnu-emacs, mh-do-in-xemacs, mh-funcall-if-exists, defun-mh)
(defmacro-mh, with-mh-folder-updating, mh-in-show-buffer)
(mh-do-at-event-location, mh-iterate-on-messages-in-region)
(mh-iterate-on-range): Use `declare`.

* lisp/mh-e/mh-compat.el: Enable lexical-binding.
(mh-flet): Use `declare`.

* lisp/mh-e/mh-e.el: Enable lexical-binding.
(defgroup-mh, defcustom-mh, defface-mh): Use `declare`.

* lisp/net/sieve.el: Enable lexical-binding.  Remove redundant :group args.
(sieve-activate, sieve-remove, sieve-edit-script): Remove unused arg
from the interactive spec.
(sieve-deactivate-all): Remove unused var `name`.
(sieve-change-region): Use `declare`.

* lisp/obsolete/fast-lock.el: Enable lexical-binding.
Remove redundant :group args.  Remove XEmacs compat code.
(save-buffer-state): Remove macro.
(fast-lock-add-properties): Use `with-silent-modifications` instead.

* lisp/obsolete/lazy-lock.el: Enable lexical-binding.
Remove redundant :group args.
(do-while): Use `declare`.
(save-buffer-state): Remove macro.
(lazy-lock-fontify-rest-after-change, lazy-lock-defer-line-after-change)
(lazy-lock-defer-rest-after-change, lazy-lock-after-fontify-buffer)
(lazy-lock-after-unfontify-buffer, lazy-lock-fontify-region):
Use `with-silent-modifications` instead.

* lisp/obsolete/pgg.el: Enable lexical-binding.  Remove XEmacs compat code.
(pgg-save-coding-system, pgg-as-lbt, pgg-process-when-success):
Use `declare`.
(pgg-add-passphrase-to-cache): Remove unused var `new-timer`.
(pgg-decrypt-region): Remove unused var `buf`.

* lisp/org/org-agenda.el (org-let, org-let2): Move from org-macs and
use `declare`.

* lisp/org/org-macs.el (org-let, org-let2): Move these functions that
are inherently harmful to your karma to the only package that uses them.
(org-scroll): Use `pcase` to avoid `eval` and use more readable syntax
for those integers standing for events.

* lisp/progmodes/antlr-mode.el: Enable lexical-binding.
(save-buffer-state-x): Use `declare` and `with-silent-modifications`.

* lisp/international/mule-util.el (with-coding-priority):
* lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once):
* lisp/org/org-element.el (org-element-map):
* test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load):
* test/lisp/emacs-lisp/generator-tests.el (cps-testcase): Use `declare`.

3 years agoFix ANSI coloring problem in large outputs in eshell
Lars Ingebrigtsen [Mon, 22 Feb 2021 15:47:38 +0000 (16:47 +0100)]
Fix ANSI coloring problem in large outputs in eshell

* lisp/ansi-color.el (ansi-color-apply-on-region): Ensure that we
fontize from where we left off, and don't skip to the end of the
region (bug#46332).

3 years agocl-extra: Fix docstring retrieval
Julian Scheid [Mon, 22 Feb 2021 15:06:03 +0000 (16:06 +0100)]
cl-extra: Fix docstring retrieval

* lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Fix
docstring retrieval (bug#46662).

3 years agoSkip tests that require Internet when there's no Internet
Robert Pluim [Mon, 22 Feb 2021 14:05:48 +0000 (15:05 +0100)]
Skip tests that require Internet when there's no Internet

Bug#46641

The network-stream-tests actually work fine when the local machine has
no IP at all, but cause a crash in the GnuTLS library when there is an
IP configured but the interface is down.

* test/lisp/net/network-stream-tests.el (internet-is-working): New
defvar, checks if we can resolve "google.com".
(connect-to-tls-ipv4-nowait, connect-to-tls-ipv6-nowait)
(open-network-stream-tls-nowait, open-gnutls-stream-new-api-nowait)
(open-gnutls-stream-old-api-nowait): Use it to check for working
Internet access.

* test/src/process-tests.el (internet-is-working): New defvar, checks
if we can resolve "google.com".
(lookup-family-specification, lookup-unicode-domains)
(unibyte-domain-name, lookup-google, non-existent-lookup-failure): Use
it to check for working Internet access.

3 years agoFix hang when running dns-query with no working internet
Robert Pluim [Mon, 22 Feb 2021 13:47:41 +0000 (14:47 +0100)]
Fix hang when running dns-query with no working internet

* lisp/net/dns.el (dns-set-servers): reduce the timeout and retry
count when using 'nslookup' for "localhost".
(dns-query): Check to see if we actually managed to initiate a dns
request before starting a busy-wait for the result.

3 years agoSimplify comint-watch-for-password-prompt
Lars Ingebrigtsen [Mon, 22 Feb 2021 14:47:30 +0000 (15:47 +0100)]
Simplify comint-watch-for-password-prompt

* lisp/comint.el (comint-watch-for-password-prompt): Simplify by
using `string-trim'.

3 years agoFix prompt for the `M-S-x' command
Lars Ingebrigtsen [Mon, 22 Feb 2021 14:32:34 +0000 (15:32 +0100)]
Fix prompt for the `M-S-x' command

* lisp/simple.el (read-extended-command): Further kludge the
hard-coded "M-x" prompt for the new `M-S-x' command.

3 years agoPrefer mailing lists to newsgroups in FAQ
Stefan Kangas [Mon, 22 Feb 2021 11:17:41 +0000 (12:17 +0100)]
Prefer mailing lists to newsgroups in FAQ

* doc/misc/efaq.texi (Real meaning of copyleft)
(Guidelines for mailing list postings, Mailing list archives)
(Packages that do not come with Emacs): Prefer mailing lists to
newsgroups.  (Bug#46633)

3 years agoImprove wrong number of args error message in propertize
Stefan Kangas [Mon, 22 Feb 2021 10:56:12 +0000 (11:56 +0100)]
Improve wrong number of args error message in propertize

* src/editfns.c (Fpropertize): Improve error message.
(syms_of_editfns) <Qpropertize>: New DEFSYM.
* test/src/editfns-tests.el
(propertize/error-wrong-number-of-args): New test.

3 years agoFix compilation of closures with nontrivial doc strings
Mattias Engdegård [Mon, 22 Feb 2021 10:37:29 +0000 (11:37 +0100)]
Fix compilation of closures with nontrivial doc strings

* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure):
Use the supplied doc string if it's a literal; fall back to the old
slow way of building a closure otherwise.

3 years agoFix up previous conf-mode.el and nroff-mode.el change slightly
Lars Ingebrigtsen [Mon, 22 Feb 2021 04:10:13 +0000 (05:10 +0100)]
Fix up previous conf-mode.el and nroff-mode.el change slightly

* lisp/textmodes/conf-mode.el (conf-mode-map): Remove variable now
unused.

* lisp/textmodes/nroff-mode.el (nroff-mode-map): Remove variable
now unused.

3 years ago* test/misc/test-custom-libs.el (test-custom-libs): Skip on hydra.
Glenn Morris [Mon, 22 Feb 2021 03:11:19 +0000 (19:11 -0800)]
* test/misc/test-custom-libs.el (test-custom-libs): Skip on hydra.

3 years ago* test/misc/test-custom-noloads.el (custom-test-load): Unstable.
Glenn Morris [Mon, 22 Feb 2021 02:58:14 +0000 (18:58 -0800)]
* test/misc/test-custom-noloads.el (custom-test-load): Unstable.

3 years agoConvert some textmodes menus to easy-menu-define
Stefan Kangas [Mon, 22 Feb 2021 01:24:25 +0000 (02:24 +0100)]
Convert some textmodes menus to easy-menu-define

* lisp/textmodes/artist.el (artist-menu-map): Convert menu definition
to easy-menu-define.

* lisp/textmodes/conf-mode.el (conf-mode-map):
* lisp/textmodes/nroff-mode.el (nroff-mode-map): Move menu
definition from here...
* lisp/textmodes/conf-mode.el (conf-mode-menu):
* lisp/textmodes/nroff-mode.el (nroff-mode-menu): ...to here, and
convert to use easy-menu-define.

3 years agoFaster, more compact, and readable closure creation
Mattias Engdegård [Sun, 21 Feb 2021 14:24:41 +0000 (15:24 +0100)]
Faster, more compact, and readable closure creation

Simplify closure creation by calling a single function at run time
instead of putting it together from small pieces.  This is faster
(by about a factor 2), takes less space on disk and in memory, and
makes internal functions somewhat readable in disassembly listings again.

This is done by creating a prototype function at compile-time whose
closure variables are placeholder values V0, V1... which can be seen
in the disassembly.  The prototype is then cloned at run time using
the new make-closure function that replaces the placeholders with
the actual closure variables.

* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure):
Generate call to make-closure from a prototype function.
* src/alloc.c (Fmake_closure): New function.
(syms_of_alloc): Defsubr it.
* src/data.c (syms_of_data): Defsym byte-code-function-p.

3 years agoRun admin/cus-tests.el tests from test suite
Stefan Kangas [Fri, 19 Feb 2021 11:31:56 +0000 (12:31 +0100)]
Run admin/cus-tests.el tests from test suite

* test/Makefile.in (SUBDIRS): Run tests in new directory "misc",
intended for tests not belonging to any one file.
* test/misc/test-custom-deps.el:
* test/misc/test-custom-libs.el:
* test/misc/test-custom-noloads.el:
* test/misc/test-custom-opts.el: New files.
* test/lisp/custom-tests.el (custom--test-local-option): Move test to
above new file test-custom-opts.el.

* admin/cus-test.el: Document running tests from regular test suite.
* test/file-organization.org (Test Files): Document new test directory
"misc" for tests not belonging to any one file.

3 years agoFix interactive mode tagging for man and woman
Stefan Kangas [Sun, 21 Feb 2021 10:19:57 +0000 (11:19 +0100)]
Fix interactive mode tagging for man and woman

* lisp/man.el (man-common): New mode inheriting special-mode.
(Man-mode):
* lisp/woman.el (woman-mode): Inherit from man-common.

* lisp/man.el (man-follow, Man-update-manpage)
(Man-fontify-manpage, Man-cleanup-manpage, Man-next-section)
(Man-previous-section, Man-goto-section)
(Man-goto-see-also-section, Man-follow-manual-reference)
(Man-kill, Man-goto-page, Man-next-manpage)
(Man-previous-manpage): Change interactive mode tag to man-common.

This was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-02/msg01619.html

3 years agoDeclare that `ignore' and `undefined' shouldn't be completed over
Lars Ingebrigtsen [Sun, 21 Feb 2021 18:26:39 +0000 (19:26 +0100)]
Declare that `ignore' and `undefined' shouldn't be completed over

* lisp/subr.el (ignore, undefined): Declare that these shouldn't
be completed over.

3 years agoUse `undefined' instead of `ignore' in wdired
Lars Ingebrigtsen [Sun, 21 Feb 2021 13:03:13 +0000 (14:03 +0100)]
Use `undefined' instead of `ignore' in wdired

* lisp/wdired.el (wdired-mode-map): Use `undefined' here instead
of `ignore' to give the user more feedback.

3 years agoFix json.el encoding of confusable object keys
Basil L. Contovounesios [Thu, 11 Feb 2021 12:00:05 +0000 (12:00 +0000)]
Fix json.el encoding of confusable object keys

* lisp/json.el (json-encode-string): Clarify commentary.
(json--encode-stringlike): New function that covers a subset of
json-encode.
(json-encode-key): Use it for more efficient encoding and
validation, and to avoid mishandling confusable keys like boolean
symbols (bug#42545).
(json-encode-array): Make it clearer that argument can be a list.
(json-encode): Reuse json-encode-keyword and json--encode-stringlike
for a subset of the dispatch logic.
(json-pretty-print): Ensure confusable keys like ":a" survive a
decoding/encoding roundtrip (bug#24252, bug#45032).

* test/lisp/json-tests.el (test-json-encode-string)
(test-json-encode-hash-table, test-json-encode-alist)
(test-json-encode-plist, test-json-pretty-print-object): Test
encoding of confusable keys.

3 years agoMake unused variable menu-bar-handwrite-map obsolete
Stefan Kangas [Sun, 21 Feb 2021 09:23:12 +0000 (10:23 +0100)]
Make unused variable menu-bar-handwrite-map obsolete

* lisp/play/handwrite.el (menu-bar-handwrite-map): Make unused
variable obsolete.

3 years agoConvert bubbles menu to easy-menu-define
Stefan Kangas [Sun, 21 Feb 2021 09:19:23 +0000 (10:19 +0100)]
Convert bubbles menu to easy-menu-define

* lisp/play/bubbles.el (bubbles-game-theme-menu)
(bubbles-graphics-theme-menu, bubbles-menu, bubbles-mode-map):
Move menu definition from here...
(bubbles-menu): ...to here, and convert to easy-menu-define.

3 years ago; Fix previous easy-menu-define conversion
Stefan Kangas [Sun, 21 Feb 2021 09:10:03 +0000 (10:10 +0100)]
; Fix previous easy-menu-define conversion

* lisp/emacs-lisp/re-builder.el (reb-mode-menu):
* lisp/progmodes/make-mode.el (makefile-mode-menu): Replace :button
attribute with :style and :selected.

3 years ago* etc/NEWS.19: Add entry for 'easy-menu-define'.
Stefan Kangas [Sun, 21 Feb 2021 09:02:43 +0000 (10:02 +0100)]
* etc/NEWS.19: Add entry for 'easy-menu-define'.

3 years agoConvert some progmodes menus to easy-menu-define
Stefan Kangas [Sun, 21 Feb 2021 07:24:44 +0000 (08:24 +0100)]
Convert some progmodes menus to easy-menu-define

* lisp/progmodes/asm-mode.el (asm-mode-map):
* lisp/progmodes/grep.el (grep-mode-map):
* lisp/progmodes/m4-mode.el (m4-mode-map):
* lisp/progmodes/sh-script.el (sh-mode-map): Move menu definition from here...
* lisp/progmodes/asm-mode.el (asm-mode-menu):
* lisp/progmodes/grep.el (grep-menu-map):
* lisp/progmodes/m4-mode.el (m4-mode-menu):
* lisp/progmodes/sh-script.el (sh-mode-menu): ...to here, and rewrite
using easy-menu-define.