mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 04:10:54 -08:00
Merge from origin/emacs-26
796c7f7(origin/emacs-26) ; Fix last fix of 'mouse-drag-and-drop-region'40d41dd(emacs-26) Fix Bug#28139a5ec644Fix Bug#292918b900e5Fix Bug#2928ff7bd84Make 'mouse-drag-and-drop-region' work with 'mouse-autoselect...0491de8* etc/PROBLEMS: Remove fixed xterm-mouse-mode problemscaa39f4Fix cookie handling (bug#29282)93304e3Improve documentation of Edebug and macros
This commit is contained in:
commit
52d822f31b
6 changed files with 136 additions and 125 deletions
|
|
@ -1144,9 +1144,12 @@ the @code{declare} form.
|
|||
@c automatically load the entire source file containing the function
|
||||
@c being instrumented. That would avoid this.
|
||||
Take care to ensure that the specifications are known to Edebug when
|
||||
you instrument code. If you are instrumenting a function from a file
|
||||
that uses @code{eval-when-compile} to require another file containing
|
||||
macro definitions, you may need to explicitly load that file.
|
||||
you instrument code. If you are instrumenting a function which uses a
|
||||
macro defined in another file, you may first need to either evaluate
|
||||
the @code{require} forms in the file containing your function, or
|
||||
explicitly load the file containing the macro. If the definition of a
|
||||
macro is wrapped by @code{eval-when-compile}, you may need to evaluate
|
||||
it.
|
||||
|
||||
You can also define an edebug specification for a macro separately
|
||||
from the macro definition with @code{def-edebug-spec}. Adding
|
||||
|
|
@ -1231,13 +1234,17 @@ A single unevaluated Lisp object, which is not instrumented.
|
|||
@c an "expression" is not necessarily intended for evaluation.
|
||||
|
||||
@item form
|
||||
A single evaluated expression, which is instrumented.
|
||||
A single evaluated expression, which is instrumented. If your macro
|
||||
wraps the expression with @code{lambda} before it is evaluated, use
|
||||
@code{def-form} instead. See @code{def-form} below.
|
||||
|
||||
@item place
|
||||
A generalized variable. @xref{Generalized Variables}.
|
||||
|
||||
@item body
|
||||
Short for @code{&rest form}. See @code{&rest} below.
|
||||
Short for @code{&rest form}. See @code{&rest} below. If your macro
|
||||
wraps its body of code with @code{lambda} before it is evaluated, use
|
||||
@code{def-body} instead. See @code{def-body} below.
|
||||
|
||||
@item function-form
|
||||
A function form: either a quoted function symbol, a quoted lambda
|
||||
|
|
@ -1292,11 +1299,16 @@ succeeds.
|
|||
|
||||
@item &define
|
||||
@c @kindex &define @r{(Edebug)}
|
||||
Indicates that the specification is for a defining form. The defining
|
||||
form itself is not instrumented (that is, Edebug does not stop before and
|
||||
after the defining form), but forms inside it typically will be
|
||||
instrumented. The @code{&define} keyword should be the first element in
|
||||
a list specification.
|
||||
|
||||
Indicates that the specification is for a defining form. Edebug's
|
||||
definition of a defining form is a form containing one or more code
|
||||
forms which are saved and executed later, after the execution of the
|
||||
defining form.
|
||||
|
||||
The defining form itself is not instrumented (that is, Edebug does not
|
||||
stop before and after the defining form), but forms inside it
|
||||
typically will be instrumented. The @code{&define} keyword should be
|
||||
the first element in a list specification.
|
||||
|
||||
@item nil
|
||||
This is successful when there are no more arguments to match at the
|
||||
|
|
|
|||
24
etc/PROBLEMS
24
etc/PROBLEMS
|
|
@ -1113,14 +1113,6 @@ to happen in *.UTF-8 locales; zh_CN.GB2312 and zh_CN.GBK locales, for
|
|||
example, work fine. A bug report has been filed in the Gnome
|
||||
bugzilla: http://bugzilla.gnome.org/show_bug.cgi?id=357032
|
||||
|
||||
*** Gnome: Emacs's xterm-mouse-mode doesn't work on the Gnome terminal.
|
||||
|
||||
A symptom of this bug is that double-clicks insert a control sequence
|
||||
into the buffer. The reason this happens is an apparent
|
||||
incompatibility of the Gnome terminal with Xterm, which also affects
|
||||
other programs using the Xterm mouse interface. A problem report has
|
||||
been filed.
|
||||
|
||||
*** Gnome: GPaste clipboard manager causes erratic behavior of 'yank'
|
||||
|
||||
The symptom is that 'kill-line' followed by 'yank' often (but not
|
||||
|
|
@ -1492,22 +1484,6 @@ this, you can remove the X resource or put this in your init file:
|
|||
|
||||
(xterm-remove-modify-other-keys)
|
||||
|
||||
** Emacs's xterm-mouse doesn't work well in Evil mode.
|
||||
|
||||
Specifically, clicking mouse-1 doesn't work as expected: instead of
|
||||
moving point where you click, it highlights the region between the
|
||||
line beginning and the click location, and displays error messages
|
||||
about unbound keys in the echo area.
|
||||
|
||||
To work around this, put this in your .emacs file:
|
||||
|
||||
(with-eval-after-load 'evil-maps
|
||||
(define-key evil-motion-state-map [down-mouse-1] nil))
|
||||
|
||||
This appears to be a bug in Evil.
|
||||
See discussions in https://github.com/emacs-evil/evil/issues/960
|
||||
and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29143
|
||||
|
||||
** Emacs spontaneously displays "I-search: " at the bottom of the screen.
|
||||
|
||||
This means that Control-S/Control-Q (XON/XOFF) "flow control" is being
|
||||
|
|
|
|||
|
|
@ -2380,7 +2380,9 @@ is copied instead of being cut."
|
|||
;; When event was click instead of drag, skip loop
|
||||
(while (progn
|
||||
(setq event (read-event))
|
||||
(mouse-movement-p event))
|
||||
(or (mouse-movement-p event)
|
||||
;; Handle `mouse-autoselect-window'.
|
||||
(eq (car-safe event) 'select-window)))
|
||||
(unless value-selection ; initialization
|
||||
(delete-overlay mouse-secondary-overlay)
|
||||
(setq value-selection (buffer-substring start end))
|
||||
|
|
|
|||
|
|
@ -533,9 +533,7 @@ the list by the special value `tramp-own-remote-path'."
|
|||
|
||||
;;;###tramp-autoload
|
||||
(defcustom tramp-remote-process-environment
|
||||
`("ENV=''" "TMOUT=0" "LC_CTYPE=''"
|
||||
,(format "TERM=%s" tramp-terminal-type)
|
||||
,(format "INSIDE_EMACS='%s,tramp:%s'" emacs-version tramp-version)
|
||||
'("ENV=''" "TMOUT=0" "LC_CTYPE=''"
|
||||
"CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=cat"
|
||||
"autocorrect=" "correct=")
|
||||
"List of environment variables to be set on the remote host.
|
||||
|
|
@ -544,8 +542,15 @@ Each element should be a string of the form ENVVARNAME=VALUE. An
|
|||
entry ENVVARNAME= disables the corresponding environment variable,
|
||||
which might have been set in the init files like ~/.profile.
|
||||
|
||||
Special handling is applied to the PATH environment, which should
|
||||
not be set here. Instead, it should be set via `tramp-remote-path'."
|
||||
Special handling is applied to some environment variables,
|
||||
which should not be set here:
|
||||
|
||||
The PATH environment variable should be set via `tramp-remote-path'.
|
||||
|
||||
The TERM environment variable should be set via `tramp-terminal-type'.
|
||||
|
||||
The INSIDE_EMACS environment variable will automatically be set
|
||||
based on the TRAMP and Emacs versions, and should not be set here."
|
||||
:group 'tramp
|
||||
:version "26.1"
|
||||
:type '(repeat string)
|
||||
|
|
@ -3948,9 +3953,17 @@ file exists and nonzero exit status otherwise."
|
|||
;; file clobbering $PS1. $PROMPT_COMMAND is another way to set
|
||||
;; the prompt in /bin/bash, it must be discarded as well.
|
||||
;; $HISTFILE is set according to `tramp-histfile-override'.
|
||||
;; $TERM and $INSIDE_EMACS set here to ensure they have the
|
||||
;; correct values when the shell starts, not just processes
|
||||
;; run within the shell. (Which processes include our
|
||||
;; initial probes to ensure the remote shell is usable.)
|
||||
(tramp-send-command
|
||||
vec (format
|
||||
"exec env ENV=%s %s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
|
||||
(concat
|
||||
"exec env TERM='%s' INSIDE_EMACS='%s,tramp:%s' "
|
||||
"ENV=%s %s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s")
|
||||
tramp-terminal-type
|
||||
emacs-version tramp-version ; INSIDE_EMACS
|
||||
(or (getenv-internal "ENV" tramp-remote-process-environment) "")
|
||||
(if (stringp tramp-histfile-override)
|
||||
(format "HISTFILE=%s"
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ i.e. 1970-1-1) are loaded as expiring one year from now instead."
|
|||
|
||||
(defun url-cookie-handle-set-cookie (str)
|
||||
(setq url-cookies-changed-since-last-save t)
|
||||
(let* ((args (url-parse-args str t))
|
||||
(let* ((args (nreverse (url-parse-args str t)))
|
||||
(case-fold-search t)
|
||||
(secure (and (assoc-string "secure" args t) t))
|
||||
(domain (or (cdr-safe (assoc-string "domain" args t))
|
||||
|
|
@ -298,44 +298,16 @@ i.e. 1970-1-1) are loaded as expiring one year from now instead."
|
|||
(current-url (url-view-url t))
|
||||
(trusted url-cookie-trusted-urls)
|
||||
(untrusted url-cookie-untrusted-urls)
|
||||
(expires (cdr-safe (assoc-string "expires" args t)))
|
||||
(max-age (cdr-safe (assoc-string "max-age" args t)))
|
||||
(localpart (or (cdr-safe (assoc-string "path" args t))
|
||||
(file-name-directory
|
||||
(url-filename url-current-object))))
|
||||
(rest nil))
|
||||
(dolist (this args)
|
||||
(or (member (downcase (car this)) '("secure" "domain" "expires" "path"))
|
||||
(setq rest (cons this rest))))
|
||||
|
||||
;; Sometimes we get dates that the timezone package cannot handle very
|
||||
;; gracefully - take care of this here, instead of in url-cookie-expired-p
|
||||
;; to speed things up.
|
||||
(and expires
|
||||
(string-match
|
||||
(concat "^[^,]+, +\\(..\\)-\\(...\\)-\\(..\\) +"
|
||||
"\\(..:..:..\\) +\\[*\\([^]]+\\)\\]*$")
|
||||
expires)
|
||||
(setq expires (concat (match-string 1 expires) " "
|
||||
(match-string 2 expires) " "
|
||||
(match-string 3 expires) " "
|
||||
(match-string 4 expires) " ["
|
||||
(match-string 5 expires) "]")))
|
||||
|
||||
;; This one is for older Emacs/XEmacs variants that don't
|
||||
;; understand this format without tenths of a second in it.
|
||||
;; Wednesday, 30-Dec-2037 16:00:00 GMT
|
||||
;; - vs -
|
||||
;; Wednesday, 30-Dec-2037 16:00:00.00 GMT
|
||||
(and expires
|
||||
(string-match
|
||||
"\\([0-9]+\\)-\\([A-Za-z]+\\)-\\([0-9]+\\)[ \t]+\\([0-9]+:[0-9]+:[0-9]+\\)\\(\\.[0-9]+\\)*[ \t]+\\([-+a-zA-Z0-9]+\\)"
|
||||
expires)
|
||||
(setq expires (concat (match-string 1 expires) "-" ; day
|
||||
(match-string 2 expires) "-" ; month
|
||||
(match-string 3 expires) " " ; year
|
||||
(match-string 4 expires) ".00 " ; hour:minutes:seconds
|
||||
(match-string 6 expires)))) ":" ; timezone
|
||||
|
||||
(expires nil))
|
||||
(if (and max-age (string-match "\\`-?[0-9]+\\'" max-age))
|
||||
(setq expires (format-time-string "%a %b %d %H:%M:%S %Y GMT"
|
||||
(time-add nil (read max-age))
|
||||
t))
|
||||
(setq expires (cdr-safe (assoc-string "expires" args t))))
|
||||
(while (consp trusted)
|
||||
(if (string-match (car trusted) current-url)
|
||||
(setq trusted (- (match-end 0) (match-beginning 0)))
|
||||
|
|
@ -359,8 +331,9 @@ i.e. 1970-1-1) are loaded as expiring one year from now instead."
|
|||
(not trusted)
|
||||
(save-window-excursion
|
||||
(with-output-to-temp-buffer "*Cookie Warning*"
|
||||
(dolist (x rest)
|
||||
(princ (format "%s - %s" (car x) (cdr x)))))
|
||||
(princ (format "%s=\"%s\"\n" (caar args) (cdar args)))
|
||||
(dolist (x (cdr args))
|
||||
(princ (format " %s=\"%s\"\n" (car x) (cdr x)))))
|
||||
(prog1
|
||||
(not (funcall url-confirmation-func
|
||||
(format "Allow %s to set these cookies? "
|
||||
|
|
@ -371,8 +344,8 @@ i.e. 1970-1-1) are loaded as expiring one year from now instead."
|
|||
nil)
|
||||
((url-cookie-host-can-set-p (url-host url-current-object) domain)
|
||||
;; Cookie is accepted by the user, and passes our security checks.
|
||||
(dolist (cur rest)
|
||||
(url-cookie-store (car cur) (cdr cur) expires domain localpart secure)))
|
||||
(url-cookie-store (caar args) (cdar args)
|
||||
expires domain localpart secure))
|
||||
(t
|
||||
(url-lazy-message "%s tried to set a cookie for domain %s - rejected."
|
||||
(url-host url-current-object) domain)))))
|
||||
|
|
|
|||
|
|
@ -2921,6 +2921,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
;; Cleanup.
|
||||
(ignore-errors (delete-file tmp-name))))))
|
||||
|
||||
;; This test is inspired by Bug#29149.
|
||||
(ert-deftest tramp-test24-file-acl ()
|
||||
"Check that `file-acl' and `set-file-acl' work proper."
|
||||
(skip-unless (tramp--test-enabled))
|
||||
|
|
@ -2939,7 +2940,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(write-region "foo" nil tmp-name1)
|
||||
(should (file-exists-p tmp-name1))
|
||||
(should (file-acl tmp-name1))
|
||||
(copy-file tmp-name1 tmp-name2)
|
||||
(copy-file tmp-name1 tmp-name2 nil nil nil 'preserve-permissions)
|
||||
(should (file-acl tmp-name2))
|
||||
(should (string-equal (file-acl tmp-name1) (file-acl tmp-name2)))
|
||||
;; Different permissions mean different ACLs.
|
||||
|
|
@ -2965,7 +2966,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(write-region "foo" nil tmp-name1)
|
||||
(should (file-exists-p tmp-name1))
|
||||
(should (file-acl tmp-name1))
|
||||
(copy-file tmp-name1 tmp-name3)
|
||||
(copy-file tmp-name1 tmp-name3 nil nil nil 'preserve-permissions)
|
||||
(should (file-acl tmp-name3))
|
||||
(should (string-equal (file-acl tmp-name1) (file-acl tmp-name3)))
|
||||
;; Different permissions mean different ACLs.
|
||||
|
|
@ -2979,7 +2980,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
|
||||
;; Two files with same ACLs.
|
||||
(delete-file tmp-name1)
|
||||
(copy-file tmp-name3 tmp-name1)
|
||||
(copy-file tmp-name3 tmp-name1 nil nil nil 'preserve-permissions)
|
||||
(should (file-acl tmp-name1))
|
||||
(should (string-equal (file-acl tmp-name1) (file-acl tmp-name3)))
|
||||
;; Different permissions mean different ACLs.
|
||||
|
|
@ -2995,8 +2996,6 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(ignore-errors (delete-file tmp-name1))
|
||||
(ignore-errors (delete-file tmp-name3))))))
|
||||
|
||||
;; TODO: This test didn't run in reality yet. Pls report if it
|
||||
;; doesn't work as expected.
|
||||
(ert-deftest tramp-test25-file-selinux ()
|
||||
"Check `file-selinux-context' and `set-file-selinux-context'."
|
||||
(skip-unless (tramp--test-enabled))
|
||||
|
|
@ -3013,7 +3012,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
;; Both files are remote.
|
||||
(unwind-protect
|
||||
(progn
|
||||
;; Two files with same SELINUX context.
|
||||
;; Two files with same SELinux context.
|
||||
(write-region "foo" nil tmp-name1)
|
||||
(should (file-exists-p tmp-name1))
|
||||
(should (file-selinux-context tmp-name1))
|
||||
|
|
@ -3023,14 +3022,18 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name2)))
|
||||
;; Different permissions mean different SELINUX context.
|
||||
(set-file-modes tmp-name1 #o777)
|
||||
(set-file-modes tmp-name2 #o444)
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name2)))
|
||||
;; Copy SELINUX context.
|
||||
;; Check different SELinux context. We cannot support
|
||||
;; different ranges in this test; let's assume the most
|
||||
;; likely one.
|
||||
(let ((context (file-selinux-context tmp-name1)))
|
||||
(when (and (string-equal (nth 3 context) "s0")
|
||||
(setcar (nthcdr 3 context) "s0:c0")
|
||||
(set-file-selinux-context tmp-name1 context))
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name2)))))
|
||||
;; Copy SELinux context.
|
||||
(should
|
||||
(set-file-selinux-context
|
||||
tmp-name2 (file-selinux-context tmp-name1)))
|
||||
|
|
@ -3038,7 +3041,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name2)))
|
||||
;; An invalid SELINUX context does not harm.
|
||||
;; An invalid SELinux context does not harm.
|
||||
(should-not (set-file-selinux-context tmp-name2 "foo")))
|
||||
|
||||
;; Cleanup.
|
||||
|
|
@ -3047,52 +3050,83 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
|
||||
;; Remote and local file.
|
||||
(unwind-protect
|
||||
(when (not (or (equal (file-selinux-context temporary-file-directory)
|
||||
'(nil nil nil nil))
|
||||
(tramp--test-windows-nt-or-smb-p)))
|
||||
;; Two files with same SELINUX context.
|
||||
(when (and (not
|
||||
(or (equal (file-selinux-context temporary-file-directory)
|
||||
'(nil nil nil nil))
|
||||
(tramp--test-windows-nt-or-smb-p)))
|
||||
;; Both users shall use the same SELinux context.
|
||||
(string-equal
|
||||
(let ((default-directory temporary-file-directory))
|
||||
(shell-command-to-string "id -Z"))
|
||||
(let ((default-directory
|
||||
tramp-test-temporary-file-directory))
|
||||
(shell-command-to-string "id -Z"))))
|
||||
|
||||
;; Two files with same SELinux context.
|
||||
(write-region "foo" nil tmp-name1)
|
||||
(should (file-exists-p tmp-name1))
|
||||
(should (file-selinux-context tmp-name1))
|
||||
(copy-file tmp-name1 tmp-name3)
|
||||
(should (file-selinux-context tmp-name3))
|
||||
;; We cannot expect that copying over file system
|
||||
;; boundaries keeps SELinux context. So we copy it
|
||||
;; explicitely.
|
||||
(should
|
||||
(set-file-selinux-context
|
||||
tmp-name3 (file-selinux-context tmp-name1)))
|
||||
(should
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))
|
||||
;; Different permissions mean different SELINUX context.
|
||||
(set-file-modes tmp-name1 #o777)
|
||||
(set-file-modes tmp-name3 #o444)
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))
|
||||
;; Copy SELINUX context.
|
||||
(set-file-selinux-context
|
||||
tmp-name3 (file-selinux-context tmp-name1))
|
||||
;; Check different SELinux context. We cannot support
|
||||
;; different ranges in this test; let's assume the most
|
||||
;; likely one.
|
||||
(let ((context (file-selinux-context tmp-name1)))
|
||||
(when (and (string-equal (nth 3 context) "s0")
|
||||
(setcar (nthcdr 3 context) "s0:c0")
|
||||
(set-file-selinux-context tmp-name1 context))
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))))
|
||||
;; Copy SELinux context.
|
||||
(should
|
||||
(set-file-selinux-context
|
||||
tmp-name3 (file-selinux-context tmp-name1)))
|
||||
(should
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))
|
||||
|
||||
;; Two files with same SELINUX context.
|
||||
;; Two files with same SELinux context.
|
||||
(delete-file tmp-name1)
|
||||
(copy-file tmp-name3 tmp-name1)
|
||||
(should (file-selinux-context tmp-name1))
|
||||
;; We cannot expect that copying over file system
|
||||
;; boundaries keeps SELinux context. So we copy it
|
||||
;; explicitely.
|
||||
(should
|
||||
(set-file-selinux-context
|
||||
tmp-name1 (file-selinux-context tmp-name3)))
|
||||
(should
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))
|
||||
;; Different permissions mean different SELINUX context.
|
||||
(set-file-modes tmp-name1 #o777)
|
||||
(set-file-modes tmp-name3 #o444)
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))
|
||||
;; Copy SELINUX context.
|
||||
(set-file-selinux-context
|
||||
tmp-name1 (file-selinux-context tmp-name2))
|
||||
;; Check different SELinux context. We cannot support
|
||||
;; different ranges in this test; let's assume the most
|
||||
;; likely one.
|
||||
(let ((context (file-selinux-context tmp-name3)))
|
||||
(when (and (string-equal (nth 3 context) "s0")
|
||||
(setcar (nthcdr 3 context) "s0:c0")
|
||||
(set-file-selinux-context tmp-name3 context))
|
||||
(should-not
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
(file-selinux-context tmp-name3)))))
|
||||
;; Copy SELinux context.
|
||||
(should
|
||||
(set-file-selinux-context
|
||||
tmp-name1 (file-selinux-context tmp-name3)))
|
||||
(should
|
||||
(equal
|
||||
(file-selinux-context tmp-name1)
|
||||
|
|
@ -3619,7 +3653,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(fboundp 'connection-local-set-profiles)))
|
||||
|
||||
;; `connection-local-set-profile-variables' and
|
||||
;; `connection-local-set-profiles' exist since Emacs 26. We don't
|
||||
;; `connection-local-set-profiles' exist since Emacs 26.1. We don't
|
||||
;; want to see compiler warnings for older Emacsen.
|
||||
(let ((default-directory tramp-test-temporary-file-directory)
|
||||
explicit-shell-file-name kill-buffer-query-functions)
|
||||
|
|
@ -3923,8 +3957,8 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
|||
(and (fboundp 'make-nearby-temp-file) (fboundp 'temporary-file-directory)))
|
||||
|
||||
;; `make-nearby-temp-file' and `temporary-file-directory' exists
|
||||
;; since Emacs 26. We don't want to see compiler warnings for older
|
||||
;; Emacsen.
|
||||
;; since Emacs 26.1. We don't want to see compiler warnings for
|
||||
;; older Emacsen.
|
||||
(let ((default-directory tramp-test-temporary-file-directory)
|
||||
tmp-file)
|
||||
;; The remote host shall know a temporary file directory.
|
||||
|
|
@ -4622,7 +4656,8 @@ process sentinels. They shall not disturb each other."
|
|||
(message \"Tramp loaded: %%s\" (featurep 'tramp)) \
|
||||
(file-name-all-completions \"/foo:\" \"/\") \
|
||||
(message \"Tramp loaded: %%s\" (featurep 'tramp)))"))
|
||||
(dolist (tm '(t nil))
|
||||
;; Tramp doesn't load when `tramp-mode' is nil since Emacs 26.1.
|
||||
(dolist (tm (if (tramp--test-emacs26-p) '(t nil) '(nil)))
|
||||
(should
|
||||
(string-match
|
||||
(format
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue