commit 20c6a516ecaa4ef5d4f9a8c9dd74ffb023236df4 (HEAD, refs/remotes/origin/master) Author: Damien Cassou Date: Wed Apr 11 15:28:11 2018 +0200 * etc/NEWS: Fix entry regarding automatic encryption of (Bug#31124) messages diff --git a/etc/NEWS b/etc/NEWS index caa67c90b2..670167165a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -358,7 +358,7 @@ It was obsolete since Emacs 22.1, replaced by customize. +++ *** Messages can now be systematically encrypted when the PGP keyring contains a public key for every recipient. To -achieve this, add 'message-add-encrypt-tag-if-can-encrypt' to +achieve this, add 'message-sign-encrypt-if-all-keys-available' to 'message-send-hook'. * New Modes and Packages in Emacs 27.1 commit 1160af606c45c094ca79c78e16de9b6902a3a79d Author: Noam Postavsky Date: Wed Apr 11 21:00:57 2018 -0400 ; doc/misc/gnus.texi (Fancy Mail Splitting): Fix misplaced @item. diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index de219c6e56..dd8fde494b 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -15489,10 +15489,10 @@ Matches the @samp{To}, @samp{Cc}, @samp{Apparently-To}, @samp{Resent-To} and @samp{Resent-Cc} fields. @item any Is the union of the @code{from} and @code{to} entries. -@end table @item list Matches the @samp{List-ID}, @samp{List-Post}, @samp{X-Mailing-List}, @samp{X-BeenThere} and @samp{X-Loop} fields. +@end table @vindex nnmail-split-fancy-syntax-table @code{nnmail-split-fancy-syntax-table} is the syntax table in effect commit 10f5f4361b9783f1cc4a683cca31ab3192fe179d Author: Shanavas M Date: Thu Mar 22 12:20:22 2018 +0300 Add tests for buffer-base-buffer function (Bug#30905) * test/src/buffer-tests.el (test-buffer-base-buffer-indirect) (test-buffer-base-buffer-non-indirect): New tests for `buffer-base-buffer'. diff --git a/test/src/buffer-tests.el b/test/src/buffer-tests.el index f9c477fbfd..d115e66817 100644 --- a/test/src/buffer-tests.el +++ b/test/src/buffer-tests.el @@ -50,4 +50,14 @@ with parameters from the *Messages* buffer modification." (progn (get-buffer-create "nil") (generate-new-buffer-name "nil"))))) +(ert-deftest test-buffer-base-buffer-indirect () + (with-temp-buffer + (let* ((ind-buf-name (generate-new-buffer-name "indbuf")) + (ind-buf (make-indirect-buffer (current-buffer) ind-buf-name))) + (should (eq (buffer-base-buffer ind-buf) (current-buffer)))))) + +(ert-deftest test-buffer-base-buffer-non-indirect () + (with-temp-buffer + (should (eq (buffer-base-buffer (current-buffer)) nil)))) + ;;; buffer-tests.el ends here commit 6273503660e055dddbf081e94040d4b1b4735c93 Author: Paul Eggert Date: Wed Apr 11 17:03:43 2018 -0700 make-dist: fix bug with top-level ChangeLog Problem reported by Glenn Morris in: https://lists.gnu.org/r/emacs-devel/2018-04/msg00307.html * make-dist (top_level_ChangeLog): New var. Use it to link top-level ChangeLog only when desired. diff --git a/make-dist b/make-dist index 7fd227862b..4f420a9748 100755 --- a/make-dist +++ b/make-dist @@ -358,12 +358,14 @@ fi echo "Creating top directory: '${tempdir}'" mkdir ${tempdir} || exit +top_level_ChangeLog= if [ "$changelog" = yes ]; then if test -r .git; then ## When making a release or pretest the ChangeLog should already ## have been created and edited as needed. Don't ignore it. if test -r ChangeLog; then echo "Using existing top-level ChangeLog" + top_level_ChangeLog=ChangeLog else echo "Making top-level ChangeLog" make ChangeLog CHANGELOG=${tempdir}/ChangeLog || \ @@ -383,9 +385,9 @@ top_level=' INSTALL README BUGS ChangeLog.*[0-9] Makefile.in autogen.sh configure configure.ac config.bat make-dist .dir-locals.el - aclocal.m4 CONTRIBUTE ChangeLog + aclocal.m4 CONTRIBUTE ' -ln $top_level $tempdir || exit +ln $top_level $top_level_ChangeLog $tempdir || exit echo "Creating subdirectories" for subdir in site-lisp \ commit 57442b6812e9ec565efc39f722e84079dd71d8c0 Author: Alain Schneble Date: Thu Apr 12 00:51:19 2018 +0200 Support port number in Gnus X-Message-SMTP-Method header * lisp/gnus/message.el (message-multi-smtp-send-mail): Try to parse service as port number. If it succeeds, use parsed number, else use supplied service name as before (bug#24653). (This only matters on some operating systems.) diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index fdb296fc24..b979e1c504 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -4676,9 +4676,11 @@ that instead." (message-send-mail-with-sendmail)) ((equal (car method) "smtp") (require 'smtpmail) - (let ((smtpmail-smtp-server (nth 1 method)) - (smtpmail-smtp-service (nth 2 method)) - (smtpmail-smtp-user (or (nth 3 method) smtpmail-smtp-user))) + (let* ((smtpmail-smtp-server (nth 1 method)) + (service (nth 2 method)) + (port (string-to-number service)) + (smtpmail-smtp-service (if (> port 0) port service)) + (smtpmail-smtp-user (or (nth 3 method) smtpmail-smtp-user))) (message-smtpmail-send-it))) (t (error "Unknown method %s" method)))))) commit 45e37537620e594f0fb77210a9163e3da246666d Author: Daniel Dehennin Date: Thu Apr 12 00:40:13 2018 +0200 Gnus Group Mail Spliting on mailing-list headers * texi/gnus.texi: Document the new `list' split abbreviation and `match-list' group parameter (bug#25346). * lisp/gnus-mlspl.el: Use the `list' abbreviation when the new `match-list' group parameter is set to `t'. The split regexp is modified to match either `@` or `.` as domain separator to comply with RFC2919 IDs too. * lisp/nnmail.el: Add new `list' split abbreviation matching common mailing-list headers. diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index cc4b2342be..de219c6e56 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -3102,6 +3102,21 @@ interest in relation to the sieve parameter. The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve, Top, sieve, Emacs Sieve}. +@item match-list +@cindex match-list +If this parameter is set to @code{t} and @code{nnmail-split-method} is +set to @code{gnus-group-split}, Gnus will match @code{to-address}, +@code{to-list}, @code{extra-aliases} and @code{split-regexp} against +the @code{list} split abbreviation. The split regexp is modified to +match either a @code{@@} or a dot @code{.} in mail addresses to +conform to RFC2919 @code{List-ID}. + +See @code{nnmail-split-abbrev-alist} for the regular expression +matching mailing-list headers. + +See @pxref{Group Mail Splitting} to automatically split on group +parameters. + @item (agent parameters) If the agent has been enabled, you can set any of its parameters to control the behavior of the agent in individual groups. See Agent @@ -15475,6 +15490,9 @@ Matches the @samp{To}, @samp{Cc}, @samp{Apparently-To}, @item any Is the union of the @code{from} and @code{to} entries. @end table +@item list +Matches the @samp{List-ID}, @samp{List-Post}, @samp{X-Mailing-List}, +@samp{X-BeenThere} and @samp{X-Loop} fields. @vindex nnmail-split-fancy-syntax-table @code{nnmail-split-fancy-syntax-table} is the syntax table in effect diff --git a/etc/NEWS b/etc/NEWS index 059c6ee9f6..caa67c90b2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -190,6 +190,11 @@ from 'gnus-score-find-favourite-words'. *** Gmane has been removed as an nnir backend, since Gmane no longer has a search engine. ++++ +*** Splitting mail on common mailing list has been added. See the +concept index in the Gnus manual for the `match-list' entry. + + ** Htmlfontify *** The functions 'hfy-color', 'hfy-color-vals' and 'hfy-fallback-color-values' and the variables 'hfy-fallback-color-map' diff --git a/lisp/gnus/gnus-mlspl.el b/lisp/gnus/gnus-mlspl.el index fb45007c12..599b9c61dc 100644 --- a/lisp/gnus/gnus-mlspl.el +++ b/lisp/gnus/gnus-mlspl.el @@ -182,7 +182,8 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: (to-list (cdr (assoc 'to-list params))) (extra-aliases (cdr (assoc 'extra-aliases params))) (split-regexp (cdr (assoc 'split-regexp params))) - (split-exclude (cdr (assoc 'split-exclude params)))) + (split-exclude (cdr (assoc 'split-exclude params))) + (match-list (cdr (assoc 'match-list params)))) (when (or to-address to-list extra-aliases split-regexp) ;; regexp-quote to-address, to-list and extra-aliases ;; and add them all to split-regexp @@ -202,16 +203,28 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns: "\\|") "\\)")) ;; Now create the new SPLIT - (push (append - (list 'any split-regexp) + (let ((split-regexp-with-list-ids + (replace-regexp-in-string "@" "[@.]" split-regexp t t)) + (exclude ;; Generate RESTRICTs for SPLIT-EXCLUDEs. (if (listp split-exclude) (apply #'append (mapcar (lambda (arg) (list '- arg)) split-exclude)) - (list '- split-exclude)) - (list group-clean)) - split) + (list '- split-exclude)))) + + (if match-list + ;; Match RFC2919 IDs or mail addresses + (push (append + (list 'list split-regexp-with-list-ids) + exclude + (list group-clean)) + split) + (push (append + (list 'any split-regexp) + exclude + (list group-clean)) + split))) ;; If it matches the empty string, it is a catch-all (when (string-match split-regexp "") (setq catch-all nil))))))))) diff --git a/lisp/gnus/nnmail.el b/lisp/gnus/nnmail.el index b2c86d35d1..5083fa2487 100644 --- a/lisp/gnus/nnmail.el +++ b/lisp/gnus/nnmail.el @@ -488,7 +488,8 @@ Example: (to . "to\\|cc\\|apparently-to\\|resent-to\\|resent-cc") (from . "from\\|sender\\|resent-from") (nato . "to\\|cc\\|resent-to\\|resent-cc") - (naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc")) + (naany . "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc") + (list . "list-id\\|list-post\\|x-mailing-list\||x-beenthere\\|x-loop")) "Alist of abbreviations allowed in `nnmail-split-fancy'." :group 'nnmail-split :type '(repeat (cons :format "%v" symbol regexp))) commit caf88962160e82b7d19cb8bbe9985f77e214b9c6 Author: Lars Ingebrigtsen Date: Thu Apr 12 00:27:10 2018 +0200 Tweak previous patch to respect quiet next group selection again * lisp/gnus/gnus-sum.el (gnus-summary-next-article): Tweak previous patch to be quieter if the user has requested `quietly' next group selection. diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 64b8904ff5..e3cc1928d5 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -7802,7 +7802,8 @@ If BACKWARD, the previous article is selected instead of the next." (cond ((or (not gnus-auto-select-next) (not cmd)) - (gnus-message 6 "No more%s articles" (if unread " unread" ""))) + (unless (eq gnus-auto-select-next 'quietly) + (gnus-message 6 "No more%s articles" (if unread " unread" "")))) ((or (eq gnus-auto-select-next 'quietly) (and (eq gnus-auto-select-next 'slightly-quietly) push) @@ -7811,10 +7812,11 @@ If BACKWARD, the previous article is selected instead of the next." ;; Select quietly. (if (gnus-ephemeral-group-p gnus-newsgroup-name) (gnus-summary-exit) - (gnus-message 6 "No more%s articles (%s)..." - (if unread " unread" "") - (if group (concat "selecting " group) - "exiting")) + (unless (eq gnus-auto-select-next 'quietly) + (gnus-message 6 "No more%s articles (%s)..." + (if unread " unread" "") + (if group (concat "selecting " group) + "exiting"))) (gnus-summary-next-group nil group backward))) (t (when (numberp last-input-event) commit 472d301fa4bdfbbac27e0fa43560caf3850f1f5c Author: Lars Ingebrigtsen Date: Thu Apr 12 00:16:30 2018 +0200 Display "No more ... articles" on `n' in Gnus * lisp/gnus/gnus-sum.el (gnus-summary-next-article): Display the "No more"... messages if gnus-auto-select-next is nil and the user has default messaging levels (bug#25582). diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 4d95a6442d..64b8904ff5 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -7802,7 +7802,7 @@ If BACKWARD, the previous article is selected instead of the next." (cond ((or (not gnus-auto-select-next) (not cmd)) - (gnus-message 7 "No more%s articles" (if unread " unread" ""))) + (gnus-message 6 "No more%s articles" (if unread " unread" ""))) ((or (eq gnus-auto-select-next 'quietly) (and (eq gnus-auto-select-next 'slightly-quietly) push) @@ -7811,7 +7811,7 @@ If BACKWARD, the previous article is selected instead of the next." ;; Select quietly. (if (gnus-ephemeral-group-p gnus-newsgroup-name) (gnus-summary-exit) - (gnus-message 7 "No more%s articles (%s)..." + (gnus-message 6 "No more%s articles (%s)..." (if unread " unread" "") (if group (concat "selecting " group) "exiting")) commit 25803b2887dadd452cb998396b3a6e4ca093dfd9 Author: Ɓukasz Stelmach Date: Thu Apr 12 00:09:41 2018 +0200 Rung new-news-hook from `M-g' in the Gnus summary buffer * lisp/gnus/gnus-group.el (gnus-group-get-new-news-this-group): Run `gnus-after-getting-new-news-hook' when doing `M-g' in the summary buffer, too (bug#25892). This makes `M-g' in both group and summary buffers work more similar. Copyright-paperwork-exempt: yes diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 10d203408a..e6081a41a5 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el @@ -4120,6 +4120,7 @@ If DONT-SCAN is non-nil, scan non-activated groups as well." method (gnus-group-real-name group) active)) (gnus-group-update-group group nil t)) (gnus-error 3 "%s error: %s" group (gnus-status-message group)))) + (gnus-run-hooks 'gnus-after-getting-new-news-hook) (when beg (goto-char beg)) (when gnus-goto-next-group-when-activating commit ef2059e877d104bfe5abd24df05bb09c7295e4fa Author: Noam Postavsky Date: Thu Apr 12 00:05:27 2018 +0200 Give better errors in signing failures in Gnus * lisp/gnus/mml1991.el (mml1991-epg-sign): Give better error messages when signing fails (bug#26298). * lisp/gnus/mml2015.el (mml2015-epg-sign): Ditto. diff --git a/lisp/gnus/mml1991.el b/lisp/gnus/mml1991.el index 93b1b5049a..b2056b2fd0 100644 --- a/lisp/gnus/mml1991.el +++ b/lisp/gnus/mml1991.el @@ -275,6 +275,8 @@ Whether the passphrase is cached at all is controlled by (mm-decode-content-transfer-encoding cte))) (let* ((pair (mml-secure-epg-sign 'OpenPGP 'clear)) (signature (car pair))) + (unless (stringp signature) + (error "Signature failed")) (delete-region (point-min) (point-max)) (insert (with-temp-buffer diff --git a/lisp/gnus/mml2015.el b/lisp/gnus/mml2015.el index 5980ddb38f..403b5e1af6 100644 --- a/lisp/gnus/mml2015.el +++ b/lisp/gnus/mml2015.el @@ -958,6 +958,8 @@ If set, it overrides the setting of `mml2015-sign-with-sender'." (let* ((pair (mml-secure-epg-sign 'OpenPGP t)) (signature (car pair)) (micalg (cdr pair))) + (unless (stringp signature) + (error "Signature failed")) (goto-char (point-min)) (insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n" boundary)) commit 37f0f114df4b4b9cb11cc7c607314f1f7a436766 Author: Lars Ingebrigtsen Date: Wed Apr 11 23:52:53 2018 +0200 Remove the Gmane backend from nnir * lisp/gnus/nnir.el (nnir-engines): Remove Gmane backend, which no longer exists. (nnir-method-default-engines): Ditto. (nnir-run-gmane): Removed function (bug#28234). diff --git a/etc/NEWS b/etc/NEWS index ac60a36584..059c6ee9f6 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -186,6 +186,10 @@ Of course it will still find it if you have it in ~/.ecompleterc *** The function 'gnus-score-find-favorite-words' has been renamed from 'gnus-score-find-favourite-words'. +--- +*** Gmane has been removed as an nnir backend, since Gmane no longer +has a search engine. + ** Htmlfontify *** The functions 'hfy-color', 'hfy-color-vals' and 'hfy-fallback-color-values' and the variables 'hfy-fallback-color-map' diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el index 0a7d829614..7d75603ca0 100644 --- a/lisp/gnus/nnir.el +++ b/lisp/gnus/nnir.el @@ -30,7 +30,7 @@ ;;; Commentary: ;; What does it do? Well, it allows you to search your mail using -;; some search engine (imap, namazu, swish-e, gmane and others -- see +;; some search engine (imap, namazu, swish-e and others -- see ;; later) by typing `G G' in the Group buffer. You will then get a ;; buffer which shows all articles matching the query, sorted by ;; Retrieval Status Value (score). @@ -530,8 +530,6 @@ that it is for notmuch, not Namazu." nnir-imap-search-argument-history ; the history to use ,nnir-imap-default-search-key ; default ))) - (gmane nnir-run-gmane - ((gmane-author . "Gmane Author: "))) (swish++ nnir-run-swish++ ((swish++-group . "Swish++ Group spec (regexp): "))) (swish-e nnir-run-swish-e @@ -561,7 +559,7 @@ needs the variables `nnir-namazu-program', Add an entry here when adding a new search engine.") -(defcustom nnir-method-default-engines '((nnimap . imap) (nntp . gmane)) +(defcustom nnir-method-default-engines '((nnimap . imap)) "Alist of default search engines keyed by server method." :version "24.1" :group 'nnir @@ -1667,54 +1665,6 @@ actually)." (declare-function mm-url-insert "mm-url" (url &optional follow-refresh)) (declare-function mm-url-encode-www-form-urlencoded "mm-url" (pairs)) -;; gmane interface -(defun nnir-run-gmane (query srv &optional groups) - "Run a search against a gmane back-end server." - (let* ((case-fold-search t) - (qstring (cdr (assq 'query query))) -;; (server (cadr (gnus-server-to-method srv))) - (groupspec (mapconcat - (lambda (x) - (if (string-match-p "gmane" x) - (format "group:%s" (gnus-group-short-name x)) - (error "Can't search non-gmane groups: %s" x))) - groups " ")) - (authorspec - (if (assq 'gmane-author query) - (format "author:%s" (cdr (assq 'gmane-author query))) "")) - (search (format "%s %s %s" - qstring groupspec authorspec)) - (gnus-inhibit-demon t) - artlist) - (require 'mm-url) - (with-current-buffer (get-buffer-create nnir-tmp-buffer) - (erase-buffer) - (mm-url-insert - (concat - "http://search.gmane.org/nov.php" - "?" - (mm-url-encode-www-form-urlencoded - `(("query" . ,search) - ("HITSPERPAGE" . "999"))))) - (set-buffer-multibyte t) - (decode-coding-region (point-min) (point-max) 'utf-8) - (goto-char (point-min)) - (forward-line 1) - (while (not (eobp)) - (unless (or (eolp) (looking-at "\x0d")) - (let ((header (nnheader-parse-nov))) - (let ((xref (mail-header-xref header)) - (xscore (string-to-number (cdr (assoc 'X-Score - (mail-header-extra header)))))) - (when (string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" xref) - (push - (vector - (gnus-group-prefixed-name (match-string 1 xref) srv) - (string-to-number (match-string 2 xref)) xscore) - artlist))))) - (forward-line 1))) - (apply #'vector (nreverse (delete-dups artlist))))) - ;;; Util Code: (defun gnus-nnir-group-p (group) commit b2a7a96f7aaed4957a4fe0d65780d32652953a3d Author: Basil L. Contovounesios Date: Wed Apr 11 23:21:59 2018 +0200 Heed switch-function argument in gnus-user-agent * lisp/gnus/gnus-msg.el (gnus-msg-mail): Heed switch-action argument when falling back to message-user-agent because Gnus is not running (bug#28992). diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 04661ec948..d5610bff73 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el @@ -535,7 +535,7 @@ instead." (progn (message "Gnus not running; using plain Message mode") (message-mail to subject other-headers continue - nil yank-action send-actions return-action)) + switch-action yank-action send-actions return-action)) (let ((buf (current-buffer)) ;; Don't use posting styles corresponding to any existing group. (group-name gnus-newsgroup-name) commit 556feab8a0ec95953723cff6aacfeaf795d9242f Author: Lars Ingebrigtsen Date: Wed Apr 11 19:31:37 2018 +0200 Always rescale images in gnus-rescale-image * lisp/gnus/gnus-util.el (gnus-rescale-image): Rescale images even if we don't have a visible article buffer. Reported and fix suggested by Kevin Brubeck Unhammer. diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el index 932ae5b541..1001d11df4 100644 --- a/lisp/gnus/gnus-util.el +++ b/lisp/gnus/gnus-util.el @@ -1615,8 +1615,7 @@ empty directories from OLD-PATH." "Rescale IMAGE to SIZE if possible. SIZE is in format (WIDTH . HEIGHT). Return a new image. Sizes are in pixels." - (if (or (not (fboundp 'imagemagick-types)) - (not (get-buffer-window (current-buffer)))) + (if (not (fboundp 'imagemagick-types)) image (let ((new-width (car size)) (new-height (cdr size))) commit e243da257d05c95be7373c37fedc6cc3b35aca9c Author: Michael Albinus Date: Wed Apr 11 16:56:57 2018 +0200 Some minor Tramp changes * lisp/net/tramp-sh.el (tramp-get-ls-command-with): New defun, replacing ... (tramp-get-ls-command-with-dired) (tramp-get-ls-command-with-quoting-style) (tramp-get-ls-command-with-w-option): Removed. (tramp-do-file-attributes-with-ls) (tramp-do-directory-files-and-attributes-with-stat) (tramp-sh-handle-insert-directory): Adapt callees. * lisp/net/tramp-smb.el (tramp-smb-errors): Add "NT_STATUS_CONNECTION_RESET". diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index 33af124458..b3d5339321 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -47,13 +47,12 @@ ;; discovered during development time, is given in respective ;; comments. -;; The custom option `tramp-gvfs-methods' contains the list of -;; supported connection methods. Per default, these are "afp", "dav", -;; "davs", "gdrive", "obex", "owncloud", "sftp" and "synce". Note -;; that with "obex" it might be necessary to pair with the other -;; bluetooth device, if it hasn't been done already. There might be -;; also some few seconds delay in discovering available bluetooth -;; devices. +;; The user option `tramp-gvfs-methods' contains the list of supported +;; connection methods. Per default, these are "afp", "dav", "davs", +;; "gdrive", "obex", "owncloud", "sftp" and "synce". Note that with +;; "obex" it might be necessary to pair with the other bluetooth +;; device, if it hasn't been done already. There might be also some +;; few seconds delay in discovering available bluetooth devices. ;; "gdrive" and "owncloud" connection methods require a respective ;; account in GNOME Online Accounts, with enabled "Files" service. @@ -77,6 +76,8 @@ ;; :session tramp-gvfs-service-daemon tramp-gvfs-path-mounttracker ;; tramp-gvfs-interface-mounttracker "ListMountableInfo"))) +;; See also /usr/share/gvfs/mounts + ;; Note that all other connection methods are not tested, beside the ;; ones offered for customization in `tramp-gvfs-methods'. If you ;; request an additional connection method to be supported, please @@ -87,7 +88,7 @@ ;; "synce" method), or from the zeroconf daemon (for the "afp", "dav", ;; "davs", and "sftp" methods). The zeroconf daemon is pre-configured ;; to discover services in the "local" domain. If another domain -;; shall be used for discovering services, the custom option +;; shall be used for discovering services, the user option ;; `tramp-gvfs-zeroconf-domain' can be set accordingly. ;; Restrictions: @@ -2365,7 +2366,7 @@ They are retrieved from the hal daemon." ;; * (Customizable) unmount when exiting Emacs. See tramp-archive.el. ;; * Host name completion for existing mount points (afp-server, -;; smb-server, google-drive, owncloud) or via smb-network. +;; smb-server, google-drive, owncloud) or via smb-network or network. ;; ;; * Check, how two shares of the same SMB server can be mounted in ;; parallel. @@ -2374,5 +2375,7 @@ They are retrieved from the hal daemon." ;; capability. ;; ;; * Implement obex for other serial communication but bluetooth. +;; +;; * What's up with ftps dns-sd afc admin computer? ;;; tramp-gvfs.el ends here diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 63275448ef..3ba3d956ef 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -1301,10 +1301,8 @@ component is used as the target of the symlink." ;; On systems which have no quoting style, file names ;; with special characters could fail. (cond - ((tramp-get-ls-command-with-quoting-style vec) - "--quoting-style=c") - ((tramp-get-ls-command-with-w-option vec) - "-w") + ((tramp-get-ls-command-with vec "--quoting-style=c")) + ((tramp-get-ls-command-with vec "-w")) (t "")) (tramp-shell-quote-argument localname))) ;; Parse `ls -l' output ... @@ -1338,7 +1336,7 @@ component is used as the target of the symlink." (when symlinkp (search-forward "-> ") (setq res-symlink-target - (if (tramp-get-ls-command-with-quoting-style vec) + (if (looking-at "\"") (read (current-buffer)) (buffer-substring (point) (point-at-eol))))) ;; Return data gathered. @@ -1835,10 +1833,8 @@ be non-negative integers." ;; On systems which have no quoting style, file names with special ;; characters could fail. (cond - ((tramp-get-ls-command-with-quoting-style vec) - "--quoting-style=shell") - ((tramp-get-ls-command-with-w-option vec) - "-w") + ((tramp-get-ls-command-with vec "--quoting-style=shell")) + ((tramp-get-ls-command-with vec "-w")) (t "")) (tramp-get-remote-stat vec) tramp-stat-marker tramp-stat-marker @@ -2639,10 +2635,9 @@ The method used must be an out-of-band method." filename switches wildcard full-directory-p) (when (stringp switches) (setq switches (split-string switches))) - (when (tramp-get-ls-command-with-quoting-style v) + (when (tramp-get-ls-command-with v "--quoting-style=literal") (setq switches (append switches '("--quoting-style=literal")))) - (when (and (member "--dired" switches) - (not (tramp-get-ls-command-with-dired v))) + (unless (tramp-get-ls-command-with v "--dired") (setq switches (delete "--dired" switches))) (when wildcard (setq wildcard (tramp-run-real-handler @@ -5350,36 +5345,18 @@ Nonexistent directories are removed from spec." (setq dl (cdr dl)))))) (tramp-error vec 'file-error "Couldn't find a proper `ls' command")))) -(defun tramp-get-ls-command-with-dired (vec) - "Check, whether the remote `ls' command supports the --dired option." +(defun tramp-get-ls-command-with (vec option) + "Return OPTION, if the remote `ls' command supports the OPTION option." (save-match-data - (with-tramp-connection-property vec "ls-dired" - (tramp-message vec 5 "Checking, whether `ls --dired' works") + (with-tramp-connection-property vec (concat "ls" option) + (tramp-message vec 5 "Checking, whether `ls %s' works" option) ;; Some "ls" versions are sensible wrt the order of arguments, ;; they fail when "-al" is after the "--dired" argument (for ;; example on FreeBSD). - (tramp-send-command-and-check - vec (format "%s --dired -al /dev/null" (tramp-get-ls-command vec)))))) - -(defun tramp-get-ls-command-with-quoting-style (vec) - "Check, whether the remote `ls' command supports the --quoting-style option." - (save-match-data - (with-tramp-connection-property vec "ls-quoting-style" - (tramp-message vec 5 "Checking, whether `ls --quoting-style=shell' works") - (tramp-send-command-and-check - vec (format "%s --quoting-style=shell -al /dev/null" - (tramp-get-ls-command vec)))))) - -(defun tramp-get-ls-command-with-w-option (vec) - "Check, whether the remote `ls' command supports the -w option." - (save-match-data - (with-tramp-connection-property vec "ls-w-option" - (tramp-message vec 5 "Checking, whether `ls -w' works") - ;; Option "-w" is available on BSD systems. No argument is - ;; given, because this could return wrong results in case "ls" - ;; supports the "-w NUM" argument, as for busyboxes. - (tramp-send-command-and-check - vec (format "%s -alw" (tramp-get-ls-command vec)))))) + (and + (tramp-send-command-and-check + vec (format "%s %s -al /dev/null" (tramp-get-ls-command vec) option)) + option)))) (defun tramp-get-test-command (vec) "Determine remote `test' command." diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index 69827870d3..0e7386bf02 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -133,6 +133,7 @@ call, letting the SMB client use the default one." "NT_STATUS_CANNOT_DELETE" "NT_STATUS_CONNECTION_DISCONNECTED" "NT_STATUS_CONNECTION_REFUSED" + "NT_STATUS_CONNECTION_RESET" "NT_STATUS_DIRECTORY_NOT_EMPTY" "NT_STATUS_DUPLICATE_NAME" "NT_STATUS_FILE_IS_A_DIRECTORY" commit 04a1d63981417f92b477fe61d411f508628e0afe Author: Lars Ingebrigtsen Date: Wed Apr 11 13:46:48 2018 +0200 Don't kill off LibreOffice when selecting the next article in Gnus * lisp/gnus/mm-decode.el (mm-keep-viewer-alive-types): Add the media types that LibreOffice uses to the list, since we don't want to kill off LibreOffice willy-nilly. diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 327a1ed31e..f55a6af802 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -323,11 +323,12 @@ type inline." (defcustom mm-keep-viewer-alive-types '("application/postscript" "application/msword" "application/vnd.ms-excel" - "application/pdf" "application/x-dvi") + "application/pdf" "application/x-dvi" + "application/vnd.*") "Media types for viewers not to be killed when selecting a different article. Instead the viewers will be killed on Gnus exit instead. This is a list of regexps." - :version "22.1" + :version "27.1" :type '(repeat regexp) :group 'mime-display) commit 6055c8a7339d47896b68f55483462f62acde5dcb Author: Lars Ingebrigtsen Date: Wed Apr 11 13:44:15 2018 +0200 Doc fix for mm-keep-viewer-alive-types * lisp/gnus/mm-decode.el (mm-keep-viewer-alive-types): Clarify doc string. diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 6fb376fa7c..327a1ed31e 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -324,8 +324,9 @@ type inline." (defcustom mm-keep-viewer-alive-types '("application/postscript" "application/msword" "application/vnd.ms-excel" "application/pdf" "application/x-dvi") - "List of media types for which the external viewer will not be killed -when selecting a different article." + "Media types for viewers not to be killed when selecting a different article. +Instead the viewers will be killed on Gnus exit instead. This is +a list of regexps." :version "22.1" :type '(repeat regexp) :group 'mime-display)