From c27612ad3045a47039907e4ec9df95e4f6046871 Mon Sep 17 00:00:00 2001 From: Katsumi Yamaoka Date: Fri, 17 Jul 2009 10:16:03 +0000 Subject: [PATCH] Synch with Gnus trunk: 2009-07-16 Katsumi Yamaoka * nnrss.el (nnrss-request-article): Allow mml-to-mime to generate MIME article without making inquiry to a user for unknown encoding. * nnmaildir.el (nnmaildir--group-maxnum, nnmaildir--new-number) (nnmaildir--scan): Assume i-node and device number that file-attributes returns might be cons-cell. 2009-07-16 Teodor Zlatanov * auth-source.el: Remove docs now in auth.texi. Don't use `gnus-message' for logging. Add new variables `auth-source-debug' and `auth-source-hide-passwords' and use them. --- lisp/gnus/ChangeLog | 15 +++++++ lisp/gnus/auth-source.el | 96 ++++++++++++++++++++++------------------ lisp/gnus/nnmaildir.el | 12 ++--- lisp/gnus/nnrss.el | 6 ++- 4 files changed, 80 insertions(+), 49 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 77298b3ad97..a4a52db32ab 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,18 @@ +2009-07-16 Katsumi Yamaoka + + * nnrss.el (nnrss-request-article): Allow mml-to-mime to generate MIME + article without making inquiry to a user for unknown encoding. + + * nnmaildir.el (nnmaildir--group-maxnum, nnmaildir--new-number) + (nnmaildir--scan): Assume i-node and device number that file-attributes + returns might be cons-cell. + +2009-07-16 Teodor Zlatanov + + * auth-source.el: Remove docs now in auth.texi. Don't use + `gnus-message' for logging. Add new variables `auth-source-debug' and + `auth-source-hide-passwords' and use them. + 2009-07-15 Glenn Morris * gnus-spec.el (gnus-make-format-preserve-properties): Doc fix. diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index 1bec08f076f..53b0efb79bb 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -27,33 +27,7 @@ ;; of providing 5000 options, we'll stick to simple, easy to ;; understand options. -;; Easy setup: -;; (require 'auth-source) -;; (customize-variable 'auth-sources) ;; optional - -;; now, whatever sources you've defined for password have to be available - -;; if you want encrypted sources, which is strongly recommended, do -;; (require 'epa-file) -;; (epa-file-enable) -;; (setq epa-file-cache-passphrase-for-symmetric-encryption t) ; VERY important - -;; before you put some data in ~/.authinfo.gpg (the default place) - -;;; For url-auth authentication (HTTP/HTTPS), you need to use: - -;;; machine yourmachine.com:80 port http login testuser password testpass - -;;; This will match any realm and authentication method (basic or -;;; digest). If you want finer controls, explore the url-auth source -;;; code and variables. - -;;; For tramp authentication, use: - -;;; machine yourmachine.com port scp login testuser password testpass - -;;; Note that the port denotes the Tramp connection method. When you -;;; don't use a port entry, you match any Tramp method. +;; See the auth.info Info documentation for details. ;;; Code: @@ -100,6 +74,31 @@ :version "23.1" ;; No Gnus :type `boolean) +(defcustom auth-source-debug nil + "Whether auth-source should log debug messages. +Also see `auth-source-hide-passwords'. + +If the value is nil, debug messages are not logged. +If the value is t, debug messages are logged with `message'. + In that case, your authentication data will be in the + clear (except for passwords, which are always stripped out). +If the value is a function, debug messages are logged by calling + that function using the same arguments as `message'." + :group 'auth-source + :version "23.1" ;; No Gnus + :type `(choice + :tag "auth-source debugging mode" + (const :tag "Log using `message' to the *Messages* buffer" t) + (function :tag "Function that takes arguments like `message'") + (const :tag "Don't log anything" nil))) + +(defcustom auth-source-hide-passwords t + "Whether auth-source should hide passwords in log messages. +Only relevant if `auth-source-debug' is not nil." + :group 'auth-source + :version "23.1" ;; No Gnus + :type `boolean) + (defcustom auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t)) "List of authentication sources. @@ -137,6 +136,19 @@ Each entry is the authentication type with optional properties." ;; (auth-source-user-or-password-imap "password" "imap.myhost.com") ;; (auth-source-protocol-defaults 'imap) +;; (let ((auth-source-debug 'debug)) (auth-source-debug "hello")) +;; (let ((auth-source-debug t)) (auth-source-debug "hello")) +;; (let ((auth-source-debug nil)) (auth-source-debug "hello")) +(defun auth-source-do-debug (&rest msg) + ;; set logger to either the function in auth-source-debug or 'message + ;; note that it will be 'message if auth-source-debug is nil, so + ;; we also check the value + (when auth-source-debug + (let ((logger (if (functionp auth-source-debug) + auth-source-debug + 'message))) + (apply logger msg)))) + (defun auth-source-pick (host protocol &optional fallback) "Parse `auth-sources' for HOST, and PROTOCOL matches. @@ -171,21 +183,21 @@ Returns fallback choices (where PROTOCOL or HOST are nil) with FALLBACK t." (defun auth-source-user-or-password (mode host protocol) "Find MODE (string or list of strings) matching HOST and PROTOCOL. MODE can be \"login\" or \"password\" for example." - (gnus-message 9 - "auth-source-user-or-password: get %s for %s (%s)" - mode host protocol) + (auth-source-do-debug + "auth-source-user-or-password: get %s for %s (%s)" + mode host protocol) (let* ((listy (listp mode)) (mode (if listy mode (list mode))) (cname (format "%s %s:%s" mode host protocol)) (found (gethash cname auth-source-cache))) (if found (progn - (gnus-message 9 - "auth-source-user-or-password: cached %s=%s for %s (%s)" - mode - ;; don't show the password - (if (member "password" mode) "SECRET" found) - host protocol) + (auth-source-do-debug + "auth-source-user-or-password: cached %s=%s for %s (%s)" + mode + ;; don't show the password + (if (and (member "password" mode) auth-source-hide-passwords) "SECRET" found) + host protocol) found) (dolist (choice (auth-source-pick host protocol)) (setq found (netrc-machine-user-or-password @@ -195,12 +207,12 @@ MODE can be \"login\" or \"password\" for example." (list (format "%s" protocol)) (auth-source-protocol-defaults protocol))) (when found - (gnus-message 9 - "auth-source-user-or-password: found %s=%s for %s (%s)" - mode - ;; don't show the password - (if (member "password" mode) "SECRET" found) - host protocol) + (auth-source-do-debug + "auth-source-user-or-password: found %s=%s for %s (%s)" + mode + ;; don't show the password + (if (and (member "password" mode) auth-source-hide-passwords) "SECRET" found) + host protocol) (setq found (if listy found (car-safe found))) (when auth-source-do-cache (puthash cname found auth-source-cache))) diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el index 65f93f8e06d..628b4c5d2a2 100644 --- a/lisp/gnus/nnmaildir.el +++ b/lisp/gnus/nnmaildir.el @@ -270,8 +270,8 @@ by nnmaildir-request-article.") (setq attr (file-attributes (concat dir (number-to-string number-linked)))) (or attr (throw 'return (1- number-linked))) - (if (/= ino-opened (nth 10 attr)) - (setq number-opened number-linked)))))) + (unless (equal ino-opened (nth 10 attr)) + (setq number-opened number-linked)))))) ;; Make the given server, if non-nil, be the current server. Then make the ;; given group, if non-nil, be the current group of the current server. Then @@ -361,9 +361,9 @@ by nnmaildir-request-article.") number-open number-link)) ((nnmaildir--eexist-p err) (let ((attr (file-attributes path-link))) - (if (/= (nth 10 attr) ino-open) - (setq number-open number-link - number-link 0)))) + (unless (equal (nth 10 attr) ino-open) + (setq number-open number-link + number-link 0)))) (t (signal (car err) (cdr err))))))))) (defun nnmaildir--update-nov (server group article) @@ -744,7 +744,7 @@ by nnmaildir-request-article.") ls (or (nnmaildir--param pgname 'directory-files) srv-ls)) (unless read-only (setq x (nth 11 (file-attributes tdir))) - (unless (and (= x (nth 11 nattr)) (= x (nth 11 cattr))) + (unless (and (equal x (nth 11 nattr)) (equal x (nth 11 cattr))) (setf (nnmaildir--srv-error nnmaildir--cur-server) (concat "Maildir spans filesystems: " absdir)) (throw 'return nil)) diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el index 051723d9d94..cf59c81a796 100644 --- a/lisp/gnus/nnrss.el +++ b/lisp/gnus/nnrss.el @@ -310,7 +310,11 @@ used to render text. If it is nil, text will simply be folded.") "<#/part>\n" "<#/multipart>\n")) (condition-case nil - (mml-to-mime) + ;; Allow `mml-to-mime' to generate MIME article without + ;; making inquiry to a user for unknown encoding. + (let ((mml-confirmation-set + (cons 'unknown-encoding mml-confirmation-set))) + (mml-to-mime)) (error (erase-buffer) (insert header -- 2.39.2