1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-03 20:24:29 +00:00

lisp/gnus/auth-source.el: When a data token is "machine", abort parsing the current line

This commit is contained in:
Teodor Zlatanov 2013-06-17 23:35:46 +00:00 committed by Katsumi Yamaoka
parent 9822de7295
commit cc52b6cc95
2 changed files with 27 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2013-06-17 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-source-current-line): New function.
(auth-source-netrc-parse-entries): When a data token is "machine",
assume we're in the wrong place and abort parsing the current line.
2013-06-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
* eww.el (eww-tag-select): Don't render totally empty <select> forms.

View File

@ -1055,6 +1055,13 @@ Note that the MAX parameter is used so we can exit the parse early."
(auth-source-netrc-parse-next-interesting)
(match-string-no-properties 1)))
;; with thanks to org-mode
(defsubst auth-source-current-line (&optional pos)
(save-excursion
(and pos (goto-char pos))
;; works also in narrowed buffer, because we start at 1, not point-min
(+ (if (bolp) 1 0) (count-lines 1 (point)))))
(defun auth-source-netrc-parse-entries(check max)
"Parse up to MAX netrc entries, passed by CHECK, from the current buffer."
(let ((adder (lambda(check alist all)
@ -1071,6 +1078,8 @@ Note that the MAX parameter is used so we can exit the parse early."
(when (and alist
(or default
(equal item "machine")))
(auth-source-do-trivia
"auth-source-netrc-parse-entries: got entry %S" alist)
(setq all (funcall adder check alist all)
alist nil))
;; In default entries, we don't have a next token.
@ -1079,11 +1088,21 @@ Note that the MAX parameter is used so we can exit the parse early."
(push (cons "machine" t) alist)
;; Not a default entry. Grab the next item.
(when (setq item2 (auth-source-netrc-parse-one))
(push (cons item item2) alist))))
;; Did we get a "machine" value?
(if (equal item2 "machine")
(progn
(gnus-error 1
"%s: Unexpected 'machine' token at line %d"
"auth-source-netrc-parse-entries"
(auth-source-current-line))
(forward-line 1))
(push (cons item item2) alist)))))
;; Clean up: if there's an entry left over, use it.
(when alist
(setq all (funcall adder check alist all)))
(setq all (funcall adder check alist all))
(auth-source-do-trivia
"auth-source-netrc-parse-entries: got2 entry %S" alist))
(nreverse all)))
(defvar auth-source-passphrase-alist nil)