From 4a6c24c23c9f7097807c1ef58688b51db330f503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Wed, 20 Nov 2019 00:11:00 +0000 Subject: [PATCH] Make auth-source-pass-search understand port lists For cases such as a typical IMAP Gnus setup, auto-source-pass-search will be passed a list of "port aliases" like (993 "imaps" "imap" "993" "143") in hopes of finding a matching ~/.password-store entry. This modification makes this library understand and unroll the port list so that, i.e. "domain:993", "domain:imaps"", "domain:imap", etc. are computed as potential suffixes. Previously a nonsensical string "domain:(993 imaps imap ...)" was return. * lisp/auth-source-pass.el (auth-source-pass--generate-entry-suffixes): Allow PORT to be a list of ports. --- lisp/auth-source-pass.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el index 524a72792c..cc0a6fe4de 100644 --- a/lisp/auth-source-pass.el +++ b/lisp/auth-source-pass.el @@ -269,10 +269,15 @@ auth-source-pass--generate-entry-suffixes Based on the supported pathname patterns for HOSTNAME, USER, & PORT, return a list of possible suffixes for matching entries in -the password-store." +the password-store. + +PORT may be a list of ports." (let ((domains (auth-source-pass--domains (split-string hostname "\\.")))) - (seq-mapcat (lambda (n) - (auth-source-pass--name-port-user-suffixes n user port)) + (seq-mapcat (lambda (d) + (seq-mapcat + (lambda (p) + (auth-source-pass--name-port-user-suffixes d user p)) + (if (listp port) port (list port)))) domains))) (defun auth-source-pass--domains (name-components) -- 2.24.0