diff options
| author | Glenn Morris | 2017-11-29 17:12:56 -0800 |
|---|---|---|
| committer | Glenn Morris | 2017-11-29 17:12:56 -0800 |
| commit | f069ea4f84a94bfbbd444073729f81fdd27c9445 (patch) | |
| tree | 6adf14a7d71264bb20c87a426df6e18e0edba9a3 | |
| parent | 03e1012be4028e653bd88c93846b17172b5c0faa (diff) | |
| parent | 408862f02a874dcd9cfc2599adb35dec522b3ef4 (diff) | |
| download | emacs-f069ea4f84a94bfbbd444073729f81fdd27c9445.tar.gz emacs-f069ea4f84a94bfbbd444073729f81fdd27c9445.zip | |
Merge from origin/emacs-26
408862f02a (origin/emacs-26) ; * lisp/emacs-lisp/bytecomp.el: Tweak m...
9964db4c34 Restore obsolete method of changing byte-compile-dest-file
3dd25aeecb Some minor Tramp corrections
d670a15f25 * doc/misc/url.texi (http/https): Fix typo
99d07e8d5e Remove some bogus definition-prefixes from loaddefs
6067f0c702 Shell-quote wildcards when invoking 'vc-git-grep'
0540df10e6 Update documentation of '.dir-locals-2.el'
f2441ab320 ; Fix some tiny doc and comment typos
22ff46e6d8 ; Fix some comment typos
# Conflicts:
# etc/NEWS
| -rw-r--r-- | doc/lispref/variables.texi | 7 | ||||
| -rw-r--r-- | doc/misc/url.texi | 2 | ||||
| -rw-r--r-- | etc/NEWS.26 | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/autoload.el | 1 | ||||
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 7 | ||||
| -rw-r--r-- | lisp/files.el | 18 | ||||
| -rw-r--r-- | lisp/gnus/gnus-cus.el | 4 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 4 | ||||
| -rw-r--r-- | lisp/gnus/mm-decode.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/smime.el | 2 | ||||
| -rw-r--r-- | lisp/htmlfontify.el | 2 | ||||
| -rw-r--r-- | lisp/net/mailcap.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-adb.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-gvfs.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp-smb.el | 2 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 20 | ||||
| -rw-r--r-- | lisp/progmodes/ebnf2ps.el | 2 | ||||
| -rw-r--r-- | lisp/progmodes/flymake.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc-git.el | 4 | ||||
| -rw-r--r-- | test/lisp/net/tramp-tests.el | 100 |
20 files changed, 107 insertions, 80 deletions
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index a871352b004..5bee0f9d82a 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1919,7 +1919,12 @@ settings to any file in that directory or any of its subdirectories | |||
| 1919 | (optionally, you can exclude subdirectories; see below). | 1919 | (optionally, you can exclude subdirectories; see below). |
| 1920 | If some of the subdirectories have their own @file{.dir-locals.el} | 1920 | If some of the subdirectories have their own @file{.dir-locals.el} |
| 1921 | files, Emacs uses the settings from the deepest file it finds starting | 1921 | files, Emacs uses the settings from the deepest file it finds starting |
| 1922 | from the file's directory and moving up the directory tree. The file | 1922 | from the file's directory and moving up the directory tree. This |
| 1923 | constant is also used to derive the name of a second dir-locals file | ||
| 1924 | @file{.dir-locals-2.el}. If this second dir-locals file is present, | ||
| 1925 | then that is loaded instead of @file{.dir-locals.el}. This is useful | ||
| 1926 | when @file{.dir-locals.el} is under version control in a shared | ||
| 1927 | repository and cannot be used for personal customizations. The file | ||
| 1923 | specifies local variables as a specially formatted list; see | 1928 | specifies local variables as a specially formatted list; see |
| 1924 | @ref{Directory Variables, , Per-directory Local Variables, emacs, The | 1929 | @ref{Directory Variables, , Per-directory Local Variables, emacs, The |
| 1925 | GNU Emacs Manual}, for more details. | 1930 | GNU Emacs Manual}, for more details. |
diff --git a/doc/misc/url.texi b/doc/misc/url.texi index e98fab4e011..075d0f6fed1 100644 --- a/doc/misc/url.texi +++ b/doc/misc/url.texi | |||
| @@ -401,7 +401,7 @@ gateway method to be used. @xref{Gateways in general}. | |||
| 401 | @defopt url-honor-refresh-requests | 401 | @defopt url-honor-refresh-requests |
| 402 | If this option is non-@code{nil} (the default), the @code{url} library | 402 | If this option is non-@code{nil} (the default), the @code{url} library |
| 403 | honors the HTTP @samp{Refresh} header, which is used by servers to | 403 | honors the HTTP @samp{Refresh} header, which is used by servers to |
| 404 | direct clients to reload documents from the same URL or a or different | 404 | direct clients to reload documents from the same URL or a different |
| 405 | one. If the value is @code{nil}, the @samp{Refresh} header is | 405 | one. If the value is @code{nil}, the @samp{Refresh} header is |
| 406 | ignored; any other value means to ask the user on each request. | 406 | ignored; any other value means to ask the user on each request. |
| 407 | @end defopt | 407 | @end defopt |
diff --git a/etc/NEWS.26 b/etc/NEWS.26 index f7a9feb6e49..4ccf468693c 100644 --- a/etc/NEWS.26 +++ b/etc/NEWS.26 | |||
| @@ -366,7 +366,7 @@ These local variables will thus not vanish on setting a major mode. | |||
| 366 | 366 | ||
| 367 | +++ | 367 | +++ |
| 368 | ** A second dir-local file (.dir-locals-2.el) is now accepted. | 368 | ** A second dir-local file (.dir-locals-2.el) is now accepted. |
| 369 | See the variable 'dir-locals-file-2' for more information. | 369 | See the doc string of 'dir-locals-file' for more information. |
| 370 | 370 | ||
| 371 | +++ | 371 | +++ |
| 372 | ** Connection-local variables can be used to specify local variables | 372 | ** Connection-local variables can be used to specify local variables |
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 27426c45307..7299ae9d203 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el | |||
| @@ -761,6 +761,7 @@ FILE's modification time." | |||
| 761 | "def-edebug-spec" | 761 | "def-edebug-spec" |
| 762 | ;; Hmm... this is getting ugly: | 762 | ;; Hmm... this is getting ugly: |
| 763 | "define-widget" | 763 | "define-widget" |
| 764 | "define-erc-module" | ||
| 764 | "define-erc-response-handler" | 765 | "define-erc-response-handler" |
| 765 | "defun-rcirc-command")))) | 766 | "defun-rcirc-command")))) |
| 766 | (push (match-string 2) defs)) | 767 | (push (match-string 2) defs)) |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index e4d8a202a3b..e5a1ea782e8 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -172,6 +172,12 @@ are found in the same directory is hard-coded in various places in Emacs.)" | |||
| 172 | (funcall handler 'byte-compiler-base-file-name filename) | 172 | (funcall handler 'byte-compiler-base-file-name filename) |
| 173 | filename))) | 173 | filename))) |
| 174 | 174 | ||
| 175 | ;; Sadly automake relies on this misfeature up to at least version 1.15.1. | ||
| 176 | (if (fboundp 'byte-compile-dest-file) | ||
| 177 | (or (featurep 'bytecomp) | ||
| 178 | (display-warning 'bytecomp (format-message "\ | ||
| 179 | Changing `byte-compile-dest-file' is obsolete (as of 23.2); | ||
| 180 | set `byte-compile-dest-file-function' instead."))) | ||
| 175 | (defun byte-compile-dest-file (filename) | 181 | (defun byte-compile-dest-file (filename) |
| 176 | "Convert an Emacs Lisp source file name to a compiled file name. | 182 | "Convert an Emacs Lisp source file name to a compiled file name. |
| 177 | If `byte-compile-dest-file-function' is non-nil, uses that | 183 | If `byte-compile-dest-file-function' is non-nil, uses that |
| @@ -186,6 +192,7 @@ otherwise adds \".elc\"." | |||
| 186 | (cond ((string-match emacs-lisp-file-regexp filename) | 192 | (cond ((string-match emacs-lisp-file-regexp filename) |
| 187 | (concat (substring filename 0 (match-beginning 0)) ".elc")) | 193 | (concat (substring filename 0 (match-beginning 0)) ".elc")) |
| 188 | (t (concat filename ".elc"))))) | 194 | (t (concat filename ".elc"))))) |
| 195 | ) | ||
| 189 | 196 | ||
| 190 | ;; This can be the 'byte-compile property of any symbol. | 197 | ;; This can be the 'byte-compile property of any symbol. |
| 191 | (autoload 'byte-compile-inline-expand "byte-opt") | 198 | (autoload 'byte-compile-inline-expand "byte-opt") |
diff --git a/lisp/files.el b/lisp/files.el index 5d78cd07b6e..25746094d2a 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -3905,16 +3905,16 @@ VARIABLES list of the class. The list is processed in order. | |||
| 3905 | "File that contains directory-local variables. | 3905 | "File that contains directory-local variables. |
| 3906 | It has to be constant to enforce uniform values across different | 3906 | It has to be constant to enforce uniform values across different |
| 3907 | environments and users. | 3907 | environments and users. |
| 3908 | See also `dir-locals-file-2', whose values override this one's. | ||
| 3909 | See Info node `(elisp)Directory Local Variables' for details.") | ||
| 3910 | 3908 | ||
| 3911 | (defconst dir-locals-file-2 ".dir-locals-2.el" | 3909 | A second dir-locals file can be used by a user to specify their |
| 3912 | "File that contains directory-local variables. | 3910 | personal dir-local variables even if the current directory |
| 3913 | This essentially a second file that can be used like | 3911 | already has a `dir-locals-file' that is shared with other |
| 3914 | `dir-locals-file', so that users can have specify their personal | 3912 | users (such as in a git repository). The name of this second |
| 3915 | dir-local variables even if the current directory already has a | 3913 | file is derived by appending \"-2\" to the base name of |
| 3916 | `dir-locals-file' that is shared with other users (such as in a | 3914 | `dir-locals-file'. With the default value of `dir-locals-file', |
| 3917 | git repository). | 3915 | a \".dir-locals-2.el\" file in the same directory will override |
| 3916 | the \".dir-locals.el\". | ||
| 3917 | |||
| 3918 | See Info node `(elisp)Directory Local Variables' for details.") | 3918 | See Info node `(elisp)Directory Local Variables' for details.") |
| 3919 | 3919 | ||
| 3920 | (defun dir-locals--all-files (directory) | 3920 | (defun dir-locals--all-files (directory) |
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el index c22c9c1d5ac..f698d806171 100644 --- a/lisp/gnus/gnus-cus.el +++ b/lisp/gnus/gnus-cus.el | |||
| @@ -454,7 +454,7 @@ Set variables local to the group you are entering. | |||
| 454 | If you want to turn threading off in `news.answers', you could put | 454 | If you want to turn threading off in `news.answers', you could put |
| 455 | `(gnus-show-threads nil)' in the group parameters of that group. | 455 | `(gnus-show-threads nil)' in the group parameters of that group. |
| 456 | `gnus-show-threads' will be made into a local variable in the summary | 456 | `gnus-show-threads' will be made into a local variable in the summary |
| 457 | buffer you enter, and the form nil will be `eval'ed there. | 457 | buffer you enter, and the form nil will be `eval'uated there. |
| 458 | 458 | ||
| 459 | This can also be used as a group-specific hook function, if you'd | 459 | This can also be used as a group-specific hook function, if you'd |
| 460 | like. If you want to hear a beep when you enter a group, you could | 460 | like. If you want to hear a beep when you enter a group, you could |
| @@ -535,7 +535,7 @@ These files will not be loaded, even though they would normally be so, | |||
| 535 | for some reason or other.") | 535 | for some reason or other.") |
| 536 | 536 | ||
| 537 | (eval (sexp :tag "Eval" :value nil) "\ | 537 | (eval (sexp :tag "Eval" :value nil) "\ |
| 538 | The value of this entry will be `eval'el. | 538 | The value of this entry will be `eval'uated. |
| 539 | This element will be ignored when handling global score files.") | 539 | This element will be ignored when handling global score files.") |
| 540 | 540 | ||
| 541 | (read-only (boolean :tag "Read-only" :value t) "\ | 541 | (read-only (boolean :tag "Read-only" :value t) "\ |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 1f1302e3fc8..8e3d299ee80 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -4774,7 +4774,7 @@ to find out how to use this." | |||
| 4774 | message-qmail-inject-program nil nil nil | 4774 | message-qmail-inject-program nil nil nil |
| 4775 | ;; qmail-inject's default behavior is to look for addresses on the | 4775 | ;; qmail-inject's default behavior is to look for addresses on the |
| 4776 | ;; command line; if there're none, it scans the headers. | 4776 | ;; command line; if there're none, it scans the headers. |
| 4777 | ;; yes, it does The Right Thing w.r.t. Resent-To and it's kin. | 4777 | ;; yes, it does The Right Thing w.r.t. Resent-To and its kin. |
| 4778 | ;; | 4778 | ;; |
| 4779 | ;; in general, ALL of qmail-inject's defaults are perfect for simply | 4779 | ;; in general, ALL of qmail-inject's defaults are perfect for simply |
| 4780 | ;; reading a formatted (i. e., at least a To: or Resent-To header) | 4780 | ;; reading a formatted (i. e., at least a To: or Resent-To header) |
| @@ -4792,7 +4792,7 @@ to find out how to use this." | |||
| 4792 | (if (functionp message-qmail-inject-args) | 4792 | (if (functionp message-qmail-inject-args) |
| 4793 | (funcall message-qmail-inject-args) | 4793 | (funcall message-qmail-inject-args) |
| 4794 | message-qmail-inject-args))) | 4794 | message-qmail-inject-args))) |
| 4795 | ;; qmail-inject doesn't say anything on it's stdout/stderr, | 4795 | ;; qmail-inject doesn't say anything on its stdout/stderr, |
| 4796 | ;; we have to look at the retval instead | 4796 | ;; we have to look at the retval instead |
| 4797 | (0 nil) | 4797 | (0 nil) |
| 4798 | (100 (error "qmail-inject reported permanent failure")) | 4798 | (100 (error "qmail-inject reported permanent failure")) |
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index c6ac0567fbb..82b378e6270 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el | |||
| @@ -676,7 +676,7 @@ MIME-Version header before proceeding." | |||
| 676 | (mm-alist-to-plist (cdr ctl)) (car ctl)) | 676 | (mm-alist-to-plist (cdr ctl)) (car ctl)) |
| 677 | 677 | ||
| 678 | ;; what really needs to be done here is a way to link a | 678 | ;; what really needs to be done here is a way to link a |
| 679 | ;; MIME handle back to it's parent MIME handle (in a multilevel | 679 | ;; MIME handle back to its parent MIME handle (in a multilevel |
| 680 | ;; MIME article). That would probably require changing | 680 | ;; MIME article). That would probably require changing |
| 681 | ;; the mm-handle API so we simply store the multipart buffer | 681 | ;; the mm-handle API so we simply store the multipart buffer |
| 682 | ;; name as a text property of the "multipart/whatever" string. | 682 | ;; name as a text property of the "multipart/whatever" string. |
diff --git a/lisp/gnus/smime.el b/lisp/gnus/smime.el index f62b65a0661..21f8c09e1cb 100644 --- a/lisp/gnus/smime.el +++ b/lisp/gnus/smime.el | |||
| @@ -67,7 +67,7 @@ | |||
| 67 | ;; | 67 | ;; |
| 68 | ;; To be able to verify messages you need to build up trust with | 68 | ;; To be able to verify messages you need to build up trust with |
| 69 | ;; someone. Perhaps you trust the CA that issued your certificate, at | 69 | ;; someone. Perhaps you trust the CA that issued your certificate, at |
| 70 | ;; least I did, so I export it's certificates from my PKCS#12 | 70 | ;; least I did, so I export its certificates from my PKCS#12 |
| 71 | ;; certificate with: | 71 | ;; certificate with: |
| 72 | ;; | 72 | ;; |
| 73 | ;; $ openssl pkcs12 -in mykey.p12 -cacerts -nodes > cacert.pem | 73 | ;; $ openssl pkcs12 -in mykey.p12 -cacerts -nodes > cacert.pem |
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el index a4c68d329b7..cb4c83d33e0 100644 --- a/lisp/htmlfontify.el +++ b/lisp/htmlfontify.el | |||
| @@ -461,7 +461,7 @@ and so on." | |||
| 461 | optimization - If on, preserve overlay highlighting | 461 | optimization - If on, preserve overlay highlighting |
| 462 | (cf ediff or goo-font-lock) as well as basic faces.\n | 462 | (cf ediff or goo-font-lock) as well as basic faces.\n |
| 463 | body-text-only : Emit only body-text. In concrete terms, | 463 | body-text-only : Emit only body-text. In concrete terms, |
| 464 | 1. Suppress calls to `hfy-page-header'and | 464 | 1. Suppress calls to `hfy-page-header' and |
| 465 | `hfy-page-footer' | 465 | `hfy-page-footer' |
| 466 | 2. Pretend that `div-wrapper' option above is | 466 | 2. Pretend that `div-wrapper' option above is |
| 467 | turned off | 467 | turned off |
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el index 86587466ef5..b4b38707c89 100644 --- a/lisp/net/mailcap.el +++ b/lisp/net/mailcap.el | |||
| @@ -323,7 +323,7 @@ means the viewer is always valid. If it is a Lisp function, it is | |||
| 323 | called with a list of items from any extra fields from the | 323 | called with a list of items from any extra fields from the |
| 324 | Content-Type header as argument to return a boolean value for the | 324 | Content-Type header as argument to return a boolean value for the |
| 325 | validity. Otherwise, if it is a non-function Lisp symbol or list | 325 | validity. Otherwise, if it is a non-function Lisp symbol or list |
| 326 | whose car is a symbol, it is `eval'led to yield the validity. If it | 326 | whose car is a symbol, it is `eval'uated to yield the validity. If it |
| 327 | is a string or list of strings, it represents a shell command to run | 327 | is a string or list of strings, it represents a shell command to run |
| 328 | to return a true or false shell value for the validity.") | 328 | to return a true or false shell value for the validity.") |
| 329 | (put 'mailcap-mime-data 'risky-local-variable t) | 329 | (put 'mailcap-mime-data 'risky-local-variable t) |
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index bf21db2e8d8..8399c02923d 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el | |||
| @@ -137,7 +137,7 @@ It is used for TCP/IP devices." | |||
| 137 | (file-readable-p . tramp-handle-file-exists-p) | 137 | (file-readable-p . tramp-handle-file-exists-p) |
| 138 | (file-regular-p . tramp-handle-file-regular-p) | 138 | (file-regular-p . tramp-handle-file-regular-p) |
| 139 | (file-remote-p . tramp-handle-file-remote-p) | 139 | (file-remote-p . tramp-handle-file-remote-p) |
| 140 | (file-selinux-context . ignore) | 140 | (file-selinux-context . tramp-handle-file-selinux-context) |
| 141 | (file-symlink-p . tramp-handle-file-symlink-p) | 141 | (file-symlink-p . tramp-handle-file-symlink-p) |
| 142 | (file-system-info . tramp-adb-handle-file-system-info) | 142 | (file-system-info . tramp-adb-handle-file-system-info) |
| 143 | (file-truename . tramp-adb-handle-file-truename) | 143 | (file-truename . tramp-adb-handle-file-truename) |
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 404af983b50..fe5a98909e0 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el | |||
| @@ -517,7 +517,7 @@ Every entry is a list (NAME ADDRESS).") | |||
| 517 | (file-readable-p . tramp-gvfs-handle-file-readable-p) | 517 | (file-readable-p . tramp-gvfs-handle-file-readable-p) |
| 518 | (file-regular-p . tramp-handle-file-regular-p) | 518 | (file-regular-p . tramp-handle-file-regular-p) |
| 519 | (file-remote-p . tramp-handle-file-remote-p) | 519 | (file-remote-p . tramp-handle-file-remote-p) |
| 520 | (file-selinux-context . ignore) | 520 | (file-selinux-context . tramp-handle-file-selinux-context) |
| 521 | (file-symlink-p . tramp-handle-file-symlink-p) | 521 | (file-symlink-p . tramp-handle-file-symlink-p) |
| 522 | (file-system-info . tramp-gvfs-handle-file-system-info) | 522 | (file-system-info . tramp-gvfs-handle-file-system-info) |
| 523 | (file-truename . tramp-handle-file-truename) | 523 | (file-truename . tramp-handle-file-truename) |
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index f35c10b58ab..eb0d6b50731 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el | |||
| @@ -253,7 +253,7 @@ See `tramp-actions-before-shell' for more info.") | |||
| 253 | (file-readable-p . tramp-handle-file-exists-p) | 253 | (file-readable-p . tramp-handle-file-exists-p) |
| 254 | (file-regular-p . tramp-handle-file-regular-p) | 254 | (file-regular-p . tramp-handle-file-regular-p) |
| 255 | (file-remote-p . tramp-handle-file-remote-p) | 255 | (file-remote-p . tramp-handle-file-remote-p) |
| 256 | ;; `file-selinux-context' performed by default handler. | 256 | (file-selinux-context . tramp-handle-file-selinux-context) |
| 257 | (file-symlink-p . tramp-handle-file-symlink-p) | 257 | (file-symlink-p . tramp-handle-file-symlink-p) |
| 258 | (file-system-info . tramp-smb-handle-file-system-info) | 258 | (file-system-info . tramp-smb-handle-file-system-info) |
| 259 | (file-truename . tramp-handle-file-truename) | 259 | (file-truename . tramp-handle-file-truename) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index cf2218dd1ec..d41ae82e1be 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2937,14 +2937,13 @@ User is always nil." | |||
| 2937 | "Like `directory-file-name' for Tramp files." | 2937 | "Like `directory-file-name' for Tramp files." |
| 2938 | ;; If localname component of filename is "/", leave it unchanged. | 2938 | ;; If localname component of filename is "/", leave it unchanged. |
| 2939 | ;; Otherwise, remove any trailing slash from localname component. | 2939 | ;; Otherwise, remove any trailing slash from localname component. |
| 2940 | ;; Method, host, etc, are unchanged. Does it make sense to try | 2940 | ;; Method, host, etc, are unchanged. |
| 2941 | ;; to avoid parsing the filename? | 2941 | (while (with-parsed-tramp-file-name directory nil |
| 2942 | (with-parsed-tramp-file-name directory nil | 2942 | (and (not (zerop (length localname))) |
| 2943 | (if (and (not (zerop (length localname))) | 2943 | (eq (aref localname (1- (length localname))) ?/) |
| 2944 | (eq (aref localname (1- (length localname))) ?/) | 2944 | (not (string= localname "/")))) |
| 2945 | (not (string= localname "/"))) | 2945 | (setq directory (substring directory 0 -1))) |
| 2946 | (substring directory 0 -1) | 2946 | directory) |
| 2947 | directory))) | ||
| 2948 | 2947 | ||
| 2949 | (defun tramp-handle-directory-files (directory &optional full match nosort) | 2948 | (defun tramp-handle-directory-files (directory &optional full match nosort) |
| 2950 | "Like `directory-files' for Tramp files." | 2949 | "Like `directory-files' for Tramp files." |
| @@ -3172,6 +3171,11 @@ User is always nil." | |||
| 3172 | (t (tramp-make-tramp-file-name | 3171 | (t (tramp-make-tramp-file-name |
| 3173 | method user domain host port "" hop))))))))) | 3172 | method user domain host port "" hop))))))))) |
| 3174 | 3173 | ||
| 3174 | (defun tramp-handle-file-selinux-context (_filename) | ||
| 3175 | "Like `file-selinux-context' for Tramp files." | ||
| 3176 | ;; Return nil context. | ||
| 3177 | '(nil nil nil nil)) | ||
| 3178 | |||
| 3175 | (defun tramp-handle-file-symlink-p (filename) | 3179 | (defun tramp-handle-file-symlink-p (filename) |
| 3176 | "Like `file-symlink-p' for Tramp files." | 3180 | "Like `file-symlink-p' for Tramp files." |
| 3177 | (let ((x (tramp-compat-file-attribute-type (file-attributes filename)))) | 3181 | (let ((x (tramp-compat-file-attribute-type (file-attributes filename)))) |
diff --git a/lisp/progmodes/ebnf2ps.el b/lisp/progmodes/ebnf2ps.el index 5c9a106d41a..e40104353ac 100644 --- a/lisp/progmodes/ebnf2ps.el +++ b/lisp/progmodes/ebnf2ps.el | |||
| @@ -1135,7 +1135,7 @@ Please send all bug fixes and enhancements to | |||
| 1135 | ;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions: | 1135 | ;; Thanks to Drew Adams <drew.adams@oracle.com> for suggestions: |
| 1136 | ;; - `ebnf-arrow-extra-width', `ebnf-arrow-scale', | 1136 | ;; - `ebnf-arrow-extra-width', `ebnf-arrow-scale', |
| 1137 | ;; `ebnf-production-name-p', `ebnf-stop-on-error', | 1137 | ;; `ebnf-production-name-p', `ebnf-stop-on-error', |
| 1138 | ;; `ebnf-file-suffix-regexp'and `ebnf-special-show-delimiter' variables. | 1138 | ;; `ebnf-file-suffix-regexp' and `ebnf-special-show-delimiter' variables. |
| 1139 | ;; - `ebnf-delete-style', `ebnf-eps-file' and `ebnf-eps-directory' | 1139 | ;; - `ebnf-delete-style', `ebnf-eps-file' and `ebnf-eps-directory' |
| 1140 | ;; commands. | 1140 | ;; commands. |
| 1141 | ;; - some docs fix. | 1141 | ;; - some docs fix. |
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index aac167357ec..15a36175970 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el | |||
| @@ -125,7 +125,7 @@ If nil, never start checking buffer automatically like this." | |||
| 125 | "it no longer has any effect." "26.1") | 125 | "it no longer has any effect." "26.1") |
| 126 | 126 | ||
| 127 | (defcustom flymake-start-on-flymake-mode t | 127 | (defcustom flymake-start-on-flymake-mode t |
| 128 | "Start syntax check when `flymake-mode'is enabled. | 128 | "Start syntax check when `flymake-mode' is enabled. |
| 129 | Specifically, start it when the buffer is actually displayed." | 129 | Specifically, start it when the buffer is actually displayed." |
| 130 | :type 'boolean) | 130 | :type 'boolean) |
| 131 | 131 | ||
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 2c807a38cd5..ab8b358cf2c 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el | |||
| @@ -1431,7 +1431,9 @@ This command shares argument histories with \\[rgrep] and \\[grep]." | |||
| 1431 | nil nil 'grep-history) | 1431 | nil nil 'grep-history) |
| 1432 | nil)) | 1432 | nil)) |
| 1433 | (t (let* ((regexp (grep-read-regexp)) | 1433 | (t (let* ((regexp (grep-read-regexp)) |
| 1434 | (files (grep-read-files regexp)) | 1434 | (files |
| 1435 | (mapconcat #'shell-quote-argument | ||
| 1436 | (split-string (grep-read-files regexp)) " ")) | ||
| 1435 | (dir (read-directory-name "In directory: " | 1437 | (dir (read-directory-name "In directory: " |
| 1436 | nil default-directory t))) | 1438 | nil default-directory t))) |
| 1437 | (list regexp files dir)))))) | 1439 | (list regexp files dir)))))) |
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 8310003d9b1..044ab9329ff 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el | |||
| @@ -1685,6 +1685,10 @@ This checks also `file-name-as-directory', `file-name-directory', | |||
| 1685 | "/method:host:/path/to/file")) | 1685 | "/method:host:/path/to/file")) |
| 1686 | (should | 1686 | (should |
| 1687 | (string-equal | 1687 | (string-equal |
| 1688 | (directory-file-name "/method:host:/path/to/file//") | ||
| 1689 | "/method:host:/path/to/file")) | ||
| 1690 | (should | ||
| 1691 | (string-equal | ||
| 1688 | (file-name-as-directory "/method:host:/path/to/file") | 1692 | (file-name-as-directory "/method:host:/path/to/file") |
| 1689 | "/method:host:/path/to/file/")) | 1693 | "/method:host:/path/to/file/")) |
| 1690 | (should | 1694 | (should |
| @@ -2341,7 +2345,10 @@ This tests also `file-directory-p' and `file-accessible-directory-p'." | |||
| 2341 | ;; There might be a summary line. | 2345 | ;; There might be a summary line. |
| 2342 | "\\(total.+[[:digit:]]+\n\\)?" | 2346 | "\\(total.+[[:digit:]]+\n\\)?" |
| 2343 | ;; We don't know in which order ".", ".." and "foo" appear. | 2347 | ;; We don't know in which order ".", ".." and "foo" appear. |
| 2344 | "\\(.+ \\(\\.?\\.\\|foo\\)\n\\)\\{3\\}"))))) | 2348 | (format |
| 2349 | "\\(.+ %s\\( ->.+\\)?\n\\)\\{%d\\}" | ||
| 2350 | (regexp-opt (directory-files tmp-name1)) | ||
| 2351 | (length (directory-files tmp-name1)))))))) | ||
| 2345 | 2352 | ||
| 2346 | ;; Cleanup. | 2353 | ;; Cleanup. |
| 2347 | (ignore-errors (delete-directory tmp-name1 'recursive)))))) | 2354 | (ignore-errors (delete-directory tmp-name1 'recursive)))))) |
| @@ -4445,8 +4452,8 @@ Use the `ls' command." | |||
| 4445 | ;; Since Emacs 27.1. | 4452 | ;; Since Emacs 27.1. |
| 4446 | (skip-unless (fboundp 'file-system-info)) | 4453 | (skip-unless (fboundp 'file-system-info)) |
| 4447 | 4454 | ||
| 4448 | ;; `file-system-info' exists since Emacs 27. We don't | 4455 | ;; `file-system-info' exists since Emacs 27. We don't want to see |
| 4449 | ;; want to see compiler warnings for older Emacsen. | 4456 | ;; compiler warnings for older Emacsen. |
| 4450 | (let ((fsi (with-no-warnings | 4457 | (let ((fsi (with-no-warnings |
| 4451 | (file-system-info tramp-test-temporary-file-directory)))) | 4458 | (file-system-info tramp-test-temporary-file-directory)))) |
| 4452 | (skip-unless fsi) | 4459 | (skip-unless fsi) |
| @@ -4622,22 +4629,50 @@ process sentinels. They shall not disturb each other." | |||
| 4622 | (skip-unless (tramp--test-enabled)) | 4629 | (skip-unless (tramp--test-enabled)) |
| 4623 | (skip-unless (not (tramp--test-mock-p))) | 4630 | (skip-unless (not (tramp--test-mock-p))) |
| 4624 | 4631 | ||
| 4625 | (let ((default-directory (expand-file-name temporary-file-directory))) | 4632 | (let ((default-directory (expand-file-name temporary-file-directory)) |
| 4626 | (let ((code | 4633 | (code |
| 4627 | (format | 4634 | (format |
| 4628 | "(message \"Tramp loaded: %%s\" (consp (file-attributes \"%s\")))" | 4635 | "(message \"Tramp loaded: %%s\" (consp (file-attributes %S)))" |
| 4629 | tramp-test-temporary-file-directory))) | 4636 | tramp-test-temporary-file-directory))) |
| 4637 | (should | ||
| 4638 | (string-match | ||
| 4639 | "Tramp loaded: t[\n\r]+" | ||
| 4640 | (shell-command-to-string | ||
| 4641 | (format | ||
| 4642 | "%s -batch -Q -L %s --eval %s" | ||
| 4643 | (expand-file-name invocation-name invocation-directory) | ||
| 4644 | (mapconcat 'shell-quote-argument load-path " -L ") | ||
| 4645 | (shell-quote-argument code))))))) | ||
| 4646 | |||
| 4647 | (ert-deftest tramp-test42-delay-load () | ||
| 4648 | "Check that Tramp is loaded lazily, only when needed." | ||
| 4649 | ;; Tramp is neither loaded at Emacs startup, nor when completing a | ||
| 4650 | ;; non-Tramp file name like "/foo". Completing a Tramp-alike file | ||
| 4651 | ;; name like "/foo:" autoloads Tramp, when `tramp-mode' is t. | ||
| 4652 | (let ((default-directory (expand-file-name temporary-file-directory)) | ||
| 4653 | (code | ||
| 4654 | "(progn \ | ||
| 4655 | (setq tramp-mode %s) \ | ||
| 4656 | (message \"Tramp loaded: %%s\" (featurep 'tramp)) \ | ||
| 4657 | (file-name-all-completions \"/foo\" \"/\") \ | ||
| 4658 | (message \"Tramp loaded: %%s\" (featurep 'tramp)) \ | ||
| 4659 | (file-name-all-completions \"/foo:\" \"/\") \ | ||
| 4660 | (message \"Tramp loaded: %%s\" (featurep 'tramp)))")) | ||
| 4661 | ;; Tramp doesn't load when `tramp-mode' is nil since Emacs 26.1. | ||
| 4662 | (dolist (tm (if (tramp--test-emacs26-p) '(t nil) '(nil))) | ||
| 4630 | (should | 4663 | (should |
| 4631 | (string-match | 4664 | (string-match |
| 4632 | "Tramp loaded: t[\n\r]+" | 4665 | (format |
| 4666 | "Tramp loaded: nil[\n\r]+Tramp loaded: nil[\n\r]+Tramp loaded: %s[\n\r]+" | ||
| 4667 | tm) | ||
| 4633 | (shell-command-to-string | 4668 | (shell-command-to-string |
| 4634 | (format | 4669 | (format |
| 4635 | "%s -batch -Q -L %s --eval %s" | 4670 | "%s -batch -Q -L %s --eval %s" |
| 4636 | (expand-file-name invocation-name invocation-directory) | 4671 | (expand-file-name invocation-name invocation-directory) |
| 4637 | (mapconcat 'shell-quote-argument load-path " -L ") | 4672 | (mapconcat 'shell-quote-argument load-path " -L ") |
| 4638 | (shell-quote-argument code)))))))) | 4673 | (shell-quote-argument (format code tm))))))))) |
| 4639 | 4674 | ||
| 4640 | (ert-deftest tramp-test43-recursive-load () | 4675 | (ert-deftest tramp-test42-recursive-load () |
| 4641 | "Check that Tramp does not fail due to recursive load." | 4676 | "Check that Tramp does not fail due to recursive load." |
| 4642 | (skip-unless (tramp--test-enabled)) | 4677 | (skip-unless (tramp--test-enabled)) |
| 4643 | 4678 | ||
| @@ -4660,7 +4695,7 @@ process sentinels. They shall not disturb each other." | |||
| 4660 | (mapconcat 'shell-quote-argument load-path " -L ") | 4695 | (mapconcat 'shell-quote-argument load-path " -L ") |
| 4661 | (shell-quote-argument code)))))))) | 4696 | (shell-quote-argument code)))))))) |
| 4662 | 4697 | ||
| 4663 | (ert-deftest tramp-test44-remote-load-path () | 4698 | (ert-deftest tramp-test42-remote-load-path () |
| 4664 | "Check that Tramp autoloads its packages with remote `load-path'." | 4699 | "Check that Tramp autoloads its packages with remote `load-path'." |
| 4665 | ;; `tramp-cleanup-all-connections' is autoloaded from tramp-cmds.el. | 4700 | ;; `tramp-cleanup-all-connections' is autoloaded from tramp-cmds.el. |
| 4666 | ;; It shall still work, when a remote file name is in the | 4701 | ;; It shall still work, when a remote file name is in the |
| @@ -4683,34 +4718,7 @@ process sentinels. They shall not disturb each other." | |||
| 4683 | (mapconcat 'shell-quote-argument load-path " -L ") | 4718 | (mapconcat 'shell-quote-argument load-path " -L ") |
| 4684 | (shell-quote-argument code))))))) | 4719 | (shell-quote-argument code))))))) |
| 4685 | 4720 | ||
| 4686 | (ert-deftest tramp-test45-delay-load () | 4721 | (ert-deftest tramp-test43-unload () |
| 4687 | "Check that Tramp is loaded lazily, only when needed." | ||
| 4688 | ;; Tramp is neither loaded at Emacs startup, nor when completing a | ||
| 4689 | ;; non-Tramp file name like "/foo". Completing a Tramp-alike file | ||
| 4690 | ;; name like "/foo:" autoloads Tramp, when `tramp-mode' is t. | ||
| 4691 | (let ((code | ||
| 4692 | "(progn \ | ||
| 4693 | (setq tramp-mode %s) \ | ||
| 4694 | (message \"Tramp loaded: %%s\" (featurep 'tramp)) \ | ||
| 4695 | (file-name-all-completions \"/foo\" \"/\") \ | ||
| 4696 | (message \"Tramp loaded: %%s\" (featurep 'tramp)) \ | ||
| 4697 | (file-name-all-completions \"/foo:\" \"/\") \ | ||
| 4698 | (message \"Tramp loaded: %%s\" (featurep 'tramp)))")) | ||
| 4699 | ;; Tramp doesn't load when `tramp-mode' is nil since Emacs 26.1. | ||
| 4700 | (dolist (tm (if (tramp--test-emacs26-p) '(t nil) '(nil))) | ||
| 4701 | (should | ||
| 4702 | (string-match | ||
| 4703 | (format | ||
| 4704 | "Tramp loaded: nil[\n\r]+Tramp loaded: nil[\n\r]+Tramp loaded: %s[\n\r]+" | ||
| 4705 | tm) | ||
| 4706 | (shell-command-to-string | ||
| 4707 | (format | ||
| 4708 | "%s -batch -Q -L %s --eval %s" | ||
| 4709 | (expand-file-name invocation-name invocation-directory) | ||
| 4710 | (mapconcat 'shell-quote-argument load-path " -L ") | ||
| 4711 | (shell-quote-argument (format code tm))))))))) | ||
| 4712 | |||
| 4713 | (ert-deftest tramp-test46-unload () | ||
| 4714 | "Check that Tramp and its subpackages unload completely. | 4722 | "Check that Tramp and its subpackages unload completely. |
| 4715 | Since it unloads Tramp, it shall be the last test to run." | 4723 | Since it unloads Tramp, it shall be the last test to run." |
| 4716 | :tags '(:expensive-test) | 4724 | :tags '(:expensive-test) |
| @@ -4756,6 +4764,12 @@ Since it unloads Tramp, it shall be the last test to run." | |||
| 4756 | (ignore-errors (all-completions "tramp" (symbol-value x))) | 4764 | (ignore-errors (all-completions "tramp" (symbol-value x))) |
| 4757 | (ert-fail (format "Hook `%s' still contains Tramp function" x))))))) | 4765 | (ert-fail (format "Hook `%s' still contains Tramp function" x))))))) |
| 4758 | 4766 | ||
| 4767 | (defun tramp-test-all (&optional interactive) | ||
| 4768 | "Run all tests for \\[tramp]." | ||
| 4769 | (interactive "p") | ||
| 4770 | (funcall | ||
| 4771 | (if interactive 'ert-run-tests-interactively 'ert-run-tests-batch) "^tramp")) | ||
| 4772 | |||
| 4759 | ;; TODO: | 4773 | ;; TODO: |
| 4760 | 4774 | ||
| 4761 | ;; * dired-compress-file | 4775 | ;; * dired-compress-file |
| @@ -4769,11 +4783,5 @@ Since it unloads Tramp, it shall be the last test to run." | |||
| 4769 | ;; * Fix `tramp-test30-interrupt-process', timeout doesn't work reliably. | 4783 | ;; * Fix `tramp-test30-interrupt-process', timeout doesn't work reliably. |
| 4770 | ;; * Fix Bug#16928 in `tramp-test41-asynchronous-requests'. | 4784 | ;; * Fix Bug#16928 in `tramp-test41-asynchronous-requests'. |
| 4771 | 4785 | ||
| 4772 | (defun tramp-test-all (&optional interactive) | ||
| 4773 | "Run all tests for \\[tramp]." | ||
| 4774 | (interactive "p") | ||
| 4775 | (funcall | ||
| 4776 | (if interactive 'ert-run-tests-interactively 'ert-run-tests-batch) "^tramp")) | ||
| 4777 | |||
| 4778 | (provide 'tramp-tests) | 4786 | (provide 'tramp-tests) |
| 4779 | ;;; tramp-tests.el ends here | 4787 | ;;; tramp-tests.el ends here |