Function: nnweb-gmane-create-mapping
nnweb-gmane-create-mapping is a byte-compiled function defined in
nnweb.el.gz.
Signature
(nnweb-gmane-create-mapping)
Documentation
Perform the search and create a number-to-url alist.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnweb.el.gz
;;;
;;; gmane.org
;;;
(defun nnweb-gmane-create-mapping ()
"Perform the search and create a number-to-url alist."
(with-current-buffer nnweb-buffer
(let ((case-fold-search t)
(active (or (cadr (assoc nnweb-group nnweb-group-alist))
(cons 1 0)))
map)
(erase-buffer)
(nnheader-message 7 "Searching Gmane..." )
(when (funcall (nnweb-definition 'search) nnweb-search)
(goto-char (point-min))
;; Skip the status line
(forward-line 1)
;; Thanks to Olly Betts we now have NOV lines in our buffer!
(while (not (eobp))
(unless (or (eolp) (looking-at "\x0d"))
(let ((header (nnheader-parse-nov)))
(let ((xref (mail-header-xref header))
(from (mail-header-from header))
(subject (mail-header-subject header))
(rfc2047-encoding-type 'mime))
(when (string-match " \\([^:]+\\)[:/]\\([0-9]+\\)" xref)
(setf (mail-header-xref header)
(format "http://article.gmane.org/%s/%s/raw"
(match-string 1 xref)
(match-string 2 xref))))
;; Add host part to gmane-encrypted addresses
(when (string-match "@$" from)
(setf (mail-header-from header)
(concat from "public.gmane.org")))
(setf (mail-header-subject header)
(rfc2047-encode-string subject))
(unless (nnweb-get-hashtb (mail-header-xref header))
(setf (mail-header-number header) (cl-incf (cdr active)))
(push (list (mail-header-number header) header) map)
(nnweb-set-hashtb (cadar map) (car map))))))
(forward-line 1)))
(nnheader-message 7 "Searching Gmane...done")
(setq nnweb-articles
(sort (nconc nnweb-articles map) #'car-less-than-car)))))