]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 years agoFollowup fix to previous message-update-smtp-method-header change
Lars Ingebrigtsen [Fri, 21 Jan 2022 13:20:31 +0000 (14:20 +0100)]
Followup fix to previous message-update-smtp-method-header change

* lisp/gnus/message.el (message-update-smtp-method-header): Narrow
to the headers first.

3 years agoAllow From to be part of message-hidden-headers
Lars Ingebrigtsen [Fri, 21 Jan 2022 13:18:19 +0000 (14:18 +0100)]
Allow From to be part of message-hidden-headers

* lisp/gnus/message.el (message-update-smtp-method-header): Don't
bug out if the From header is part of `message-hidden-headers'
(bug#52871).

3 years agoDon't use 'eshell-eval-using-options' for 'eshell/source' or 'eshell/.'
Jim Porter [Fri, 21 Jan 2022 03:51:39 +0000 (19:51 -0800)]
Don't use 'eshell-eval-using-options' for 'eshell/source' or 'eshell/.'

This makes 'source' and '.' in Eshell more compatible with regular
shells, which just treat the first argument as the file to source and
all subsequent arguments as arguments to that file.

* lisp/eshell/em-script.el (eshell/source, eshell/.): Don't use
'eshell-eval-using-options'.

* etc/NEWS: Announce the change (bug#53293)

3 years agoRaise an error from 'eval-eval-using-options' for unknown options
Jim Porter [Thu, 20 Jan 2022 02:59:23 +0000 (18:59 -0800)]
Raise an error from 'eval-eval-using-options' for unknown options

* lisp/eshell/em-basic.el (eshell/echo): Add -E option.

* lisp/eshell/esh-opt.el (eshell--process-option): Raise an error if
an unknown option is encountered, even when :external is nil.

* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test)
(test-eshell-eval-using-options): Add test cases for this.

3 years agoFix indentation in NEWS of cl-flet item
Theodor Thornhill [Fri, 21 Jan 2022 12:04:29 +0000 (13:04 +0100)]
Fix indentation in NEWS of cl-flet item

* etc/NEWS: Correct description of indentation of 'cl-flet' and
'cl-labels (bug#53410).

3 years agoClarify Splitting Mail in the Gnus manual
Lars Ingebrigtsen [Fri, 21 Jan 2022 11:48:03 +0000 (12:48 +0100)]
Clarify Splitting Mail in the Gnus manual

* doc/misc/gnus.texi (Splitting Mail): Clarify what happens when
crossposting or not (bug#53307).

3 years agoInterpret a "" value of EMACS_TEST_VERBOSE as "off"
Lars Ingebrigtsen [Fri, 21 Jan 2022 11:32:10 +0000 (12:32 +0100)]
Interpret a "" value of EMACS_TEST_VERBOSE as "off"

* doc/misc/ert.texi (Running Tests in Batch Mode): Adjust doc.
* lisp/emacs-lisp/ert.el (ert-run-tests-batch): Allow overriding
the EMACS_TEST_VERBOSE variable by setting it to "" (bug#53313).

3 years agoMake the edebug-all-defs user option work more reliably
Lars Ingebrigtsen [Fri, 21 Jan 2022 11:26:30 +0000 (12:26 +0100)]
Make the edebug-all-defs user option work more reliably

* lisp/emacs-lisp/edebug.el (edebug-all-defs): This user option
has no effect unless edebug is loaded (because that loads the
advice needed for the commands in question) (bug#53331).

3 years agoMake xwidgets work on builds that don't use Cairo drawing
Po Lu [Fri, 21 Jan 2022 11:08:41 +0000 (19:08 +0800)]
Make xwidgets work on builds that don't use Cairo drawing

* configure.ac: Check for the parts of Cairo that are needed for
xwidgets when they are enabled without cairo drawing.

* src/xterm.c:
* src/xwidget.c: Always include cairo-xlib headers when xwidgets
are enabled.

3 years agoClean up mm-display-inline-fontify slightly
Lars Ingebrigtsen [Fri, 21 Jan 2022 11:07:31 +0000 (12:07 +0100)]
Clean up mm-display-inline-fontify slightly

* lisp/gnus/mm-view.el (mm-display-inline-fontify): Remove some
left-over compat code.

3 years agoMake diff--iterate-hunks more resilient
Lars Ingebrigtsen [Fri, 21 Jan 2022 11:07:04 +0000 (12:07 +0100)]
Make diff--iterate-hunks more resilient

* lisp/vc/diff-mode.el (diff--iterate-hunks): Ignore malformed
hunks instead of signalling errors (bug#53343).

3 years agoUse the correct converter for odf files in doc-view
Shuguang Sun [Fri, 21 Jan 2022 10:25:27 +0000 (11:25 +0100)]
Use the correct converter for odf files in doc-view

* lisp/doc-view.el (doc-view-pdf/ps->png): Use the correct
converter for odf files (bug#53354).

3 years agoUpdate multisession variables when editing the values
Lars Ingebrigtsen [Fri, 21 Jan 2022 10:20:56 +0000 (11:20 +0100)]
Update multisession variables when editing the values

* lisp/emacs-lisp/multisession.el (multisession-edit-value):
Update multisession variables when editing the values (bug#53361).

3 years agoFurther improve determination of when commands can be invoked directly
Jim Porter [Fri, 21 Jan 2022 09:32:00 +0000 (10:32 +0100)]
Further improve determination of when commands can be invoked directly

This covers the case when a subcommand is to be invoked in more places
than before, for example when a subcommand is concatenated in an
argument.

* lisp/eshell/esh-cmd.el (eshell--find-subcommands): New fuction.
(eshell--invoke-command-directly): Use 'eshell-find-subcommands'.

* test/lisp/eshell/eshell-tests.el
(eshell-test/interp-cmd-external-concat): New test (bug#30725).

3 years agoAdjust emake after recent changes
Lars Ingebrigtsen [Fri, 21 Jan 2022 07:55:43 +0000 (08:55 +0100)]
Adjust emake after recent changes

3 years agoSynchronize XI2 code with Core Input code
Po Lu [Fri, 21 Jan 2022 07:32:45 +0000 (15:32 +0800)]
Synchronize XI2 code with Core Input code

* src/xterm.c (handle_one_xevent): Apply recent changes for XI2
events as well.

3 years agoMerge from origin/emacs-28
Po Lu [Fri, 21 Jan 2022 07:27:35 +0000 (15:27 +0800)]
Merge from origin/emacs-28

11ea45c9e4 Fix UB in ebrowse
ba57b78064 Fix execute-extended-command-for-buffer in fundamental-mode
ef0c1d4c2c Add workaround to handle a problem with Enlightenment WM (...

3 years ago; * etc/NEWS: Fix typo in recent change.
Po Lu [Fri, 21 Jan 2022 05:49:57 +0000 (13:49 +0800)]
; * etc/NEWS: Fix typo in recent change.

3 years agoWork around GTK changing window backgrounds on colormapped displays
Po Lu [Fri, 21 Jan 2022 05:22:51 +0000 (13:22 +0800)]
Work around GTK changing window backgrounds on colormapped displays

* src/xterm.c (x_clear_window):
(x_clear_area): Fill the contents with the reverse GC instead of
using XClearArea and XClearWindow when not double buffered.

3 years agoFix BadValue crash when looking up empty color names on some X servers
Po Lu [Fri, 21 Jan 2022 03:37:19 +0000 (11:37 +0800)]
Fix BadValue crash when looking up empty color names on some X servers

* src/xterm.c (x_parse_color): Avoid parsing empty color names.

3 years agoruby-toggle-block-space-before-parameters: New user option
Dmitry Gutov [Fri, 21 Jan 2022 02:59:39 +0000 (04:59 +0200)]
ruby-toggle-block-space-before-parameters: New user option

* lisp/progmodes/ruby-mode.el (ruby-toggle-block-space-before-parameters):
New user option (bug#53321).
(ruby-do-end-to-brace): Handle it.

* test/lisp/progmodes/ruby-mode-tests.el
(ruby-toggle-block-to-brace-no-space): New test.

3 years agoUpdate menu bars when `use-system-tooltips' changes on Haiku
Po Lu [Fri, 21 Jan 2022 01:31:27 +0000 (01:31 +0000)]
Update menu bars when `use-system-tooltips' changes on Haiku

* lisp/term/haiku-win.el: Add new function as variable watcher
for `use-system-tooltips'.
(haiku-use-system-tooltips-watcher): New function.

