Commit 5b51650c authored by Miles Bader's avatar Miles Bader
Browse files

Merge from gnus--devo--0

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1471
parent 1463de90
2008-11-11 Teodor Zlatanov <tzz@lifelogs.com>
* nnrss.el (nnrss-make-hash-index): Debug message of full item.
2008-11-10 Teodor Zlatanov <tzz@lifelogs.com>
* netrc.el (netrc-parse): If a list is passed in as FILE, return it.
2008-11-04 Katsumi Yamaoka <yamaoka@jpl.org>
* starttls.el (starttls-any-program-available): Rewritten so it doesn't
......
......@@ -684,8 +684,8 @@ which RSS 2.0 allows."
(buffer-string)))
;;; Snarf functions
(defun nnrss-make-hash-index (item)
(gnus-message 9 "nnrss: Making hash index of %s" (gnus-prin1-to-string item))
(setq item (gnus-remove-if
(lambda (field)
(when (listp field)
......
......@@ -59,61 +59,63 @@
(defun netrc-parse (file)
(interactive "fFile to Parse: ")
"Parse FILE and return a list of all entries in the file."
(when (file-exists-p file)
(with-temp-buffer
(let ((tokens '("machine" "default" "login"
"password" "account" "macdef" "force"
"port"))
(encryption-model (when (netrc-bound-and-true-p encrypt-file-alist)
(encrypt-find-model file)))
alist elem result pair)
(if encryption-model
(encrypt-insert-file-contents file encryption-model)
(insert-file-contents file))
(goto-char (point-min))
;; Go through the file, line by line.
(while (not (eobp))
(narrow-to-region (point) (point-at-eol))
;; For each line, get the tokens and values.
(if (listp file)
file
(when (file-exists-p file)
(with-temp-buffer
(let ((tokens '("machine" "default" "login"
"password" "account" "macdef" "force"
"port"))
(encryption-model (when (netrc-bound-and-true-p encrypt-file-alist)
(encrypt-find-model file)))
alist elem result pair)
(if encryption-model
(encrypt-insert-file-contents file encryption-model)
(insert-file-contents file))
(goto-char (point-min))
;; Go through the file, line by line.
(while (not (eobp))
(skip-chars-forward "\t ")
;; Skip lines that begin with a "#".
(if (eq (char-after) ?#)
(goto-char (point-max))
(unless (eobp)
(setq elem
(if (= (following-char) ?\")
(read (current-buffer))
(buffer-substring
(point) (progn (skip-chars-forward "^\t ")
(point)))))
(cond
((equal elem "macdef")
;; We skip past the macro definition.
(widen)
(while (and (zerop (forward-line 1))
(looking-at "$")))
(narrow-to-region (point) (point)))
((member elem tokens)
;; Tokens that don't have a following value are ignored,
;; except "default".
(when (and pair (or (cdr pair)
(equal (car pair) "default")))
(push pair alist))
(setq pair (list elem)))
(t
;; Values that haven't got a preceding token are ignored.
(when pair
(setcdr pair elem)
(push pair alist)
(setq pair nil)))))))
(when alist
(push (nreverse alist) result))
(setq alist nil
pair nil)
(widen)
(forward-line 1))
(nreverse result)))))
(narrow-to-region (point) (point-at-eol))
;; For each line, get the tokens and values.
(while (not (eobp))
(skip-chars-forward "\t ")
;; Skip lines that begin with a "#".
(if (eq (char-after) ?#)
(goto-char (point-max))
(unless (eobp)
(setq elem
(if (= (following-char) ?\")
(read (current-buffer))
(buffer-substring
(point) (progn (skip-chars-forward "^\t ")
(point)))))
(cond
((equal elem "macdef")
;; We skip past the macro definition.
(widen)
(while (and (zerop (forward-line 1))
(looking-at "$")))
(narrow-to-region (point) (point)))
((member elem tokens)
;; Tokens that don't have a following value are ignored,
;; except "default".
(when (and pair (or (cdr pair)
(equal (car pair) "default")))
(push pair alist))
(setq pair (list elem)))
(t
;; Values that haven't got a preceding token are ignored.
(when pair
(setcdr pair elem)
(push pair alist)
(setq pair nil)))))))
(when alist
(push (nreverse alist) result))
(setq alist nil
pair nil)
(widen)
(forward-line 1))
(nreverse result))))))
(defun netrc-machine (list machine &optional port defaultport)
"Return the netrc values from LIST for MACHINE or for the default entry.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment