Clarify face-at-point doc string and add (thing-at-point 'face)
* lisp/faces.el (face-at-point): Say what this function does.
* lisp/thingatpt.el (thing-at-point-face-at-point): Add `face'
type (bug#57087).
(thing-at-point-provider-alist, thing-at-point): Mention it in the
doc strings.
Default outline-minor-mode-use-buttons to only happen in *Help*
* lisp/outline.el (outline-minor-mode-use-buttons): Change the
default to only use buttons in the *Help* buffer (for now),
because it's too disruptive in other modes. This will probably be
changed again to have some other mechanism to opt in in certain
modes, but it's not clear what that mechanism should look like.
Alan Mackenzie [Thu, 11 Aug 2022 19:31:09 +0000 (19:31 +0000)]
New debugging facility: backtraces from errors in Lisp called from redisplay
Setting backtrace-on-redisplay-error to non-nil enables the generation of a
Lisp backtrace in buffer *Redisplay-trace* following an error in Lisp called
from redisplay.
* doc/lispref/debugging.texi (Debugging Redisplay): New subsection.
(Error Debugging): Reference to the new subsection.
* etc/NEWS: New entry for the new facility.
* src/eval.c (redisplay_deep_handler): New variable.
(init_eval): Initialize redisplay_deep_handler.
(call_debugger): Don't throw to top-level after calling debug-early
(internal_condition_case_n): "Bind" redisplay_deep_handler to the current
handler.
(backtrace_yet): New boolean variable.
(signal_or_quit): New code section to handle Lisp errors occurring in
redisplay.
(syms_of_eval): New DEFVAR_BOOL backtrace-on-redisplay-error.
* src/keyboard.c (command_loop_1): Set backtrace_yet to false each time around
the loop.
(safe_run_hooks_error): Allow args to be up to four Lisp_Objects long.
(safe_run_hooks_2): New function.
* src/lisp.h (top level): declare as externs backtrace_yet and
safe_run_hooks_2.
* src/xdisp.c (run_window_scroll_functions): Replace a call to
run_hook_with_args_2 with one to safe_run_hooks_2.
Axel Svensson [Mon, 8 Aug 2022 23:11:02 +0000 (01:11 +0200)]
Support the full range of variation selectors
* lisp/international/characters.el: Provide acronyms for variation
selectors.
(update-glyphless-char-display): Update display of the full range
of variation selectors.
(glyphless-char-display-control): Update doc string. (Bug#57072)
* doc/lispref/display.texi (Glyphless Chars): Document more
variation selectors.
Ulf Jasper [Thu, 11 Aug 2022 11:26:52 +0000 (13:26 +0200)]
newsticker: fix bug#57045
* lisp/net/newst-treeview.el
(newsticker--treeview-list-items-with-age) (newsticker-treeview-update):
Fix issues with changing sort order in virtual feed 'all' (Bug#57045).
Fix wrong metrics for bitmap-only fonts with HarfBuzz 5
* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Always use the standard
position unit value on HarfBuzz 5 and later regardless of whether the
font is bitmap-only or not. (Bug#57066)
Po Lu [Thu, 11 Aug 2022 01:56:15 +0000 (09:56 +0800)]
Adjust client pointer upon help event
* src/xterm.c (handle_one_xevent): Keep track of the device that
set do_help and make it the client pointer so that tooltips show
up under the right pointer.
Visuwesh [Tue, 9 Aug 2022 15:42:39 +0000 (21:12 +0530)]
Improve the bengali-probhat input method
* lisp/leim/quail/indian.el ("bengali-probhat"): Set KBD-TRANSLATE
and SHOW-LAYOUT flags non-nil. This makes the IM usable with Dvorak
keyboard and also shows more useful help. Reported by Akib Azmain
Turja <akib@disroot.org>.
Extend the set of eligible opcodes for certain peephole
transformations, which then provide further optimisation
opportunities.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Optimise empty save-current-buffer in the same way as we already
do for save-excursion and save-restriction. This is safe
because (save-current-buffer) is a no-op.
(byte-compile-side-effect-and-error-free-ops): Add list3, list4 and
listN. These were all apparent oversights as list1 and list2 were
already included.
(byte-after-unbind-ops): Add stack-ref, stack-set, discard, list3,
list4 and listN. Stack manipulation is safe because unbind cannot
read or modify stack entries.
Dmitry Gutov [Wed, 10 Aug 2022 00:18:29 +0000 (03:18 +0300)]
js--font-lock-keywords-2: Remove the 'for each' matcher
* lisp/progmodes/js.el (js--font-lock-keywords-2):
Remove the 'for each' matcher. First, because it was slow
(bug#56682), and second: the 'for each' syntax was only present in
Mozilla's dialect of JavaScript (added in version 1.5), and has
been deprecated for a decade now.
Stefan Kangas [Tue, 9 Aug 2022 20:41:53 +0000 (22:41 +0200)]
Make rng-collapse-space obsolete
* lisp/nxml/rng-util.el (rng-collapse-space): Make obsolete in favor
of 'string-clean-whitespace'. Update callers.
Suggested by Lars Ingebrigtsen <larsi@gnus.org>.
Laurence Warne [Tue, 9 Aug 2022 07:33:18 +0000 (08:33 +0100)]
Fix python escape code fontification for multi-line literals
* lisp/progmodes/python.el (python--string-bytes-literal-matcher): Go
backward one char after a match so that consecutive escape codes are
highlighted
(python--not-raw-string-literal-start-regexp): Make regular expression
more comprehensive, so multi-line bytes literals are not caught
(python-rx): Accept one to three octal digits in octal escape codes
instead of always three
Michael Albinus [Tue, 9 Aug 2022 16:12:27 +0000 (18:12 +0200)]
Further Tramp fixes for Android 12
* lisp/net/tramp-adb.el (tramp-adb-handle-file-attributes)
(tramp-adb-handle-directory-files-and-attributes)
(tramp-adb-handle-file-name-all-completions): Pipe "ls" output
through "cat", in order to avoid quoting special characters.
(tramp-adb-sh-fix-ls-output): Remove fix for file names with spaces.
Stefan Kangas [Tue, 9 Aug 2022 15:55:21 +0000 (17:55 +0200)]
Improve message regarding missing LEIM
* lisp/international/ja-dic-utl.el (skkdic-lookup-key):
* lisp/international/mule-diag.el (list-input-methods-1):
* lisp/international/quail.el (quail-use-package): Explain that LEIM
is installed together with Emacs.
Stefan Kangas [Tue, 9 Aug 2022 12:29:12 +0000 (14:29 +0200)]
Replace utility functions with seq-uniq
* lisp/gnus/gnus-util.el (gnus-delete-duplicates):
* lisp/ibuf-ext.el (ibuffer-remove-duplicates): Redefine as
obsolete function alias for 'seq-uniq'. Update callers.
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--shorten-autoload): New function.
(loaddefs-generate--make-autoload): Use it to drop optional nil
values from the `autoloads' forms. This makes the loaddefs.el
file about 12K shorter.
Stefan Kangas [Tue, 9 Aug 2022 13:37:53 +0000 (15:37 +0200)]
Make ibuffer-split-list obsolete in favor of seq-group-by
* lisp/ibuf-ext.el (ibuffer-split-list): Make obsolete in favor of
'seq-group-by'.
(ibuffer-generate-filter-groups): Don't use above obsolete
function.
Alan Mackenzie [Tue, 9 Aug 2022 10:46:21 +0000 (10:46 +0000)]
CC Mode: Allow the insertion of long strings of letters in reasonable time
This fix allows M-: (insert (make-string 1000000 ?y)) to work fast when
inserted between C++ raw string delimiters after (setq long-line-threshold
nil).
* lisp/progmodes/cc-langs.el (c-symbol-key): Replace a "*" by "\\{,1000\\}" in
a regexp.
Po Lu [Tue, 9 Aug 2022 07:43:30 +0000 (15:43 +0800)]
Factor out some duplicate code from handle_one_xevent
* src/xterm.c (xi_disable_devices): New function.
(handle_one_xevent): Use that to disable an array of device IDs
instead of copypasting the same block of code over and over
again.