1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00
Commit graph

149304 commits

Author SHA1 Message Date
Mattias Engdegård
ab9c06449d Move warnings about bad let-bindings from source optimiser to cconv
* lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form): Move warnings...
* lisp/emacs-lisp/cconv.el (cconv-convert): ...here, which is an
overall better place (closer to the front-end).
2021-07-30 09:54:30 +02:00
Mattias Engdegård
dc9e2a1749 Optimise prog1 better
Rewrite (prog1 CONST FORMS...) => (progn FORMS... CONST)
where CONST is a compile-time constant, because putting the value last
allows the lapcode peephole pass to do important improvements like
branch elimination.  Also use progn instead of prog1 for `ignore`.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
New `prog1` and `ignore` transforms.
2021-07-30 09:54:29 +02:00
Mattias Engdegård
9a63338114 Elide lexical variables in for-effect context in source optimiser
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Remove for-effect uses of lexical variables.  We previously relied on
this being done by the lapcode peephole optimiser but at source level
it enables more optimisation opportunities.
Keywords are elided for the same reason.
2021-07-30 09:54:29 +02:00
Mattias Engdegård
566e29f78c Single source optimiser entry point
Make the optimiser aware of lexical arguments.  Otherwise we cannot
know for sure whether a variable is lexical or dynamic during
traversal.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-one-form): New optimiser
entry point, replacing the recursive byte-optimize-form.
* lisp/emacs-lisp/bytecomp.el (byte-optimize-one-form): Autoload.
(byte-compile-keep-pending, byte-compile-top-level):
Use byte-optimize-one-form.
2021-07-30 09:54:29 +02:00
Stephen Gildea
5fb8b20fa3 mh-junk: replace color-based terms with descriptive words
* lisp/mh-e/*.el: "whitelist" -> "allowlist" and "blacklist" -> "blocklist".
* doc/misc/mh-e.texi: update manual to match.
* lisp/mh-e/folder.el: Change the binding of 'mh-junk-allowlist' to 'J a'.
  Add a compatibility binding for the old 'J w'.
* lisp/mh-e/mh-scan.el (mh-note-allowlisted): Change char from 'W' to 'A'.
* lisp/mh-e/junk.el: Rename 'mh-blacklist-a-msg' to 'mh-junk-blocklist-a-msg',
  adding the missing "junk-" to the function name.
2021-07-29 17:38:39 -07:00
Nick Gasson
7e8d1b08e3 Avoid errors in rmailsum for messages without "From"
* lisp/mail/rmailsum.el (rmail-header-summary): Be defensive about
the presence of the "From" header.  (Bug#49770)

Copyright-paperwork-exempt: yes
2021-07-29 18:37:21 +03:00
dickmao
314474e2d5 Follow-up toggle-subscription name change
* doc/misc/gnus.texi (Subscription Commands): Refer to correct function.
* lisp/gnus/gnus-group.el (gnus-group-unsubscribe-current-group):
Make backwards-compatible.
(gnus-group-unsubscribe-group):
Make backwards-compatible (bug#49768).
2021-07-29 13:33:58 +02:00
Dmitry Gutov
69398a4da0 Fix printing of multiple items in one group without line numbers
* lisp/progmodes/xref.el (xref--insert-xrefs):
Fix printing of multiple items in one group without line numbers
(mentioned in bug#49731).
2021-07-29 04:57:36 +03:00
dickmao
d6a3b1cd2b Rename Gnus -unsubscribe-group commands to -toggle-subscription
* doc/emacs/misc.texi (Gnus Group Buffer): Document change.
* doc/misc/gnus.texi (Subscription Commands): Document change.
(Browse Foreign Server): Document change.
* lisp/gnus/gnus-group.el (gnus-group-mode-map):
Unsubscribe is not subscribe.
(gnus-group-sub-map): Unsubscribe is not subscribe.
(gnus-group-make-menu-bar): Unsubscribe is not subscribe.
(gnus-group-tool-bar-gnome): Unsubscribe is not subscribe.
(gnus-group-mode): Unsubscribe is not subscribe.
(gnus-group-unsubscribe): Refactor.
(gnus-group-subscribe): Refactor.
(gnus-group-unsubscribe-current-group): Define obsolete alias.
(gnus-group-unsubscribe-group): Define obsolete alias.
(gnus-group-toggle-subscription-at-point): Refactor.
(gnus-group-set-subscription-at-point): Refactor.
(gnus-group-toggle-subscription): Refactor.
(gnus-group-set-subscription): Refactor.
* lisp/gnus/gnus-srvr.el (gnus-browse-mode-map):
Unsubscribe is not subscribe.
(gnus-browse-make-menu-bar): Unsubscribe is not subscribe.
(gnus-browse-mode): Document the change.
(gnus-browse-unsubscribe-current-group): Define obsolete alias.
(gnus-browse-unsubscribe-group): Define obsolete alias.
(gnus-browse-toggle-subscription-at-point): Unsubscribe is not subscribe.
(gnus-browse-toggle-subscription): Unsubscribe is not subscribe
(bug#49759).
2021-07-28 20:52:51 +02:00
Lars Ingebrigtsen
fa51d6cdcd Improve mode-line-position-column-format manual entry
* doc/lispref/modes.texi (Mode Line Variables): Mention %C, and
don't mention the obsolete column-number-indicator-zero-based
variable.
2021-07-28 18:39:44 +02:00
Juri Linkov
ea69802a8f * lisp/progmodes/gud.el: Add prefix 'gud-' to repeat-map variables (bug#49632)
* lisp/progmodes/gud.el (gud-sdb-repeat-map, gud-dbx-repeat-map)
(gud-xdb-repeat-map, gud-perldb-repeat-map, gud-pdb-repeat-map)
(gud-guiler-repeat-map, gud-jdb-repeat-map): Rename with prefix 'gud-'.
2021-07-28 19:22:53 +03:00
Lars Ingebrigtsen
c9c1460342 Make byte-recompile-directory less brittle
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Don't
interpret files named "~" as $HOME (bug#49758).
2021-07-28 18:10:59 +02:00
Lars Ingebrigtsen
e5ddf91db2 Improve mode-line-position-column-format doc string
* lisp/bindings.el (mode-line-position-column-format): Improve doc
string.
(mode-line-position-line-format): Point to
`mode-line-position-column-line-format'.
2021-07-28 17:57:19 +02:00
Kévin Le Gouguec
6a6ea7bc6f Improve file-name-concat NEWS entry 2021-07-28 17:38:41 +02:00
Michael Albinus
2910e668eb Display yubikey message properly in Tramp
* lisp/net/tramp.el (tramp-action-show-and-confirm-message):
Display message properly.
2021-07-28 09:07:45 +02:00
Brian Leung
cfcf42ff87 Ensure that gud commands for non-GDB debuggers are handled by repeat-mode
* lisp/progmodes/gud.el (sdb-repeat-map): Define.
(sdb): Set repeat-mode property to the symbol corresponding to the
repeat map.
(dbx-repeat-map): Define.
(dbx): Set repeat-mode property to the symbol corresponding to the
repeat map.
(xdb-repeat-map): Define.
(xdb): Set repeat-mode property to the symbol corresponding to the
repeat map.
(perldb-repeat-map): Define.
(perldb): Set repeat-mode property to the symbol corresponding to the
repeat map.
(pdb-repeat-map): Define.
(pdb): Set repeat-mode property to the symbol corresponding to the
repeat map.
(guiler-repeat-map): Define.
(guiler): Set repeat-mode property to the symbol corresponding to the
repeat map.
(jdb-repeat-map): Define.
(jdb): Set repeat-mode property to the symbol corresponding to the
repeat map.  (Bug#49632)
2021-07-28 00:13:48 +03:00
Brian Leung
29d6209995 Ensure that gud commands for M-x gdb are handled by repeat-mode
* lisp/progmodes/gud.el (gud-gdb-repeat-map): Rename from
gud-repeat-map, and populate at the top-level.
(gud-set-repeat-map-property): Introduce this helper function for
setting the repeat-map property.
(gud-gdb): Use the gud-set-repeat-map-property function to assign the
repeat-map property.

* lisp/progmodes/gdb-mi.el (gdb): Use the gud-set-repeat-map-property
function to assign the repeat-map property.

Because different debugging tools may not support all of the gud-foo
functions, we reassign the repeat-map property within the respective
commands, as opposed to the top level of the files, to ensure that the
repeat-map property is reassigned each time to a symbol corresponding
to the active debugging tool.  (Bug#49632)
2021-07-28 00:13:40 +03:00
Juri Linkov
30bd6a50aa * lisp/tab-bar.el (tab-bar-format-global): Use string-trim-right (bug#30056). 2021-07-27 23:55:32 +03:00
Mattias Engdegård
b4173443fb ; * lisp/completion.el (load-completions-from-file): Simplify
Use a condition-case :success clause instead flags for control.
2021-07-27 20:35:59 +02:00
Michael Albinus
35610b870e Mark all autorevert tests as unstable on Cygwin (bug#49665)
* test/lisp/autorevert-tests.el: Mark all tests as unstable on
Cygwin (bug#49665).
2021-07-27 19:41:57 +02:00
Mattias Engdegård
949dd41c31 Fix mistake in switch-case generation of null (bug#49746)
Reported by Gregor Zattler.

* lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix):
Be more careful in the selection of equality.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
2021-07-27 17:32:23 +02:00
Lars Ingebrigtsen
989937e1bc Revert "Make revert-buffer preserve buffer-readedness"
This reverts commit fcae435f59.

This leads to problems when reverting from a file that's changed
readedness externally.
2021-07-27 17:24:14 +02:00
Michael Albinus
17048030f5 ; Fix last change in tramp.el 2021-07-27 13:08:36 +02:00
Michael Albinus
124a3cb60b Final tweak for Tramp's yubikey detection
* lisp/net/tramp.el (tramp-yubikey-regexp)
(tramp-action-show-and-confirm-message): Expect also "\n".
2021-07-27 09:28:28 +02:00
Alan Third
d2d3fc3929 Convert fringe bitmaps to vectors on NS port
Unfortunately *step doesn't support masks for bitmap images so
changing the colors of fringe bitmaps is awkward.  We can work around
this by converting the bitmap into an NSBezierPath and drawing it in
the required color.

* src/nsterm.m (ns_define_fringe_bitmap):
(ns_destroy_fringe_bitmap): New functions
(ns_draw_fringe_bitmap): Display the NSBezierPath.
* src/nsimage.m
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Remove
variable that's there to allow us to easily modify the XBM colors.
([EmacsImage setXBMColor:]): Remove method.
2021-07-26 23:12:31 +01:00
Alan Third
9ce3fdc461 Fix NS inset rectangle corners
* src/nsterm.m (ns_draw_relief): Use a path to draw the mitered
corners instead of rectangles.
2021-07-26 23:12:25 +01:00
Alan Third
49bbed0dfd Simplify NS sizing and positioning code
* src/nsterm.m (ns_set_offset): Unify the two branches into one, most
of the code is the same.
(ns_set_window_size): Use the provided tools to calculate the window
size instead of doing it ourselves.
2021-07-26 23:12:12 +01:00
Alan Third
0b54632013 * src/nsterm.m (ns_set_frame_alpha): Enable alpha on GNUstep. 2021-07-26 23:12:04 +01:00
Alan Third
246803f26f Fix image crash on macOS (bug#49688)
* src/nsimage.m ([EmacsImage allocInitFromFile:]): Use isValid to
check whether the image is valid instead of generating a tiff.
2021-07-26 21:04:05 +01:00
Mattias Engdegård
4f43058e9a Adjust grep-mode end-col function return value
* lisp/progmodes/grep.el (grep-regexp-alist): Adjust the return value
from the END-COL function by one since it is now (after fixing
bug#49624) inclusive.  Found by Juri Linkov.
2021-07-26 21:25:20 +02:00
Michael Albinus
67fe106d10 Some minor improvements for share handling in tramp-gvfs.el
* lisp/net/tramp-gvfs.el (tramp-gvfs-connection-mounted-p):
Set "share" connection property if the mount spec offers it.
(tramp-gvfs-handle-get-remote-uid)
(tramp-gvfs-handle-get-remote-gid): Use it.
2021-07-26 20:51:57 +02:00
Michael Albinus
1ff02c53b5 Adapt Tramp for yubikey
* lisp/net/tramp.el (tramp-yubikey-regexp): Adapt value.
(tramp-trace-functions): Adapt docstring.
(tramp-process-action-regexp): New defvar.
(tramp-action-password, tramp-process-one-action): Use it.
(tramp-action-show-and-confirm-message): Rewrite.
2021-07-26 15:44:32 +02:00
Michael Albinus
c3a76935fa Adapt tramp-sudoedit.el for better testing
* doc/misc/tramp.texi (Bug Reports): Revert last change.  Mention
exception for sudoedit.

* lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command):
Let-bind `tramp-cache-read-persistent-data' for better password handling.
2021-07-26 09:55:30 +02:00
Mattias Engdegård
6b7c22e7ee ; * lisp/replace.el (occur-after-change-function): Fix logic mistake 2021-07-26 09:15:04 +02:00
Mattias Engdegård
a45aed9479 Describe changes to the occur-mode implementation in NEWS
* etc/NEWS: Mention change to the `occur-target` property (bug#39121).
2021-07-25 21:40:56 +02:00
Glenn Morris
81da37b662 Fix recent gdb-mi change
* lisp/progmodes/gdb-mi.el (gdb-registers-filter-pattern-list):
Fix type.
2021-07-25 09:44:37 -07:00
Glenn Morris
ed1480b1d9 Merge from origin/emacs-27
d0625dc553 (origin/emacs-27) ; One more change in back.texi.
06d0a66e57 ; Yet another last-minute change in Emacs manual for printing
2021-07-25 07:57:23 -07:00
Michael Albinus
df7bb79f38 Add instructions for Tramp bug reports
* doc/misc/tramp.texi (Bug Reports): Describe how to use password
cache with "emacs -Q".
2021-07-25 16:54:00 +02:00
Mattias Engdegård
f4d04931b7 Fix tex-validate-buffer
* lisp/textmodes/tex-mode.el (tex-validate-buffer):
Set `inhibit-read-only` around all modifications of the
read-protected *Occur* buffer (bug#19326).
Add the `occur-match` property, and adjust the extent of the
`occur-target` property, so that next-error and previous-error work
correctly (bug#39121).
2021-07-25 16:41:46 +02:00
Mattias Engdegård
697341d7fd Add back occur-mode-find-occurrence for compatibility (bug#39121)
* lisp/replace.el (occur-mode-find-occurrence):
Put back (an emulation of) the previously removed function.
It is used internally in eshell and in some external code.

Problem found by Basil Contovounesios.
2021-07-25 16:40:59 +02:00
Eli Zaretskii
41a55a330f Fix compilation of xftfont.c with old fontconfig
* src/xftfont.c (FC_LCD_FILTER): Define if undefined, for older
versions of fontconfig.  This was mistakenly deleted 2 years ago.
(Bug#49722)
2021-07-25 15:50:46 +03:00
Michael Albinus
41e62df73a Fix extended attributes for Tramp's sudoedit method (bug#49724)
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
Remove compat code for `{set-}file-extended-attributes'.
(tramp-sudoedit-handle-write-region): Handle extended attributes.
(Bug#49724)

* test/lisp/net/tramp-tests.el (tramp-test25-file-selinux):
Fix test for sudoedit method.
2021-07-25 14:14:49 +02:00
Kévin Le Gouguec
cb28b2e32b * etc/NEWS: Fix renaming of directory-append. 2021-07-25 12:23:33 +02:00
Christopher League
142961bcdf When bookmark is overwritten, unfontify its previous position
* lisp/bookmark.el (bookmark-store): When the bookmark-fontify option
is non-nil, setting or jumping to bookmarks will colorize them using
`bookmark-face'.  With this change, overwriting a bookmark will remove
the fontification at its former position (bug#49725).
2021-07-25 12:23:33 +02:00
Michael Albinus
0577bd0cf9 Use `file-name-concat' in Tramp
* lisp/net/tramp-compat.el (tramp-compat-file-name-concat):
New defalias.

* lisp/net/tramp.el (tramp-handle-expand-file-name):
* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
* lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
Use it.
2021-07-25 12:05:01 +02:00
Mattias Engdegård
b0d33d4253 Don't squash markers in occur-edit-mode
* lisp/replace.el (occur-after-change-function): Instead of replacing
the whole line being edited, use shrink-wrapping to replace the
smallest interval encompassing the change.  That way, we avoid
disturbing markers (such as occur highlighting locations) in the line;
they would otherwise all be forced to the beginning.
2021-07-25 11:24:53 +02:00
Mattias Engdegård
c52e26df30 Keep track of match extents in occur-mode (bug#39121)
Use the `occur-target` text property to keep track of the extents of
all matches on each line instead of just the start of the first match.
Doing so allows us to highlight all matches when jumping to a matching
line instead of just the first one, and it works in a more principled
way.  It also removes compatibility problems that were introduced with
occur-highlight-regexp.

For compatibility with code that populate their own occur-mode
buffers, we still accept `occur-target` properties with a single
marker as value.

* lisp/replace.el (occur-highlight-regexp, occur-highlight-overlay):
Remove.
(occur-highlight-overlays): New.
(occur--targets-start): New.
* lisp/replace.el (occur-after-change-function):
(occur-mode-find-occurrence): Replace with...
(occur-mode--find-occurrences): ...this function that returns the
whole `occur-target` property value.
(occur-mode-goto-occurrence, occur-mode-goto-occurrence-other-window)
(occur-goto-locus-delete-o, occur-mode-display-occurrence)
(occur-engine): Adjust to new property format.
(occur--highlight-occurrence): Replace with...
(occur--highlight-occurrences): ...this function that takes
the `occur-target` property value as argument.
(occur-1): Don't use `occur-highlight-regexp`.
* test/lisp/replace-tests.el (occur-highlight-occurrence):
Adapt to new property format.
2021-07-25 10:29:09 +02:00
Arthur Miller
d3415724a6 Support '--group-directories-first' in ls-lisp.el
* lisp/ls-lisp.el (ls-lisp--sanitize-switches): New function.
(ls-lisp--insert-directory): Support '--group-directories-first'.
Call 'ls-lisp--sanitize-switches' to convert long options to short
forms and remove unsupported long options.  Update the doc string.

Copyright-paperwork-exempt: yes
2021-07-25 10:44:31 +03:00
Peter Feigl
a6afa221d7 Add commands to move to next/previous column in tabulated-list-mode
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map): Add
keybindings M-left and M-right.
(tabulated-list-previous-column tabulated-list-next-column): Implement
commands (bug#44711).
2021-07-25 09:16:08 +02:00
Lars Ingebrigtsen
f04f8126f0 Rename directory-append to file-name-concat
* src/fileio.c (Ffile_name_concat):
* lisp/files.el (move-file-to-trash):
* lisp/emacs-lisp/shortdoc.el (file-name):
* doc/lispref/files.texi (Directory Names): Rename
`directory-append' to `file-name-concat'.
2021-07-25 08:54:20 +02:00