3 years agoAllow fractional values of `polling-period'
Po Lu [Fri, 21 Jan 2022 01:15:52 +0000 (09:15 +0800)]
Allow fractional values of `polling-period'

This allows C-g to be handled faster in the NS port at the cost
of some extra CPU time on slow machines.

* etc/NEWS: Announce new feature.
* src/keyboard.c (start_polling):
(bind_polling_period): Handle floating point values of
`polling-period'.
(syms_of_keyboard): Make `polling-period' a Lisp variable
instead of an int variable.

3 years agoAvoid FOCUS_IN_EVENTS not being sent on NS
Po Lu [Sat, 15 Jan 2022 13:11:57 +0000 (21:11 +0800)]
Avoid FOCUS_IN_EVENTS not being sent on NS

* src/nsterm.m ([EmacsView windowDidBecomeKey]): Work around
emacs_event being NULL by storing focus in events directly
into the keyboard buffer.  (bug#52376)

3 years agoIn early bootstrap, use byte-compiled compiler to native compile first files
Alan Mackenzie [Thu, 20 Jan 2022 18:40:15 +0000 (18:40 +0000)]
In early bootstrap, use byte-compiled compiler to native compile first files

This speeds up a make bootstrap by around 15%.

* lisp/Makefile.in (BYTE_COMPILE_FLAGS): set a value specific to compile-first
which doesn't contain the setting of Emacs variable load-prefer-newer.
Add a new make hunk which byte-compiles (rather then native compiles) when the
environment variable ANCIENT is "yes".  Set the date of the .elc files built
to 1971-01-01 to cause a second compilation of them later.

* src/Makefile.in: Add an extra invocation of directory lisp's MAKE with
target compile-first and the flag environment variable ANCIENT set to yes.

* src/verbose.mk.in: When ANCIENT is yes, output ELC, not ELC+ELN for
AM_V_ELC.

3 years agoRemove matching of whitespaces in LaTeX environment names
Arash Esbati [Thu, 20 Jan 2022 18:20:34 +0000 (19:20 +0100)]
Remove matching of whitespaces in LaTeX environment names

* lisp/textmodes/ispell.el (ispell-tex-skip-alists): Don't match
arbitrary number of whitespaces in LaTeX environment names.
(bug#53390)

3 years agoUpdate documentation of 'clone-indirect-buffer-hook'
Eli Zaretskii [Thu, 20 Jan 2022 17:18:54 +0000 (19:18 +0200)]
Update documentation of 'clone-indirect-buffer-hook'

* doc/emacs/buffers.texi (Indirect Buffers):
* src/buffer.c (syms_of_buffer) <clone-indirect-buffer-hook>:
Update the documentation of 'clone-indirect-buffer-hook' due the
recent changes.
* etc/NEWS: Mention the change in where the hook is run.

* lisp/face-remap.el (face-attrs--make-indirect-safe): Doc fix.

3 years agoMake textsec-link-suspicious-p less mistrustful
Lars Ingebrigtsen [Thu, 20 Jan 2022 17:12:44 +0000 (18:12 +0100)]
Make textsec-link-suspicious-p less mistrustful

* lisp/international/textsec.el (textsec-link-suspicious-p): Scale
back the suspicion -- only warn about texts that contain a full
explicit link.

3 years agoFix tabulated-list-widen-current-column widening wrong column
Thuna [Thu, 20 Jan 2022 14:22:22 +0000 (15:22 +0100)]
Fix tabulated-list-widen-current-column widening wrong column

* tabulated-list.el (tabulated-list-widen-current-column): Account
for the padding and the content width when calculating column
width (bug#53375).
Copyright-paperwork-exempt: yes

3 years agoMake image-dired-delete-marked more resilient
Peter Münster [Thu, 20 Jan 2022 14:16:46 +0000 (15:16 +0100)]
Make image-dired-delete-marked more resilient

* lisp/image-dired.el (image-dired-delete-marked): Don't bug out
on empty buffers (bug#53385).

3 years agoFix thinko in previous hi-lock-read-face-name change
Lars Ingebrigtsen [Thu, 20 Jan 2022 13:53:12 +0000 (14:53 +0100)]
Fix thinko in previous hi-lock-read-face-name change

* lisp/hi-lock.el (hi-lock-read-face-name): Fix the string/symbol
logic.

3 years agoFix indirect font changes incorrectly affecting original buffer
Andrew Hyatt [Thu, 20 Jan 2022 13:42:31 +0000 (14:42 +0100)]
Fix indirect font changes incorrectly affecting original buffer

* lisp/face-remap.el (face-attrs--make-indirect-safe):
(clone-indirect-buffer-hook): Set up a face remapping alist
(bug#53294).

* lisp/simple.el (clone-indirect-buffer): Move the point the hook
is run.

* src/buffer.c (Fmake_indirect_buffer, syms_of_buffer): Move the
place where the clone-indirect-buffer-hook variable is defined, so
that we can call it from C.

3 years agoConsider subcommands when deciding to invoke Eshell command directly
Jim Porter [Thu, 20 Jan 2022 13:37:54 +0000 (14:37 +0100)]
Consider subcommands when deciding to invoke Eshell command directly

When an Eshell command contains an asynchronous subcommand (such as
calling an external process), it must be evaluated iteratively.  See
bug#30725.

* lisp/eshell/esh-cmd.el (eshell-invoke-command): Move most of the
logic from here...
(eshell--invoke-command-directly): ... to here. Also add checks for
subcommands.

* test/lisp/eshell/eshell-tests.el (eshell-test--max-subprocess-time):
New variable.
(eshell-wait-for-subprocess): New function.
(eshell-command-result-p): Use 'eshell-wait-for-subprocess'.
(eshell-test/interp-cmd-external): New test (bug#30725).

3 years agoRename the textsec-check function to textsec-suspicious-p
Lars Ingebrigtsen [Thu, 20 Jan 2022 13:33:36 +0000 (14:33 +0100)]
Rename the textsec-check function to textsec-suspicious-p

* lisp/net/shr.el (shr-tag-a):
* lisp/international/textsec-check.el (textsec-suspicious-p):
* lisp/gnus/message.el (message-send-mail):
* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
* etc/NEWS (like):
* doc/lispref/text.texi (Suspicious Text):
(Suspicious Text): Rename the textsec-check function to
textsec-suspicious-p.

3 years agoMake the read-face-name completion buffer display samples
Lars Ingebrigtsen [Thu, 20 Jan 2022 13:22:05 +0000 (14:22 +0100)]
Make the read-face-name completion buffer display samples

* lisp/faces.el (read-face-name): Display face samples when
completing (bug#53255).

* lisp/hi-lock.el (hi-lock-read-face-name): Use read-face-name.

3 years agoImprove the textsec-domain-suspicious-p warning message
Lars Ingebrigtsen [Thu, 20 Jan 2022 12:37:26 +0000 (13:37 +0100)]
Improve the textsec-domain-suspicious-p warning message

* lisp/international/textsec.el (textsec-domain-suspicious-p):
Improve warning message.

3 years agoFix error when describing menu items that don't have equivalent keys
Po Lu [Thu, 20 Jan 2022 12:18:29 +0000 (20:18 +0800)]
Fix error when describing menu items that don't have equivalent keys

* lisp/help-fns.el (help-fns--key-bindings): Never pass nil to
insert.

3 years agoFix UB in ebrowse
Eli Zaretskii [Thu, 20 Jan 2022 11:42:56 +0000 (13:42 +0200)]
Fix UB in ebrowse

* lib-src/ebrowse.c (matching_regexp): Avoid writing beyond the
limits of 'matching_regexp_buffer'.  Patch by Jan Stranik
<jan@stranik.org>.  (Bug#53333)

Copyright-paperwork-exempt: yes

3 years agoMake textsec-link-suspicious-p have fewer false positives
Lars Ingebrigtsen [Thu, 20 Jan 2022 11:37:31 +0000 (12:37 +0100)]
Make textsec-link-suspicious-p have fewer false positives

* lisp/international/textsec.el (textsec-link-suspicious-p):
Attempt to improve the domain-guessing logic.

3 years agoImprove how menus are described in *Help*
Lars Ingebrigtsen [Thu, 20 Jan 2022 11:03:49 +0000 (12:03 +0100)]
Improve how menus are described in *Help*

* lisp/help-fns.el (help-fns--insert-bindings): New function.
(help-fns--key-bindings): Split menu/key handling and output menu
bindings separately (bug#52870).

3 years agoMake system tooltips display in the menu bar on Haiku
Po Lu [Thu, 20 Jan 2022 10:53:49 +0000 (10:53 +0000)]
Make system tooltips display in the menu bar on Haiku

* doc/emacs/haiku.texi (Haiku Basics): Update documentation.
* src/haiku_support.cc (Highlight): Apply the hack used for
regular menus to the menu bar as well.
* src/haikumenu.c (digest_menu_items): Set help text on menu bar
if `tooltip-mode' is t and system tooltips are used.
(syms_of_haikumenu): New symbol `tooltip-mode'.

3 years agoFix Fchar_syntax for non-ASCII in unibyte buffers
Mattias Engdegård [Sun, 16 Jan 2022 10:58:00 +0000 (11:58 +0100)]
Fix Fchar_syntax for non-ASCII in unibyte buffers

Fchar_syntax did not convert unibyte characters to multibyte when the
current buffer was unibyte, in contrast to `char-syntax` in
byte-compiled code (bug#53260).

* src/bytecode.c (exec_byte_code): Call out to Fchar_syntax;
the dynamic frequency is too low to justify inlining here, and it
did lead to implementations diverging.
* src/syntax.c (Fchar_syntax): Convert non-ASCII unibyte values to
multibyte.
* test/src/syntax-tests.el (syntax-char-syntax): New test.

3 years agoRe-enable some textsec-tests after recent bidi.c fix
Lars Ingebrigtsen [Thu, 20 Jan 2022 10:06:58 +0000 (11:06 +0100)]
Re-enable some textsec-tests after recent bidi.c fix

3 years agoIn Eshell, allow "-n" to suppress the trailing newline for "plain" echo
Jim Porter [Thu, 20 Jan 2022 09:35:38 +0000 (10:35 +0100)]
In Eshell, allow "-n" to suppress the trailing newline for "plain" echo

* doc/misc/eshell.texi (Built-in commands): Expand on the
documentation of echo (bug#27361).
* lisp/eshell/em-basic.el (eshell-echo): Respect OUTPUT-NEWLINE even
when 'eshell-plain-echo-behavior' is non-nil.
(eshell/echo): Add "-N" option and recommend its use over "-n" in
Lisp-friendly echo.
(eshell/printnl): Simplify; 'eshell-stringify' is equivalent to
calling 'eshell-echo' here.

3 years agoFix 'bidi-find-overridden-directionality' for Lisp strings
Eli Zaretskii [Thu, 20 Jan 2022 10:02:27 +0000 (12:02 +0200)]
Fix 'bidi-find-overridden-directionality' for Lisp strings

* src/bidi.c (bidi_find_first_overridden): Don't use ZV for Lisp
strings.  Reported by Lars Ingebrigtsen <larsi@gnus.org>.

3 years agoFix execute-extended-command-for-buffer in fundamental-mode
Lars Ingebrigtsen [Thu, 20 Jan 2022 10:00:26 +0000 (11:00 +0100)]
Fix execute-extended-command-for-buffer in fundamental-mode

* lisp/simple.el (execute-extended-command-for-buffer): Protect
against the current local map being nil (bug#52907).

3 years agoMake the undelete-frame-mode menu item a toggle
Po Lu [Thu, 20 Jan 2022 09:55:07 +0000 (17:55 +0800)]
Make the undelete-frame-mode menu item a toggle

* lisp/menu-bar.el (menu-bar-file-menu): Make the undelete frame
mode option a toggle.  (bug#53382)
Also enable some options that were disabled on NS, but should no
longer be since NS now supports the tab bar.

3 years agoAdd workaround to handle a problem with Enlightenment WM (Bug#53298)
Martin Rudalics [Thu, 20 Jan 2022 09:30:08 +0000 (10:30 +0100)]
Add workaround to handle a problem with Enlightenment WM (Bug#53298)

* src/xterm.c (handle_one_xevent): Handle setting of variable
'x_set_frame_visibility_more_laxly' when receiving an Expose or
FocusIn event (Bug#53298).
(Qexpose): Define symbol.
(x_set_frame_visibility_more_laxly): New Lisp variable.
* etc/PROBLEMS: Mention frame redraw problem with the
Enlightenment WM and 'x-set-frame-visibility-more-laxly'
workaround.

3 years agoMake key-valid-p work in Turkey
Lars Ingebrigtsen [Thu, 20 Jan 2022 09:19:23 +0000 (10:19 +0100)]
Make key-valid-p work in Turkey

* lisp/keymap.el (key-valid-p): Inhibit case folding, otherwise
(key-valid-p "I") would return nil in tr_TR environments.

3 years agoTweak textsec-link-suspicious-p
Lars Ingebrigtsen [Thu, 20 Jan 2022 09:10:01 +0000 (10:10 +0100)]
Tweak textsec-link-suspicious-p

* lisp/international/textsec.el (textsec-link-suspicious-p): Don't
mark dates as suspicious.

3 years agoAdd test for bug#51733
Lars Ingebrigtsen [Thu, 20 Jan 2022 08:54:38 +0000 (09:54 +0100)]
Add test for bug#51733

3 years agoImprove documentation of textsec
Eli Zaretskii [Thu, 20 Jan 2022 09:04:41 +0000 (11:04 +0200)]
Improve documentation of textsec

* lisp/international/textsec-check.el (textsec-check): Doc fixes.

* doc/lispref/text.texi (Suspicious Text): Improve wording and
indexing.

3 years agoAllow suspicious names with some forms of bidi controls
Lars Ingebrigtsen [Thu, 20 Jan 2022 08:52:08 +0000 (09:52 +0100)]
Allow suspicious names with some forms of bidi controls

* lisp/international/textsec.el (textsec-name-suspicious-p): Allow
names with bidi-find-overridden-directionality.

3 years agoImprove textsec-domain-suspicious-p message
Lars Ingebrigtsen [Thu, 20 Jan 2022 08:36:04 +0000 (09:36 +0100)]
Improve textsec-domain-suspicious-p message

* lisp/international/textsec.el (textsec-domain-suspicious-p):
Improve warning message.

3 years agoAllow disabling 'undelete-frame-mode' from the menu bar
Eli Zaretskii [Thu, 20 Jan 2022 08:05:05 +0000 (10:05 +0200)]
Allow disabling 'undelete-frame-mode' from the menu bar

* lisp/menu-bar.el (menu-bar-file-menu): Add
'disable-undelete-frame-mode' menu item.  (Bug#53382)

3 years agoDocument textsec
Lars Ingebrigtsen [Thu, 20 Jan 2022 07:38:16 +0000 (08:38 +0100)]
Document textsec

* doc/lispref/elisp.texi (Top): Add menu.
* doc/lispref/text.texi (Text): Add menu.
(Suspicious Text): New node.

* lisp/international/textsec-check.el (textsec-check): Adjust doc
string.

3 years agoCheck link text domain suspiciousness
Lars Ingebrigtsen [Thu, 20 Jan 2022 07:01:20 +0000 (08:01 +0100)]
Check link text domain suspiciousness

* lisp/international/textsec.el (textsec-link-suspicious-p): Check
whether the domain in the link text is suspicious.

3 years agoExpand textsec-link-suspicious-p checking
Lars Ingebrigtsen [Thu, 20 Jan 2022 06:57:13 +0000 (07:57 +0100)]
Expand textsec-link-suspicious-p checking

* lisp/international/textsec.el (textsec-link-suspicious-p): Check
the text more thoroughly for link-like things.

3 years agoImprove textsec-domain-suspicious-p message
Lars Ingebrigtsen [Thu, 20 Jan 2022 06:45:33 +0000 (07:45 +0100)]
Improve textsec-domain-suspicious-p message

* lisp/international/textsec.el (textsec-domain-suspicious-p):
Ensure that we're not confusing the user if there's a directional
override in the string we're checking.

3 years agoAdd new bidi-string-strip-control-characters function
Lars Ingebrigtsen [Thu, 20 Jan 2022 06:44:49 +0000 (07:44 +0100)]
Add new bidi-string-strip-control-characters function

* lisp/international/characters.el
(bidi-string-strip-control-characters): New function.

3 years agoMake article--check-suspicious-addresses more resilient
Lars Ingebrigtsen [Thu, 20 Jan 2022 05:42:56 +0000 (06:42 +0100)]
Make article--check-suspicious-addresses more resilient

* lisp/gnus/gnus-art.el (article--check-suspicious-addresses): Be
more resilient to junk in headers.  (But all this should be rewritten
eventually, because the entire process is way too convoluted.)

3 years agoMake `nil' values of the `:position' underline property work correctly
Po Lu [Thu, 20 Jan 2022 05:06:51 +0000 (13:06 +0800)]
Make `nil' values of the `:position' underline property work correctly

* src/xfaces.c (Finternal_set_lisp_face_attribute): Handle cases
where the underline property `:position' is nil.

3 years agoPort hourglass display to XCB
Po Lu [Thu, 20 Jan 2022 03:27:17 +0000 (11:27 +0800)]
Port hourglass display to XCB

* src/xterm.c (x_show_hourglass):
(x_hide_hourglass): Use straightforward translations to XCB if
available.

3 years agoGet rid of calls to XRenderQueryExtension after terminal initialization
Po Lu [Thu, 20 Jan 2022 02:48:25 +0000 (10:48 +0800)]
Get rid of calls to XRenderQueryExtension after terminal initialization

* src/image.c (x_create_xrender_picture):
(Fimage_transforms_p): Use `xrender_supported_p'.

* src/xterm.c (x_term_init): Query for XRender support and
extension versions.

* src/xterm.h (struct x_display_info): New fields
`xrender_supported_p', `xrender_major' and `xrender_minor'.

3 years agoImplement selection ownership on Haiku
Po Lu [Thu, 20 Jan 2022 01:01:52 +0000 (01:01 +0000)]
Implement selection ownership on Haiku

* lisp/term/haiku-win.el (haiku-selection-owner-p): New
declaration.
(gui-backend-selection-owner-p): Implement using newly exposed
primitive.

* src/haiku_select.cc
(count_clipboard, count_primary, count_secondary): New
variables for tracking selection ownership.
(BClipboard_set_system_data):
(BClipboard_set_primary_selection_data):
(BClipboard_set_secondary_selection_data): Set ownership
variables.
(BClipboard_owns_clipboard):
(BClipboard_owns_primary):
(BClipboard_owns_secondary): New functions.

* src/haikuselect.c (Fhaiku_selection_owner_p): New function.
(syms_of_haikuselect): Define new subr.
* src/haikuselect.h: New prototypes.

3 years agoSuspend temp .elc production when native compiling till when necessary
Andrea Corallo [Wed, 19 Jan 2022 20:07:00 +0000 (21:07 +0100)]
Suspend temp .elc production when native compiling till when necessary

* lisp/emacs-lisp/bytecomp.el (byte-to-native-output-buffer-file):
Rename from `byte-to-native-output-file'.
(byte-write-target-file): Update.
(byte-compile-file): Write the temporary .elc only when not native
compiling.
(byte-compile-file): Kill the .elc buffer only when not native
compiling.
* lisp/emacs-lisp/comp.el (batch-byte+native-compile): Instead of just
renaming the temporary .elc make use of `byte-write-target-file' to
write it down and kill the temporary buffer.

3 years ago* Move some code in in `byte-write-target-file'.
Andrea Corallo [Wed, 19 Jan 2022 19:44:12 +0000 (20:44 +0100)]
* Move some code in in `byte-write-target-file'.

* lisp/emacs-lisp/bytecomp.el (byte-write-target-file): New function
spilling code from `byte-compile-file'.

3 years agoMake article--check-suspicious-addresses more resilient
Lars Ingebrigtsen [Wed, 19 Jan 2022 18:44:29 +0000 (19:44 +0100)]
Make article--check-suspicious-addresses more resilient

* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
Don't bug out on mbox-less addresses.

3 years agoTweak the previous suspicious Message change
Lars Ingebrigtsen [Wed, 19 Jan 2022 18:10:45 +0000 (19:10 +0100)]
Tweak the previous suspicious Message change

* lisp/gnus/message.el (message-check-recipients)
(message-send-mail): Move the check to after encoding.

3 years agoMake Message check for invalid recipients before sending
Lars Ingebrigtsen [Wed, 19 Jan 2022 18:00:13 +0000 (19:00 +0100)]
Make Message check for invalid recipients before sending

* lisp/gnus/message.el (message-check-recipients): Check for
suspicious addresses before sending (bug#51733).

3 years agoMake textsec-mixed-numbers-p actually work
Lars Ingebrigtsen [Wed, 19 Jan 2022 17:50:40 +0000 (18:50 +0100)]
Make textsec-mixed-numbers-p actually work

* lisp/international/textsec.el (textsec-mixed-numbers-p): Fix the
test.

3 years agoMake Gnus check for suspicious headers
Lars Ingebrigtsen [Wed, 19 Jan 2022 17:43:34 +0000 (18:43 +0100)]
Make Gnus check for suspicious headers

* lisp/gnus/gnus-art.el (gnus-treat-suspicious-headers): New user
option.
(gnus-article-treat-suspicious-headers): New function.
(article-decode-encoded-words): Hook into the machinery to check
headers.
(article--check-suspicious-addresses): New function.

3 years ago; * lisp/international/textsec.el (textsec-url-suspicious-p): Fix a typo.
Eli Zaretskii [Wed, 19 Jan 2022 17:26:46 +0000 (19:26 +0200)]
; * lisp/international/textsec.el (textsec-url-suspicious-p): Fix a typo.

3 years agoAdd text for suspicious links
Lars Ingebrigtsen [Wed, 19 Jan 2022 16:50:21 +0000 (17:50 +0100)]
Add text for suspicious links

* lisp/international/textsec-check.el (textsec-check): Note `link'.
(textsec-propertize): Fix typo.

* lisp/international/textsec.el (textsec-link-suspicious-p): New
function.

* lisp/net/shr.el (shr-tag-a): Check for sus links.

3 years agoDon't overwrite the link text in shr-tag-a for suspicious URLs
Lars Ingebrigtsen [Wed, 19 Jan 2022 16:17:42 +0000 (17:17 +0100)]
Don't overwrite the link text in shr-tag-a for suspicious URLs

* lisp/net/shr.el (shr-tag-a): Tweak how the suspiciousness
warning is handled.

3 years ago; Fix bug#53367
Michael Albinus [Wed, 19 Jan 2022 16:16:08 +0000 (17:16 +0100)]
; Fix bug#53367

* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p):
Handle small buffers.  (Bug#53367)

3 years agoFix thinko in textsec-url-suspicious-p
Lars Ingebrigtsen [Wed, 19 Jan 2022 15:39:13 +0000 (16:39 +0100)]
Fix thinko in textsec-url-suspicious-p

* lisp/international/textsec.el (textsec-url-suspicious-p): Don't
bug out on non-HTTP URLs.

3 years agoMake shr mark links with suspicious URLs
Lars Ingebrigtsen [Wed, 19 Jan 2022 15:37:05 +0000 (16:37 +0100)]
Make shr mark links with suspicious URLs

* lisp/international/textsec-check.el (textsec-propertize): New
function.
(textsec-check): Only check, don't alter STRING.

* lisp/international/textsec.el (textsec-url-suspicious-p): New
function.

* lisp/net/shr.el (shr-tag-a): Mark suspicious links.

3 years agoAdd new file textsec-check.el
Lars Ingebrigtsen [Wed, 19 Jan 2022 15:22:16 +0000 (16:22 +0100)]
Add new file textsec-check.el

* lisp/international/textsec-check.el: New file.
* lisp/international/textsec.el
(textsec-email-address-header-suspicious-p): Rename.

3 years agoMark whole-script confusables as suspicious domains
Lars Ingebrigtsen [Wed, 19 Jan 2022 14:52:20 +0000 (15:52 +0100)]
Mark whole-script confusables as suspicious domains

* lisp/international/textsec.el (textsec-domain-suspicious-p):
Consider domain names that are whole-script confusables with ASCII
to be suspicious.  (I think this is what the Unicode standard is
recommending, but I'm not 100% sure.)

3 years agoSplit textsec-email-address-suspicious-p into two functions
Lars Ingebrigtsen [Wed, 19 Jan 2022 14:21:43 +0000 (15:21 +0100)]
Split textsec-email-address-suspicious-p into two functions

* lisp/international/textsec.el
(textsec-email-address-suspicious-p): Made into its own function.
(textsec-email-suspicious-p): Use it and adjust doc strings.

3 years ago; Minor fix in 'textsec-domain-suspicious-p'
Eli Zaretskii [Wed, 19 Jan 2022 14:19:36 +0000 (16:19 +0200)]
; Minor fix in 'textsec-domain-suspicious-p'

* lisp/international/textsec.el (textsec-domain-suspicious-p): Fix
explanation string.

3 years agoMake textsec-suspicious-nonspacing-p work on marks
Lars Ingebrigtsen [Wed, 19 Jan 2022 13:42:39 +0000 (14:42 +0100)]
Make textsec-suspicious-nonspacing-p work on marks

* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
We're only interested in nonspacing marks, not control characters
in this test.

3 years agoFix recent change for big endian systems where `Atom' is 64 bits
Po Lu [Wed, 19 Jan 2022 13:26:38 +0000 (21:26 +0800)]
Fix recent change for big endian systems where `Atom' is 64 bits

* src/xfns.c (x_create_tip_frame): Cast atoms to xcb_atom_t
and pass a reference to that to xcb_change_property instead.

3 years ago* lisp/cus-face.el (custom-face-attributes): Expose the lambdas
Stefan Monnier [Wed, 19 Jan 2022 13:18:19 +0000 (08:18 -0500)]
* lisp/cus-face.el (custom-face-attributes): Expose the lambdas

3 years ago; Yet another improvement of doc strings in textsec
Eli Zaretskii [Wed, 19 Jan 2022 12:00:45 +0000 (14:00 +0200)]
; Yet another improvement of doc strings in textsec

* lisp/international/textsec.el (textsec-local-address-suspicious-p)
(textsec-name-suspicious-p): Fix wording of doc strings.

3 years agoPort some X11 tooltip code to XCB
Po Lu [Wed, 19 Jan 2022 11:06:53 +0000 (19:06 +0800)]
Port some X11 tooltip code to XCB

* configure.ac: Require `xcb-aux' to be present before using
XCB.
* src/xfns.c (x_sync):
(x_create_tip_frame):
(Fx_show_tip): Port window related code to XCB.

3 years agoDeconfuse textsec doc strings slightly
Lars Ingebrigtsen [Wed, 19 Jan 2022 10:34:48 +0000 (11:34 +0100)]
Deconfuse textsec doc strings slightly

* lisp/international/textsec.el (textsec-name-suspicious-p):
(textsec-domain-suspicious-p):
(textsec-local-address-suspicious-p):
(textsec-name-suspicious-p):
(textsec-suspicious-nonspacing-p):
(textsec-email-suspicious-p): Suspiciosness isn't only about
homoglyphs, so don't claim so in the doc strings.

3 years agoImprove textsec doc strings
Robert Pluim [Wed, 19 Jan 2022 10:20:06 +0000 (11:20 +0100)]
Improve textsec doc strings

* lisp/international/textsec.el (textsec-domain-suspicious-p)
(textsec-local-address-suspicious-p, textsec-name-suspicious-p)
(textsec-suspicious-nonspacing-p): Improve doc strings.

3 years agoUse Cairo XCB surfaces when XCB is available
Po Lu [Wed, 19 Jan 2022 09:39:04 +0000 (17:39 +0800)]
Use Cairo XCB surfaces when XCB is available

This lets us get at goodies such as shm support, which aren't
available with the xlib surface.  (bug#52120)

* configure.ac: Test for cairo-xcb if cairo is available on X.
* src/xterm.c (USE_CAIRO_XCB_SURFACE): New define.
(x_begin_cr_clip): Create XCB surfaces if available.
(x_try_cr_xlib_drawable):
(x_scroll_run): Handle XCB surfaces.
(x_term_init): Find XCB visualtype structure.
* src/xterm.h (struct x_display_info): New field `xcb_visual'.
* src/xwidget.c (x_draw_xwidget_glyph_string): Fix integer
overflow.

3 years agoMinor improvement in textsec diagnostics
Eli Zaretskii [Wed, 19 Jan 2022 08:57:03 +0000 (10:57 +0200)]
Minor improvement in textsec diagnostics

* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
Clarify wording of the strings returned to explain the suspicious
use of nonspacing characters.

3 years ago; * etc/NEWS ('use-system-tooltips'): Improve wording.
Eli Zaretskii [Wed, 19 Jan 2022 08:41:11 +0000 (10:41 +0200)]
; * etc/NEWS ('use-system-tooltips'): Improve wording.

3 years agoRespect structure of Tramp archive file names
Michael Albinus [Wed, 19 Jan 2022 08:07:49 +0000 (09:07 +0100)]
Respect structure of Tramp archive file names

* lisp/net/tramp.el (tramp-make-tramp-file-name):
Respect structure of archive file names.

3 years ago* src/haikufns.c (Fx_display_mm_width): Fix copy-paste error.
Po Lu [Wed, 19 Jan 2022 06:00:13 +0000 (06:00 +0000)]
* src/haikufns.c (Fx_display_mm_width): Fix copy-paste error.

3 years agoRename system tooltip variables to `use-system-tooltips'
Po Lu [Wed, 19 Jan 2022 05:12:18 +0000 (13:12 +0800)]
Rename system tooltip variables to `use-system-tooltips'

* doc/emacs/frames.texi (Tooltips):
* doc/emacs/haiku.texi (Haiku Basics):
* doc/lispref/display.texi (Tooltips): Document
`use-system-tooltips' instead.

* etc/NEWS: Announce new option.
* lisp/cus-start.el (standard): Add new option.

* lisp/term/haiku-win.el (haiku-use-system-tooltips):
* lisp/term/pgtk-win.el (x-gtk-use-system-tooltips):
* lisp/term/x-win.el (x-gtk-use-system-tooltips): Add aliases
for old options.

* src/frame.c (syms_of_frame): New variable
`use-system-tooltips'.

* src/haikufns.c (Fx_show_tip):
(syms_of_haikufns):
* src/pgtkfns.c (x_hide_tip):
(Fx_show_tip):
(syms_of_pgtkfns):
* src/xfns.c (x_hide_tip):
(Fx_show_tip):
(syms_of_xfns): Use `use-system-tooltips' instead of the old
platform dependent options.

3 years agoUse more reliable timestamps for some kinds of events on Haiku
Po Lu [Wed, 19 Jan 2022 02:08:52 +0000 (02:08 +0000)]
Use more reliable timestamps for some kinds of events on Haiku

* src/haiku_support.cc (DispatchMessage):
(MouseMoved):
(MouseDown):
(MouseUp): Set `time' field of event structures to input server
time.
* src/haiku_support.h (struct haiku_key_event):
(struct haiku_mouse_motion_event):
(struct haiku_button_event): New field `time'.
* src/haikuterm.c (haiku_read_socket): Use input server time
if provided.

3 years agoFix event timestamp generation on Haiku
Po Lu [Wed, 19 Jan 2022 01:14:19 +0000 (01:14 +0000)]
Fix event timestamp generation on Haiku

* src/haikuterm.c (haiku_read_socket): Use miliseconds for event
time.

3 years agocl-generic-tests.el: Fix warning
Stefan Monnier [Tue, 18 Jan 2022 21:53:28 +0000 (16:53 -0500)]
cl-generic-tests.el: Fix warning

* test/lisp/emacs-lisp/cl-generic-tests.el (ert): Require at run-time
for `ert--get-explainer`.

3 years agoVC: Fix tests for SCCS and Mtn
Stefan Monnier [Tue, 18 Jan 2022 21:42:19 +0000 (16:42 -0500)]
VC: Fix tests for SCCS and Mtn

* test/lisp/vc/vc-tests.el: Prefer closures to `(lambda ...).
(vc-test-mtn05-rename-file, vc-test-mtn06-version-diff): Skip.

* lisp/vc/vc.el (vc-responsible-backend): Fix vc-test--register on SCCS.

3 years agoautoload.el: Fix corner case and avoid encoding issues
Stefan Monnier [Tue, 18 Jan 2022 21:40:32 +0000 (16:40 -0500)]
autoload.el: Fix corner case and avoid encoding issues

* lisp/emacs-lisp/autoload.el (autoload-print-form): Don't burp when
autoloading a `cl-defmethod`.
(autoload-rubric): Support non-UTF-8 chars and enforce Unix EOLs.