]> git.eshelyaron.com Git - emacs.git/commitdiff
Add an `authinfo-hidden' variable
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 Sep 2019 10:27:42 +0000 (12:27 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 Sep 2019 10:27:42 +0000 (12:27 +0200)
* lisp/auth-source.el (authinfo-hidden): New variable.
(authinfo--hide-passwords): Use it to allow users to decide what
to hide.

etc/NEWS
lisp/auth-source.el

index 73f0ca2497b1b2362c67ab241923b11b4bc2b949..e28bb2c0bd9c650c67a030be15ff4f150e60850a 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1497,7 +1497,8 @@ To recover the previous behavior, set new user option
 *** .authinfo and .netrc files now use a new mode: 'authinfo-mode'.
 This is just like 'fundamental-mode', except that it hides passwords
 under a "****" display property.  When the cursor moves to this text,
-the real password is revealed (via 'reveal-mode').
+the real password is revealed (via 'reveal-mode').  The
+'authinfo-hidden' variable can be used to control what to hide.
 
 ** Tramp
 
index 6d53a222e989f8c975ca184aec0abc697a7c9122..9061d41556faaed68063892b0272d4df8aa42fa5 100644 (file)
@@ -2400,6 +2400,11 @@ MODE can be \"login\" or \"password\"."
 ;;; Tiny mode for editing .netrc/.authinfo modes (that basically just
 ;;; hides passwords).
 
+(defcustom authinfo-hidden "password"
+  "Regexp matching elements in .authinfo/.netrc files that should be hidden."
+  :type 'regexp
+  :version "27.1")
+
 ;;;###autoload
 (define-derived-mode authinfo-mode fundamental-mode "Authinfo"
   "Mode for editing .authinfo/.netrc files.
@@ -2416,13 +2421,15 @@ passwords are revealed when point moved into the password.
     (save-restriction
       (narrow-to-region start end)
       (goto-char start)
-      (while (re-search-forward "\\(\\s-\\|^\\)password\\s-+\\([^\n\t ]+\\)"
+      (while (re-search-forward (format "\\(\\s-\\|^\\)\\(%s\\)\\s-+"
+                                        authinfo-hidden)
                                 nil t)
-        (let ((overlay (make-overlay (match-beginning 2) (match-end 2))))
-          (overlay-put overlay 'display (propertize "****"
-                                                    'face 'warning))
-          (overlay-put overlay 'reveal-toggle-invisible
-                       #'authinfo--toggle-display))))))
+        (when (looking-at "[^\n\t ]+")
+          (let ((overlay (make-overlay (match-beginning 0) (match-end 0))))
+            (overlay-put overlay 'display (propertize "****"
+                                                      'face 'warning))
+            (overlay-put overlay 'reveal-toggle-invisible
+                         #'authinfo--toggle-display)))))))
 
 (defun authinfo--toggle-display (overlay hide)
   (if hide