From dcc8c1aefc5eed4145e11416dfc0996e06833659 Mon Sep 17 00:00:00 2001 From: Ted Zlatanov Date: Wed, 23 Feb 2011 08:46:32 -0600 Subject: [PATCH] Fix multiple parameter print bug. * auth-source.el (auth-source-netrc-element-or-first): New function to DTRT for parameter extraction. (auth-source-netrc-create): Use it and fix multiple parameter print bug. --- lisp/ChangeLog | 4 ++++ lisp/auth-source.el | 24 ++++++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b3f9a2445..b8c543b28 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -2,6 +2,10 @@ * auth-source.el (auth-source-netrc-create): Use `read-char' instead of `read-char-choice' for backwards compatibility. + (auth-source-netrc-element-or-first): New function to DTRT for + parameter extraction. + (auth-source-netrc-create): Use it and fix multiple parameter print + bug. 2011-02-23 Lars Ingebrigtsen diff --git a/lisp/auth-source.el b/lisp/auth-source.el index 79f97f82a..3081bc2e4 100644 --- a/lisp/auth-source.el +++ b/lisp/auth-source.el @@ -908,6 +908,11 @@ See `auth-source-search' for details on SPEC." (plist-put spec :create nil))))) results)) +(defun auth-source-netrc-element-or-first (v) + (if (listp v) + (nth 0 v) + v)) + ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t) ;;; (auth-source-search :host "nonesuch" :type 'netrc :max 1 :create t :create-extra-keys '((A "default A") (B))) @@ -953,9 +958,7 @@ See `auth-source-search' for details on SPEC." (dolist (r required) (let* ((data (aget valist r)) ;; take the first element if the data is a list - (data (if (listp data) - (nth 0 data) - data)) + (data (auth-source-netrc-element-or-first data)) ;; this is the default to be offered (given-default (aget auth-source-creation-defaults r)) ;; the default supplementals are simple: for the user, @@ -971,9 +974,18 @@ See `auth-source-search' for details on SPEC." ((and (null data) (eq r 'secret)) ;; special case prompt for passwords (read-passwd (format "Password for %s@%s:%s: " - (or (aget valist 'user) "[any user]") - (or (aget valist 'host) "[any host]") - (or (aget valist 'port) "[any port]")))) + (or + (auth-source-netrc-element-or-first + (aget valist 'user)) + "[any user]") + (or + (auth-source-netrc-element-or-first + (aget valist 'host)) + "[any host]") + (or + (auth-source-netrc-element-or-first + (aget valist 'port)) + "[any port]")))) (t data))) (when data -- 2.25.1