Merge from origin/emacs-28

0545c70c16 (origin/emacs-28) ; * src/keyboard.c (readable_events): Ad...
805ed8d318 Fix todo-mode AOT test failures (bug#51308)
8f42ff31f6 Fix hi-lock AOT test failures (bug#51308)
8002fcd4b9 Fix socks test
4540130312 ; Fix typo
59df93e2dd * lisp/help.el (help--analyze-key): Add new arg BUFFER (bu...
cb8b12b56d Improve docstrings and NEWS item of 'repeat-mode'
06fe499614 * lisp/tab-bar.el (tab-bar-menu-bar): New command (bug#512...
8358da9c4c Display a tab bar item as sunken when appropriate
29fdc65860 Fix tab bar item highlight when a mouse click is dropped
7236592668 Refer to mouse-highlight from make-pointer-invisible docst...
cf4394a397 * etc/PROBLEMS: Add hex codepoint for NO-BREAK SPACE
2d647e88fa Describe how to debug fontconfig issues
c916040921 Adapt Tramp tests
1bb14f93f1 Convert ANSI color definitions in themes to use faces (e.g...
8e7cd29712 Revert "Revert back to using ESC as viper-ESC-key again"
91d71b38a3 Fix inset rectangle corners when sides aren't drawn (bug#5...
5c1a575ef4 Don't use color escape sequences in vc-git-expanded-log-entry
d7f595cc89 Code cleanup in tramp-tests.el
548a5db611 ; etc/NEWS fix wording

# Conflicts:
#	etc/NEWS
This commit is contained in:
Glenn Morris 2021-10-21 08:02:57 -07:00
commit bd7b5f72a9
24 changed files with 344 additions and 176 deletions

View file

@ -3219,21 +3219,22 @@ batch mode.
* New Modes and Packages in Emacs 28.1
+++
** New transient mode 'repeat-mode' to allow shorter key sequences.
** New mode 'repeat-mode' to allow shorter key sequences.
Type 'M-x repeat-mode RET' to enable this mode. You can then type
'C-x u u' instead of 'C-x u C-x u' to undo many changes, 'C-x o o'
instead of 'C-x o C-x o' to switch windows, 'C-x { { } } ^ ^ v v' to
resize the selected window interactively, 'M-g n n p p' to navigate
next-error matches. Any other key exits transient mode and then is
executed normally. 'repeat-exit-key' defines an additional key to
exit mode like 'isearch-exit' ('RET'). The user option
'repeat-exit-timeout' specifies the number of seconds of idle time to
break the repetition chain automatically. With 'repeat-keep-prefix'
you can keep the prefix arg of the previous command. For example,
this can help to reverse the window navigation direction with
e.g. 'C-x o M-- o o'. Also it can help to set a new step with
e.g. 'C-x { C-5 { { {', which will set the window resizing step to 5
columns.
next-error matches. Any other key exits this temporarily enabled
transient mode that supports shorter keys, and then after exiting
from this mode the default key binding is used for the last typed key.
'repeat-exit-key' defines an additional key to exit mode like
'isearch-exit' ('RET'). The user option 'repeat-exit-timeout'
specifies the number of seconds of idle time to break the repetition
chain automatically. With 'repeat-keep-prefix' you can keep the
prefix arg of the previous command. For example, this can help to
reverse the window navigation direction with e.g. 'C-x o M-- o o'.
Also it can help to set a new step with e.g. 'C-x { C-5 { { {',
which will set the window resizing step to 5 columns.
---
** New themes 'modus-vivendi' and 'modus-operandi'.

View file

@ -751,6 +751,18 @@ Try removing or moving aside "$XDG_CONFIG_HOME/fontconfig/conf.d" and
"$XDG_CONFIG_HOME/fontconfig/fonts.conf"
($XDG_CONFIG_HOME is treated as "~/.config" if not set)
Running Emacs as
FC_DEBUG=1024 emacs
will cause fontconfig to output information about which configuration
files it is reading. Running Emacs as
FC_DEBUG=1 emacs
will result in information about the results of fontconfig's font
matching (including the filename(s) of the resulting fonts).
*** This can occur when two different versions of FontConfig are used.
For example, XFree86 4.3.0 has one version and Gnome usually comes
with a newer version. Emacs compiled with Gtk+ will then use the
@ -763,7 +775,7 @@ same version of FontConfig as the rest of the system uses. For KDE,
it is sufficient to recompile Qt.
*** Some fonts have a missing glyph and no default character. This is
known to occur for character number 160 (no-break space) in some
known to occur for character number 160 (no-break space, U+A0) in some
fonts, such as Lucida but Emacs sets the display table for the unibyte
and Latin-1 version of this character to display a space.

View file

@ -113,12 +113,34 @@ Ansi-Color faces are included.")
`(flyspell-duplicate ((,class (:weight unspecified :foreground unspecified
:slant unspecified :underline ,orange))))
`(flyspell-incorrect ((,class (:weight unspecified :foreground unspecified
:slant unspecified :underline ,redpurple)))))
(custom-theme-set-variables
'dichromacy
`(ansi-color-names-vector ["black" ,vermillion ,bluegreen ,yellow
,blue ,redpurple ,skyblue "white"])))
:slant unspecified :underline ,redpurple))))
;; ANSI color
`(ansi-color-black ((,class (:background "black" :foreground "black"))))
`(ansi-color-red ((,class (:background ,vermillion
:foreground ,vermillion))))
`(ansi-color-green ((,class (:background ,bluegreen
:foreground ,bluegreen))))
`(ansi-color-yellow ((,class (:background ,yellow :foreground ,yellow))))
`(ansi-color-blue ((,class (:background ,blue :foreground ,blue))))
`(ansi-color-magenta ((,class (:background ,redpurple
:foreground ,redpurple))))
`(ansi-color-cyan ((,class (:background ,skyblue :foreground ,skyblue))))
`(ansi-color-white ((,class (:background "gray90" :foreground "gray90"))))
`(ansi-color-bright-black ((,class (:background "black"
:foreground "black"))))
`(ansi-color-bright-red ((,class (:background ,vermillion
:foreground ,vermillion))))
`(ansi-color-bright-green ((,class (:background ,bluegreen
:foreground ,bluegreen))))
`(ansi-color-bright-yellow ((,class (:background ,yellow
:foreground ,yellow))))
`(ansi-color-bright-blue ((,class (:background ,blue :foreground ,blue))))
`(ansi-color-bright-magenta ((,class (:background ,redpurple
:foreground ,redpurple))))
`(ansi-color-bright-cyan ((,class (:background ,skyblue
:foreground ,skyblue))))
`(ansi-color-bright-white ((,class (:background "gray90"
:foreground "gray90"))))))
(provide-theme 'dichromacy)

View file

@ -287,6 +287,25 @@ more...")
`(message-header-xheader ((,class ,mail-header-other)))
`(message-mml ((,class (:foreground "forest green"))))
;; ANSI colors.
`(ansi-color-bold ((,class (:weight bold))))
`(ansi-color-black ((,class (:foreground "black" :background "black"))))
`(ansi-color-red ((,class (:foreground "red3" :background "red3"))))
`(ansi-color-green ((,class (:foreground "forest green" :background "forest green"))))
`(ansi-color-yellow ((,class (:foreground "yellow3" :background "yellow3"))))
`(ansi-color-blue ((,class (:foreground "blue" :background "blue"))))
`(ansi-color-magenta ((,class (:foreground "magenta3" :background "magenta3"))))
`(ansi-color-cyan ((,class (:foreground "deep sky blue" :background "deep sky blue"))))
`(ansi-color-white ((,class (:foreground "gray60" :background "gray60"))))
`(ansi-color-bright-black ((,class (:foreground "gray30" :background "gray30"))))
`(ansi-color-bright-red ((,class (:foreground "red1" :background "red1"))))
`(ansi-color-bright-green ((,class (:foreground "lime green" :background "lime green"))))
`(ansi-color-bright-yellow ((,class (:foreground "yellow2" :background "yellow2"))))
`(ansi-color-bright-blue ((,class (:foreground "dodger blue" :background "dodger blue"))))
`(ansi-color-bright-magenta ((,class (:foreground "magenta" :background "magenta"))))
`(ansi-color-bright-cyan ((,class (:foreground "sky blue" :background "sky blue"))))
`(ansi-color-bright-white ((,class (:foreground "gray80" :background "gray80"))))
;; Diff.
`(diff-added ((,class ,diff-added)))
`(diff-changed ((,class ,diff-changed)))
@ -1035,12 +1054,6 @@ more...")
;; highlight-sexp-mode.
'(hl-sexp-background-color "#efebe9")
'(ansi-color-faces-vector
[default default default italic underline success warning error])
;; Colors used in Shell mode.
'(ansi-color-names-vector
["black" "red3" "ForestGreen" "yellow3" "blue" "magenta3" "DeepSkyBlue" "gray50"])
)
;;;###autoload

View file

@ -101,12 +101,33 @@
`(message-header-subject ((,class (:foreground "#dbdb95"))))
`(message-header-to ((,class (:foreground "#00ede1"))))
`(message-cited-text ((,class (:foreground "#74af68"))))
`(message-separator ((,class (:foreground "#23d7d7"))))))
(custom-theme-set-variables
'misterioso
'(ansi-color-names-vector ["#2d3743" "#ff4242" "#74af68" "#dbdb95"
"#34cae2" "#008b8b" "#00ede1" "#e1e1e0"]))
`(message-separator ((,class (:foreground "#23d7d7"))))
;; ANSI colors
`(ansi-color-black ((,class (:background "#2d3743" :foreground "#2d3743"))))
`(ansi-color-red ((,class (:background "#da3938" :foreground "#da3938"))))
`(ansi-color-green ((,class (:background "#74af68" :foreground "#74af68"))))
`(ansi-color-yellow ((,class (:background "#dbdb95" :foreground "#dbdb95"))))
`(ansi-color-blue ((,class (:background "#34cae2" :foreground "#34cae2"))))
`(ansi-color-magenta ((,class (:background "#b33c97"
:foreground "#b33c97"))))
`(ansi-color-cyan ((,class (:background "#008b8b" :foreground "#008b8b"))))
`(ansi-color-white ((,class (:background "#e1e1e0" :foreground "#e1e1e0"))))
`(ansi-color-bright-black ((,class (:background "#415160"
:foreground "#415160"))))
`(ansi-color-bright-red ((,class (:background "#ff4242"
:foreground "#ff4242"))))
`(ansi-color-bright-green ((,class (:background "#74cd65"
:foreground "#74cd65"))))
`(ansi-color-bright-yellow ((,class (:background "#ffad29"
:foreground "#ffad29"))))
`(ansi-color-bright-blue ((,class (:background "#59e9ff"
:foreground "#59e9ff"))))
`(ansi-color-bright-magenta ((,class (:background "#ed74cd"
:foreground "#ed74cd"))))
`(ansi-color-bright-cyan ((,class (:background "#00ede1"
:foreground "#00ede1"))))
`(ansi-color-bright-white ((,class (:background "#eeeeec"
:foreground "#eeeeec"))))))
(provide-theme 'misterioso)

View file

@ -45,7 +45,9 @@ Semantic, and Ansi-Color faces are included.")
(alum-4 "#888a85") (alum-5 "#555753") (alum-6 "#2e3436")
;; Not in Tango palette; used for better contrast.
(cham-0 "#b4fa70") (blue-0 "#8cc4ff") (plum-0 "#e9b2e3")
(red-0 "#ff4b4b") (alum-5.5 "#41423f") (alum-7 "#212526"))
(red-0 "#ff4b4b") (alum-5.5 "#41423f") (alum-7 "#212526")
;; Not in Tango palette; used for ANSI cyan.
(cyan-1 "#34e2e2") (cyan-2 "#06989a"))
(custom-theme-set-faces
'tango-dark
@ -162,12 +164,31 @@ Semantic, and Ansi-Color faces are included.")
`(semantic-decoration-on-unparsed-includes
((,class (:background ,alum-5.5))))
`(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))))
(custom-theme-set-variables
'tango-dark
`(ansi-color-names-vector [,alum-7 ,red-0 ,cham-0 ,butter-1
,blue-1 ,plum-1 ,blue-0 ,alum-1])))
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1))))
;; ANSI colors
`(ansi-color-black ((,class (:background ,alum-7 :foreground ,alum-7))))
`(ansi-color-red ((,class (:background ,red-1 :foreground ,red-1))))
`(ansi-color-green ((,class (:background ,cham-2 :foreground ,cham-2))))
`(ansi-color-yellow ((,class (:background ,butter-2 :foreground ,butter-2))))
`(ansi-color-blue ((,class (:background ,blue-2 :foreground ,blue-2))))
`(ansi-color-magenta ((,class (:background ,plum-1 :foreground ,plum-1))))
`(ansi-color-cyan ((,class (:background ,cyan-2 :foreground ,cyan-2))))
`(ansi-color-white ((,class (:background ,alum-2 :foreground ,alum-2))))
`(ansi-color-bright-black ((,class (:background ,alum-5
:foreground ,alum-5))))
`(ansi-color-bright-red ((,class (:background ,red-0 :foreground ,red-0))))
`(ansi-color-bright-green ((,class (:background ,cham-1
:foreground ,cham-1))))
`(ansi-color-bright-yellow ((,class (:background ,butter-1
:foreground ,butter-1))))
`(ansi-color-bright-blue ((,class (:background ,blue-0
:foreground ,blue-0))))
`(ansi-color-bright-magenta ((,class (:background ,plum-0
:foreground ,plum-0))))
`(ansi-color-bright-cyan ((,class (:background ,cyan-1
:foreground ,cyan-1))))
`(ansi-color-bright-white ((,class (:background ,alum-1
:foreground ,alum-1))))))
(provide-theme 'tango-dark)

View file

@ -44,7 +44,9 @@ Semantic, and Ansi-Color faces are included.")
(alum-1 "#eeeeec") (alum-2 "#d3d7cf") (alum-3 "#babdb6")
(alum-4 "#888a85") (alum-5 "#5f615c") (alum-6 "#2e3436")
;; Not in Tango palette; used for better contrast.
(cham-4 "#346604") (blue-0 "#8cc4ff") (orange-4 "#b35000"))
(cham-4 "#346604") (blue-0 "#8cc4ff") (orange-4 "#b35000")
;; Not in Tango palette; used for ANSI cyan.
(cyan-1 "#34e2e2") (cyan-2 "#06989a"))
(custom-theme-set-faces
'tango
@ -145,12 +147,31 @@ Semantic, and Ansi-Color faces are included.")
`(semantic-decoration-on-unparsed-includes
((,class (:underline ,orange-3))))
`(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))))
(custom-theme-set-variables
'tango
`(ansi-color-names-vector [,alum-6 ,red-3 ,cham-3 ,butter-3
,blue-3 ,plum-3 ,blue-1 ,alum-1])))
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1))))
;; ANSI colors
`(ansi-color-black ((,class (:background ,alum-6 :foreground ,alum-6))))
`(ansi-color-red ((,class (:background ,red-2 :foreground ,red-2))))
`(ansi-color-green ((,class (:background ,cham-3 :foreground ,cham-3))))
`(ansi-color-yellow ((,class (:background ,butter-3 :foreground ,butter-3))))
`(ansi-color-blue ((,class (:background ,blue-2 :foreground ,blue-2))))
`(ansi-color-magenta ((,class (:background ,plum-2 :foreground ,plum-2))))
`(ansi-color-cyan ((,class (:background ,cyan-2 :foreground ,cyan-2))))
`(ansi-color-white ((,class (:background ,alum-2 :foreground ,alum-2))))
`(ansi-color-bright-black ((,class (:background ,alum-5
:foreground ,alum-5))))
`(ansi-color-bright-red ((,class (:background ,red-1 :foreground ,red-1))))
`(ansi-color-bright-green ((,class (:background ,cham-1
:foreground ,cham-1))))
`(ansi-color-bright-yellow ((,class (:background ,butter-1
:foreground ,butter-1))))
`(ansi-color-bright-blue ((,class (:background ,blue-1
:foreground ,blue-1))))
`(ansi-color-bright-magenta ((,class (:background ,plum-1
:foreground ,plum-1))))
`(ansi-color-bright-cyan ((,class (:background ,cyan-1
:foreground ,cyan-1))))
`(ansi-color-bright-white ((,class (:background ,alum-1
:foreground ,alum-1))))))
(provide-theme 'tango)

View file

@ -95,12 +95,24 @@ are included.")
`(message-header-subject ((,class (:foreground "#cae682"))))
`(message-header-to ((,class (:foreground "#cae682"))))
`(message-cited-text ((,class (:foreground "#99968b"))))
`(message-separator ((,class (:foreground "#e5786d" :weight bold))))))
(custom-theme-set-variables
'wombat
'(ansi-color-names-vector ["#242424" "#e5786d" "#95e454" "#cae682"
"#8ac6f2" "#333366" "#ccaa8f" "#f6f3e8"]))
`(message-separator ((,class (:foreground "#e5786d" :weight bold))))
;; ANSI colors
`(ansi-color-black ((,class (:background "#242424" :foreground "#242424"))))
`(ansi-color-red ((,class (:background "#b85149" :foreground "#b85149"))))
`(ansi-color-green ((,class (:background "#92a65e" :foreground "#92a65e"))))
`(ansi-color-yellow ((,class (:background "#ccaa8f" :foreground "#ccaa8f"))))
`(ansi-color-blue ((,class (:background "#5b98c2" :foreground "#5b98c2"))))
`(ansi-color-magenta ((,class (:background "#64619a" :foreground "#64619a"))))
`(ansi-color-cyan ((,class (:background "#3f9f9e" :foreground "#3f9f9e"))))
`(ansi-color-white ((,class (:background "#f6f3e8" :foreground "#f6f3e8"))))
`(ansi-color-bright-black ((,class (:background "#444444" :foreground "#444444"))))
`(ansi-color-bright-red ((,class (:background "#e5786d" :foreground "#e5786d"))))
`(ansi-color-bright-green ((,class (:background "#95e454" :foreground "#95e454"))))
`(ansi-color-bright-yellow ((,class (:background "#edc4a3" :foreground "#edc4a3"))))
`(ansi-color-bright-blue ((,class (:background "#8ac6f2" :foreground "#8ac6f2"))))
`(ansi-color-bright-magenta ((,class (:background "#a6a1de" :foreground "#a6a1de"))))
`(ansi-color-bright-cyan ((,class (:background "#70cecc" :foreground "#70cecc"))))
`(ansi-color-bright-white ((,class (:background "#ffffff" :foreground "#ffffff"))))))
(provide-theme 'wombat)

View file

@ -182,7 +182,7 @@ In insert mode, this key also functions as Meta."
:type 'string
:group 'viper)
(defconst viper-ESC-key (kbd "ESC")
(defconst viper-ESC-key [escape]
"Key used to ESC.")

View file

@ -6865,7 +6865,9 @@ KEY is a string or a vector."
unread-command-events))
(let ((cursor-in-echo-area t)
gnus-pick-mode)
(describe-key (read-key-sequence nil t))))
(describe-key (cons (read-key-sequence nil t)
(this-single-command-raw-keys))
(current-buffer))))
(describe-key key)))
(defun gnus-article-describe-key-briefly (key &optional insert)
@ -6888,7 +6890,9 @@ KEY is a string or a vector."
unread-command-events))
(let ((cursor-in-echo-area t)
gnus-pick-mode)
(describe-key-briefly (read-key-sequence nil t) insert)))
(describe-key-briefly (cons (read-key-sequence nil t)
(this-single-command-raw-keys))
insert (current-buffer))))
(describe-key-briefly key insert)))
;;`gnus-agent-mode' in gnus-agent.el will define it.

View file

@ -677,9 +677,11 @@ If INSERT (the prefix arg) is non-nil, insert the message in the buffer."
(defun help--binding-undefined-p (defn)
(or (null defn) (integerp defn) (equal defn 'undefined)))
(defun help--analyze-key (key untranslated)
(defun help--analyze-key (key untranslated &optional buffer)
"Get information about KEY its corresponding UNTRANSLATED events.
Returns a list of the form (BRIEF-DESC DEFN EVENT MOUSE-MSG)."
Returns a list of the form (BRIEF-DESC DEFN EVENT MOUSE-MSG).
When BUFFER is nil, it defaults to the buffer displayed
in the selected window."
(if (numberp untranslated)
(error "Missing `untranslated'!"))
(let* ((event (when (> (length key) 0)
@ -699,9 +701,8 @@ Returns a list of the form (BRIEF-DESC DEFN EVENT MOUSE-MSG)."
;; is selected from the context menu that should describe KEY
;; at the position of mouse click that opened the context menu.
;; When no mouse was involved, don't use `mouse-set-point'.
(defn (if (consp event)
(save-excursion (mouse-set-point event) (key-binding key t))
(key-binding key t))))
(defn (if buffer (key-binding key t)
(save-excursion (mouse-set-point event) (key-binding key t)))))
;; Handle the case where we faked an entry in "Select and Paste" menu.
(when (and (eq defn nil)
(stringp (aref key (1- (length key))))
@ -731,7 +732,7 @@ Returns a list of the form (BRIEF-DESC DEFN EVENT MOUSE-MSG)."
;; If nothing left, then keep one (the last one).
(last info-list)))
(defun describe-key-briefly (&optional key-list insert untranslated)
(defun describe-key-briefly (&optional key-list insert buffer)
"Print the name of the functions KEY-LIST invokes.
KEY-LIST is a list of pairs (SEQ . RAW-SEQ) of key sequences, where
RAW-SEQ is the untranslated form of the key sequence SEQ.
@ -739,8 +740,10 @@ If INSERT (the prefix arg) is non-nil, insert the message in the buffer.
While reading KEY-LIST interactively, this command temporarily enables
menu items or tool-bar buttons that are disabled to allow getting help
on them."
(declare (advertised-calling-convention (key-list &optional insert) "27.1"))
on them.
BUFFER is the buffer in which to lookup those keys; it defaults to the
current buffer."
(interactive
;; Ignore mouse movement events because it's too easy to miss the
;; message while moving the mouse.
@ -748,15 +751,13 @@ on them."
`(,key-list ,current-prefix-arg)))
(when (arrayp key-list)
;; Old calling convention, changed
(setq key-list (list (cons key-list
(if (numberp untranslated)
(this-single-command-raw-keys)
untranslated)))))
(let* ((info-list (mapcar (lambda (kr)
(help--analyze-key (car kr) (cdr kr)))
key-list))
(msg (mapconcat #'car (help--filter-info-list info-list 1) "\n")))
(if insert (insert msg) (message "%s" msg))))
(setq key-list (list (cons key-list nil))))
(with-current-buffer (if (buffer-live-p buffer) buffer (current-buffer))
(let* ((info-list (mapcar (lambda (kr)
(help--analyze-key (car kr) (cdr kr) buffer))
key-list))
(msg (mapconcat #'car (help--filter-info-list info-list 1) "\n")))
(if insert (insert msg) (message "%s" msg)))))
(defun help--key-binding-keymap (key &optional accept-default no-remap position)
"Return a keymap holding a binding for KEY within current keymaps.
@ -916,7 +917,7 @@ current buffer."
(mapcar (lambda (x)
(pcase-let* ((`(,seq . ,raw-seq) x)
(`(,brief-desc ,defn ,event ,_mouse-msg)
(help--analyze-key seq raw-seq))
(help--analyze-key seq raw-seq buffer))
(locus
(help--binding-locus
seq (event-start event))))

View file

@ -344,8 +344,8 @@ For example, you can set it to <return> like `isearch-exit'."
(defcustom repeat-exit-timeout nil
"Break the repetition chain of keys after specified timeout.
When a number, exit the repeat mode after idle time of the specified
number of seconds."
When a number, exit the transient repeating mode after idle time
of the specified number of seconds."
:type '(choice (const :tag "No timeout to exit repeating sequence" nil)
(number :tag "Timeout in seconds to exit repeating"))
:group 'convenience
@ -363,7 +363,7 @@ number of seconds."
(defcustom repeat-echo-function #'repeat-echo-message
"Function to display a hint about available keys.
Function is called after every repeatable command with one argument:
a repeating map, or nil after deactivating the repeat mode."
a repeating map, or nil after deactivating the transient repeating mode."
:type '(choice (const :tag "Show hints in the echo area"
repeat-echo-message)
(const :tag "Show indicator in the mode line"
@ -374,11 +374,11 @@ a repeating map, or nil after deactivating the repeat mode."
:version "28.1")
(defvar repeat-in-progress nil
"Non-nil when the repeating map is active.")
"Non-nil when the repeating transient map is active.")
;;;###autoload
(defvar repeat-map nil
"The value of the repeating map for the next command.
"The value of the repeating transient map for the next command.
A command called from the map can set it again to the same map when
the map can't be set on the command symbol property `repeat-map'.")

View file

@ -715,7 +715,7 @@ it will display time aligned to the right on the tab bar instead
of the mode line. Replacing `tab-bar-format-tabs' with
`tab-bar-format-tabs-groups' will group tabs on the tab bar."
:type 'hook
:options '(tab-bar-format-menu-global
:options '(tab-bar-format-menu-bar
tab-bar-format-history
tab-bar-format-tabs
tab-bar-format-tabs-groups
@ -730,22 +730,23 @@ of the mode line. Replacing `tab-bar-format-tabs' with
:group 'tab-bar
:version "28.1")
(defun tab-bar-format-menu-global ()
"Produce the Menu button for the tab bar that shows a global menu."
`((add-tab menu-item (propertize "Menu" 'face 'tab-bar-tab-inactive)
(lambda (event) (interactive "e")
(let ((menu (make-sparse-keymap
(propertize "Global Menu" 'hide t))))
(defun tab-bar-menu-bar (event)
"Pop up the same menu as displayed by the menu bar.
Used by `tab-bar-format-menu-bar'."
(interactive "e")
(let ((menu (make-sparse-keymap (propertize "Menu Bar" 'hide t))))
(run-hooks 'activate-menubar-hook 'menu-bar-update-hook)
(map-keymap (lambda (key binding)
(when (consp binding)
(define-key-after menu (vector key)
(copy-sequence binding))))
(menu-bar-keymap))
(popup-menu menu event)))
(run-hooks 'activate-menubar-hook 'menu-bar-update-hook)
(map-keymap (lambda (key binding)
(when (consp binding)
(define-key-after menu (vector key)
(copy-sequence binding))))
(lookup-key global-map [menu-bar]))
(popup-menu menu event)))
:help "Global Menu")))
(defun tab-bar-format-menu-bar ()
"Produce the Menu button for the tab bar that shows the menu bar."
`((menu-bar menu-item (propertize "Menu" 'face 'tab-bar-tab-inactive)
tab-bar-menu-bar :help "Menu Bar")))
(defun tab-bar-format-history ()
"Produce back and forward buttons for the tab bar.

View file

@ -1323,7 +1323,7 @@ or BRANCH^ (where \"^\" can be repeated)."
(defun vc-git-expanded-log-entry (revision)
(with-temp-buffer
(apply #'vc-git-command t nil nil (list "log" revision "-1" "--"))
(apply #'vc-git-command t nil nil (list "log" revision "-1" "--no-color" "--"))
(goto-char (point-min))
(unless (eobp)
;; Indent the expanded log entry.

View file

@ -6238,7 +6238,10 @@ when the mouse is over clickable text. */);
DEFVAR_LISP ("make-pointer-invisible", Vmake_pointer_invisible,
doc: /* If non-nil, make mouse pointer invisible while typing.
The pointer becomes visible again when the mouse is moved. */);
The pointer becomes visible again when the mouse is moved.
When using this, you might also want to disable highlighting of
clickable text. See `mouse-highlight'. */);
Vmake_pointer_invisible = Qt;
DEFVAR_LISP ("move-frame-functions", Vmove_frame_functions,

View file

@ -3450,6 +3450,8 @@ readable_events (int flags)
READABLE_EVENTS_FILTER_EVENTS is set, report it as empty. */
if (kbd_fetch_ptr != kbd_store_ptr)
{
/* See https://lists.gnu.org/r/emacs-devel/2005-05/msg00297.html
for why we treat toolkit scroll-bar events specially here. */
if (flags & (READABLE_EVENTS_FILTER_EVENTS
#ifdef USE_TOOLKIT_SCROLL_BARS
| READABLE_EVENTS_IGNORE_SQUEEZABLES

View file

@ -3512,7 +3512,12 @@ larger if there are taller display elements (e.g., characters
}
/* Calculate the inner rectangle. */
inner = NSInsetRect (outer, hthickness, vthickness);
inner = NSMakeRect (NSMinX (outer) + (left_p ? hthickness : 0),
NSMinY (outer) + (top_p ? vthickness : 0),
NSWidth (outer) - (left_p ? hthickness : 0)
- (right_p ? hthickness : 0),
NSHeight (outer) - (top_p ? vthickness : 0)
- (bottom_p ? vthickness : 0));
[(raised_p ? lightCol : darkCol) set];

View file

@ -13867,12 +13867,17 @@ note_tab_bar_highlight (struct frame *f, int x, int y)
bool mouse_down_p = false;
#ifndef HAVE_NS
/* Mouse is down, but on different tab-bar item? */
/* Mouse is down, but on different tab-bar item? Or alternatively,
the mouse might've been pressed somewhere we don't know about,
and then have moved onto the tab bar. In this case,
last_tab_bar_item is -1, so we DTRT and behave like other
programs by displaying the item as sunken. */
Display_Info *dpyinfo = FRAME_DISPLAY_INFO (f);
mouse_down_p = (gui_mouse_grabbed (dpyinfo)
&& f == dpyinfo->last_mouse_frame);
if (mouse_down_p && f->last_tab_bar_item != prop_idx)
if (mouse_down_p && f->last_tab_bar_item != prop_idx
&& f->last_tab_bar_item != -1)
return;
#endif
draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;
@ -33788,6 +33793,14 @@ note_mouse_highlight (struct frame *f, int x, int y)
else
return;
}
else
{
/* The mouse might have pressed into the tab bar, but might
also have been released outside the tab bar, so
f->last_tab_bar_item must be reset, in order to make sure the
item can be still highlighted again in the future. */
f->last_tab_bar_item = -1;
}
#endif
#if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR)

View file

@ -567,7 +567,7 @@ The remaining arguments (except _ARG, which is ignored) specify
item insertion parameters. This provides a noninteractive API
for todo-insert-item for use in automatic testing."
(cl-letf (((symbol-function 'read-from-minibuffer)
(lambda (_prompt) item))
(lambda (_prompt &rest _) item))
((symbol-function 'read-number) ; For todo-set-item-priority
(lambda (_prompt &optional _default) (or priority 1))))
(todo-insert-item--basic nil diary-type date-type time where)))

View file

@ -31,7 +31,8 @@
(with-temp-buffer
(insert "a A b B\n")
(cl-letf (((symbol-function 'completing-read)
(lambda (_prompt _coll _x _y _z _hist defaults)
(lambda (_prompt _coll
&optional _x _y _z _hist defaults _inherit)
(car defaults))))
(dotimes (_ 2)
(let ((face (hi-lock-read-face-name)))
@ -43,7 +44,8 @@
(with-temp-buffer
(insert "foo bar")
(cl-letf (((symbol-function 'completing-read)
(lambda (_prompt _coll _x _y _z _hist defaults)
(lambda (_prompt _coll
&optional _x _y _z _hist defaults _inherit)
(car defaults))))
(hi-lock-set-pattern "9999" (hi-lock-read-face-name)) ; No match
(hi-lock-set-pattern "foo" (hi-lock-read-face-name)))
@ -89,7 +91,8 @@
(let ((search-spaces-regexp search-whitespace-regexp)) (highlight-regexp "a a"))
(should (= (length (overlays-in (point-min) (point-max))) 1))
(cl-letf (((symbol-function 'completing-read)
(lambda (_prompt _coll _x _y _z _hist defaults)
(lambda (_prompt _coll
&optional _x _y _z _hist defaults _inherit)
(car defaults))))
(call-interactively 'unhighlight-regexp))
(should (= (length (overlays-in (point-min) (point-max))) 0))
@ -142,7 +145,8 @@
(font-lock-ensure)
(should (memq 'hi-yellow (get-text-property 1 'face)))
(cl-letf (((symbol-function 'completing-read)
(lambda (_prompt _coll _x _y _z _hist defaults)
(lambda (_prompt _coll
&optional _x _y _z _hist defaults _inherit)
(car defaults)))
(font-lock-fontified t))
(call-interactively 'unhighlight-regexp))
@ -155,7 +159,8 @@
(insert "aAbB\n")
(cl-letf (((symbol-function 'completing-read)
(lambda (_prompt _coll _x _y _z _hist defaults)
(lambda (_prompt _coll
&optional _x _y _z _hist defaults _inherit)
(car defaults))))
(highlight-regexp "a")

View file

@ -203,7 +203,7 @@ Vectors must match verbatim. Strings are considered regex patterns.")
(should (equal host "example.com"))
(list 93 184 216 34)))
((symbol-function 'user-full-name)
(lambda () "foo")))
(lambda (&optional _) "foo")))
(socks-tests-perform-hello-world-http-request)))))
;; Replace first pattern below with ([5 3 0 1 2] . [5 2]) to validate

View file

@ -923,9 +923,10 @@ This tests also `file-executable-p', `file-writable-p' and `set-file-modes'."
"(progn \
(message \"tramp-archive loaded: %%s\" \
(featurep 'tramp-archive)) \
(file-attributes %S \"/\") \
(let ((inhibit-message t)) \
(file-attributes %S \"/\")) \
(message \"tramp-archive loaded: %%s\" \
(featurep 'tramp-archive)))"))
(featurep 'tramp-archive))))"))
(dolist (default-directory
`(,temporary-file-directory
;; Starting Emacs in a directory which has

View file

@ -2786,7 +2786,7 @@ This tests also `file-directory-p' and `file-accessible-directory-p'."
:type 'file-already-exists)
(should (file-directory-p tmp-name1))
(should (file-accessible-directory-p tmp-name1))
(when (tramp--test-supports-file-modes-p)
(when (tramp--test-supports-set-file-modes-p)
(should (equal (format "%#o" unusual-file-mode-1)
(format "%#o" (file-modes tmp-name1)))))
(should-error
@ -2796,7 +2796,7 @@ This tests also `file-directory-p' and `file-accessible-directory-p'."
(make-directory tmp-name2 'parents))
(should (file-directory-p tmp-name2))
(should (file-accessible-directory-p tmp-name2))
(when (tramp--test-supports-file-modes-p)
(when (tramp--test-supports-set-file-modes-p)
(should (equal (format "%#o" unusual-file-mode-2)
(format "%#o" (file-modes tmp-name2)))))
;; If PARENTS is non-nil, `make-directory' shall not
@ -3160,7 +3160,7 @@ This tests also `file-directory-p' and `file-accessible-directory-p'."
(length (directory-files tmp-name1)))))))
;; Check error cases.
(when (and (tramp--test-supports-file-modes-p)
(when (and (tramp--test-supports-set-file-modes-p)
;; With "sshfs", directories with zero file
;; modes are still "accessible".
(not (tramp--test-sshfs-p))
@ -3385,7 +3385,7 @@ This tests also `access-file', `file-readable-p',
(tramp-get-remote-gid tramp-test-vec 'integer)))
(delete-file tmp-name1))
(when (and (tramp--test-supports-file-modes-p)
(when (and (tramp--test-supports-set-file-modes-p)
;; A file is always accessible for user "root".
(not (zerop (tramp-compat-file-attribute-user-id
(file-attributes
@ -3628,7 +3628,8 @@ They might differ only in time attributes or directory size."
"Check `file-modes'.
This tests also `file-executable-p', `file-writable-p' and `set-file-modes'."
(skip-unless (tramp--test-enabled))
(skip-unless (tramp--test-supports-file-modes-p))
(skip-unless (tramp--test-supports-set-file-modes-p))
(dolist (quoted (if (tramp--test-expensive-test) '(nil t) '(nil)))
(let ((tmp-name1 (tramp--test-make-temp-name nil quoted))
(tmp-name2 (tramp--test-make-temp-name nil quoted)))
@ -3963,7 +3964,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
(make-symbolic-link tmp-name2 tmp-name1)
(should (file-symlink-p tmp-name1))
(if (tramp--test-smb-p)
;; The symlink command of `smbclient' detects the
;; The symlink command of "smbclient" detects the
;; cycle already.
(should-error
(make-symbolic-link tmp-name1 tmp-name2)
@ -4074,6 +4075,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
(ert-deftest tramp-test24-file-acl ()
"Check that `file-acl' and `set-file-acl' work proper."
(skip-unless (tramp--test-enabled))
;; The following test checks also whether `set-file-modes' will work.
(skip-unless (file-acl tramp-test-temporary-file-directory))
(skip-unless (not (tramp--test-crypt-p)))
@ -4484,7 +4486,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
(write-region "foo" nil tmp-name)
(should (file-exists-p tmp-name))
(should (zerop (process-file "ls" nil t nil fnnd)))
;; `ls' could produce colorized output.
;; "ls" could produce colorized output.
(goto-char (point-min))
(while
(re-search-forward tramp-display-escape-sequence-regexp nil t)
@ -4495,7 +4497,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
;; Second run. The output must be appended.
(goto-char (point-max))
(should (zerop (process-file "ls" nil t t fnnd)))
;; `ls' could produce colorized output.
;; "ls" could produce colorized output.
(goto-char (point-min))
(while
(re-search-forward tramp-display-escape-sequence-regexp nil t)
@ -4508,7 +4510,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
;; Cleanup.
(ignore-errors (delete-file tmp-name))))))
;; Must be a command, because used as `sigusr' handler.
;; Must be a command, because used as `sigusr1' handler.
(defun tramp--test-timeout-handler (&rest _ignore)
"Timeout handler, reporting a failed test."
(interactive)
@ -4588,23 +4590,25 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
;; Cleanup.
(ignore-errors (delete-process proc)))
(unwind-protect
(with-temp-buffer
(setq proc (start-file-process "test3" (current-buffer) "cat"))
(should (processp proc))
(should (equal (process-status proc) 'run))
(set-process-filter proc t)
(process-send-string proc "foo\n")
(process-send-eof proc)
;; Read output.
(with-timeout (10 (tramp--test-timeout-handler))
(while (process-live-p proc)
(while (accept-process-output proc 0 nil t))))
;; No output due to process filter.
(should (= (point-min) (point-max))))
;; "telnet" and "sshfs" do not cooperate with disabled filter.
(unless (or (tramp--test-telnet-p) (tramp--test-sshfs-p))
(unwind-protect
(with-temp-buffer
(setq proc (start-file-process "test3" (current-buffer) "cat"))
(should (processp proc))
(should (equal (process-status proc) 'run))
(set-process-filter proc t)
(process-send-string proc "foo\n")
(process-send-eof proc)
;; Read output.
(with-timeout (10 (tramp--test-timeout-handler))
(while (process-live-p proc)
(while (accept-process-output proc 0 nil t))))
;; No output due to process filter.
(should (= (point-min) (point-max))))
;; Cleanup.
(ignore-errors (delete-process proc)))
;; Cleanup.
(ignore-errors (delete-process proc))))
;; Process connection type.
(when (and (tramp--test-sh-p)
@ -4636,7 +4640,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
(if (and (memq process-connection-type '(nil pipe))
(not (tramp--test-macos-p)))
;; On macOS, there is always newline conversion.
;; `telnet' converts \r to <CR><NUL> if `crlf'
;; "telnet" converts \r to <CR><NUL> if `crlf'
;; flag is FALSE. See telnet(1) man page.
"66\n6F\n6F\n0D\\(\n00\\)?\n0A\n"
"66\n6F\n6F\n0A\\(\n00\\)?\n0A\n")
@ -4779,27 +4783,29 @@ If UNSTABLE is non-nil, the test is tagged as `:unstable'."
;; Cleanup.
(ignore-errors (delete-process proc)))
(unwind-protect
(with-temp-buffer
(setq proc
(with-no-warnings
(make-process
:name "test3" :buffer (current-buffer) :command '("cat")
:filter t
:file-handler t)))
(should (processp proc))
(should (equal (process-status proc) 'run))
(process-send-string proc "foo\n")
(process-send-eof proc)
;; Read output.
(with-timeout (10 (tramp--test-timeout-handler))
(while (process-live-p proc)
(while (accept-process-output proc 0 nil t))))
;; No output due to process filter.
(should (= (point-min) (point-max))))
;; "telnet" and "sshfs" do not cooperate with disabled filter.
(unless (or (tramp--test-telnet-p) (tramp--test-sshfs-p))
(unwind-protect
(with-temp-buffer
(setq proc
(with-no-warnings
(make-process
:name "test3" :buffer (current-buffer) :command '("cat")
:filter t
:file-handler t)))
(should (processp proc))
(should (equal (process-status proc) 'run))
(process-send-string proc "foo\n")
(process-send-eof proc)
;; Read output.
(with-timeout (10 (tramp--test-timeout-handler))
(while (process-live-p proc)
(while (accept-process-output proc 0 nil t))))
;; No output due to process filter.
(should (= (point-min) (point-max))))
;; Cleanup.
(ignore-errors (delete-process proc)))
;; Cleanup.
(ignore-errors (delete-process proc))))
;; Process sentinel.
(unwind-protect
@ -4826,7 +4832,7 @@ If UNSTABLE is non-nil, the test is tagged as `:unstable'."
;; Cleanup.
(ignore-errors (delete-process proc)))
;; Process with stderr buffer. `telnet' does not cooperate with
;; Process with stderr buffer. "telnet" does not cooperate with
;; three processes.
(unless (or (tramp--test-telnet-p) (tramp-direct-async-process-p))
(let ((stderr (generate-new-buffer "*stderr*")))
@ -4926,7 +4932,7 @@ If UNSTABLE is non-nil, the test is tagged as `:unstable'."
'(nil pipe))
(not (tramp--test-macos-p)))
;; On macOS, there is always newline conversion.
;; `telnet' converts \r to <CR><NUL> if `crlf'
;; "telnet" converts \r to <CR><NUL> if `crlf'
;; flag is FALSE. See telnet(1) man page.
"66\n6F\n6F\n0D\\(\n00\\)?\n0A\n"
"66\n6F\n6F\n0A\\(\n00\\)?\n0A\n")
@ -5030,7 +5036,7 @@ INPUT, if non-nil, is a string sent to the process."
this-shell-command
(format "ls %s" (file-name-nondirectory tmp-name))
(current-buffer))
;; `ls' could produce colorized output.
;; "ls" could produce colorized output.
(goto-char (point-min))
(while
(re-search-forward tramp-display-escape-sequence-regexp nil t)
@ -5485,8 +5491,7 @@ Use direct async.")
(ert-deftest tramp-test35-exec-path ()
"Check `exec-path' and `executable-find'."
(skip-unless (tramp--test-enabled))
(skip-unless (or (tramp--test-adb-p) (tramp--test-sh-p) (tramp--test-sshfs-p)))
(skip-unless (not (tramp--test-crypt-p)))
(skip-unless (tramp--test-supports-set-file-modes-p))
;; Since Emacs 27.1.
(skip-unless (fboundp 'exec-path))
@ -5507,6 +5512,7 @@ Use direct async.")
;; found.
(write-region "foo" nil tmp-name)
(should (file-exists-p tmp-name))
(set-file-modes tmp-name #o777)
(should (file-executable-p tmp-name))
(should
@ -6191,6 +6197,10 @@ This does not support external Emacs calls."
(string-equal
"mock" (file-remote-p tramp-test-temporary-file-directory 'method)))
(defun tramp--test-out-of-band-p ()
"Check, whether an out-of-band method is used."
(tramp-method-out-of-band-p tramp-test-vec 1))
(defun tramp--test-rclone-p ()
"Check, whether the remote host is offered by rclone.
This requires restrictions of file name syntax."
@ -6246,13 +6256,13 @@ This does not support special file names."
(defun tramp--test-windows-nt-and-out-of-band-p ()
"Check, whether the locale host runs MS Windows and an out-of-band method.
This does not support utf8 based file transfer."
(and (eq system-type 'windows-nt)
(tramp-method-out-of-band-p tramp-test-vec 1)))
(and (tramp--test-windows-nt-p)
(tramp--test-out-of-band-p)))
(defun tramp--test-windows-nt-or-smb-p ()
"Check, whether the locale or remote host runs MS Windows.
This requires restrictions of file name syntax."
(or (eq system-type 'windows-nt)
(or (tramp--test-windows-nt-p)
(tramp--test-smb-p)))
(defun tramp--test-smb-p ()
@ -6260,8 +6270,8 @@ This requires restrictions of file name syntax."
This requires restrictions of file name syntax."
(tramp-smb-file-name-p tramp-test-temporary-file-directory))
(defun tramp--test-supports-file-modes-p ()
"Return whether the method under test supports file modes."
(defun tramp--test-supports-set-file-modes-p ()
"Return whether the method under test supports setting file modes."
;; "smb" does not unless the SMB server supports "posix" extensions.
;; "adb" does not unless the Android device is rooted.
(or (tramp--test-sh-p) (tramp--test-sshfs-p) (tramp--test-sudoedit-p)
@ -6364,9 +6374,9 @@ This requires restrictions of file name syntax."
(kill-buffer buffer)
;; `substitute-in-file-name' could return different
;; values. For `adb', there could be strange file
;; values. For "adb", there could be strange file
;; permissions preventing overwriting a file. We don't
;; care in this testcase.
;; care in this test case.
(dolist (elt files)
(let ((file1
(substitute-in-file-name (expand-file-name elt tmp-name1)))
@ -6532,7 +6542,7 @@ This requires restrictions of file name syntax."
(ert-deftest tramp-test41-special-characters-with-stat ()
"Check special characters in file names.
Use the `stat' command."
Use the \"stat\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 287s
(skip-unless (tramp--test-enabled))
@ -6551,7 +6561,7 @@ Use the `stat' command."
(ert-deftest tramp-test41-special-characters-with-perl ()
"Check special characters in file names.
Use the `perl' command."
Use the \"perl\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 266s
(skip-unless (tramp--test-enabled))
@ -6573,7 +6583,7 @@ Use the `perl' command."
(ert-deftest tramp-test41-special-characters-with-ls ()
"Check special characters in file names.
Use the `ls' command."
Use the \"ls\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 287s
(skip-unless (tramp--test-enabled))
@ -6655,14 +6665,14 @@ Use the `ls' command."
(ert-deftest tramp-test42-utf8-with-stat ()
"Check UTF8 encoding in file names and file contents.
Use the `stat' command."
Use the \"stat\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 595s
(skip-unless (tramp--test-enabled))
(skip-unless (tramp--test-sh-p))
(skip-unless (not (tramp--test-docker-p)))
(skip-unless (not (tramp--test-rsync-p)))
(skip-unless (not (tramp--test-windows-nt-and-out-of-band-p)))
(skip-unless (not (tramp--test-out-of-band-p))) ; SLOW
(skip-unless (not (tramp--test-ksh-p)))
(skip-unless (not (tramp--test-crypt-p)))
;; We cannot use `tramp-test-vec', because this fails during compilation.
@ -6678,14 +6688,14 @@ Use the `stat' command."
(ert-deftest tramp-test42-utf8-with-perl ()
"Check UTF8 encoding in file names and file contents.
Use the `perl' command."
Use the \"perl\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 620s
(skip-unless (tramp--test-enabled))
(skip-unless (tramp--test-sh-p))
(skip-unless (not (tramp--test-docker-p)))
(skip-unless (not (tramp--test-rsync-p)))
(skip-unless (not (tramp--test-windows-nt-and-out-of-band-p)))
(skip-unless (not (tramp--test-out-of-band-p))) ; SLOW
(skip-unless (not (tramp--test-ksh-p)))
(skip-unless (not (tramp--test-crypt-p)))
;; We cannot use `tramp-test-vec', because this fails during compilation.
@ -6704,14 +6714,14 @@ Use the `perl' command."
(ert-deftest tramp-test42-utf8-with-ls ()
"Check UTF8 encoding in file names and file contents.
Use the `ls' command."
Use the \"ls\" command."
:tags '(:expensive-test)
(skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 690s
(skip-unless (tramp--test-enabled))
(skip-unless (tramp--test-sh-p))
(skip-unless (not (tramp--test-docker-p)))
(skip-unless (not (tramp--test-rsync-p)))
(skip-unless (not (tramp--test-windows-nt-and-out-of-band-p)))
(skip-unless (not (tramp--test-out-of-band-p))) ; SLOW
(skip-unless (not (tramp--test-ksh-p)))
(skip-unless (not (tramp--test-crypt-p)))
@ -7177,8 +7187,8 @@ If INTERACTIVE is non-nil, the tests are run interactively."
;; * Work on skipped tests. Make a comment, when it is impossible.
;; * Revisit expensive tests, once problems in `tramp-error' are solved.
;; * Fix `tramp-test06-directory-file-name' for `ftp'.
;; * Implement `tramp-test31-interrupt-process' for `adb', `sshfs' and
;; * Fix `tramp-test06-directory-file-name' for "ftp".
;; * Implement `tramp-test31-interrupt-process' for "adb", "sshfs" and
;; for direct async processes.
;; * Check, why direct async processes do not work for
;; `tramp-test44-asynchronous-requests'.

View file

@ -757,7 +757,7 @@ comparing the subr with a much slower Lisp implementation."
;; forwarding, but this needs to happen before the var is accessed
;; from the Lisp side and before we switch to another buffer.
;; The trigger in bug#34318 doesn't exist any more because the C code has
;; changes. Instead I found the trigger below.
;; changed. Instead I found the trigger below.
(with-temp-buffer
(setq last-coding-system-used 'bug34318)
(make-local-variable 'last-coding-system-used)