+Thu Jan 30 04:15:28 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.8 is released.
+
+Thu Jan 30 02:07:13 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.el (message-indent-citation): Place point the right
+ place when indenting.
+
+ * nnml.el (nnml-generate-active-info): Don't enter conses into
+ lists.
+
+ * gnus-score.el (gnus-score-file-rank): All global score files
+ have low ranks.
+
+ * nnweb.el (nnweb-possibly-change-server): Read active file.
+ (nnweb-dejanews-create-mapping): Respect .overview.
+ (nnweb-reference-create-mapping): Ditto.
+ (nnweb-altavista-create-mapping): Ditto.
+
+Wed Jan 29 04:52:31 1997 Katsumi Yamaoka <yamaoka@ga.sony.co.jp>
+
+ * nnml.el (nnml-generate-nov-databases-1): Generate NOV files in
+ the right order.
+
+Tue Jan 28 23:28:49 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-group.el (gnus-group-list-groups): Position point.
+
Tue Jan 28 22:11:36 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.7 is released.
(defun gnus-score-file-rank (file)
"Return a number that says how specific score FILE is.
Destroys the current buffer."
- (when (string-match
- (concat "^" (regexp-quote
- (expand-file-name
- (file-name-as-directory gnus-kill-files-directory))))
- file)
- (setq file (substring file (match-end 0))))
- (insert file)
- (goto-char (point-min))
- (let ((beg (point))
- elems)
- (while (re-search-forward "[./]" nil t)
- (push (buffer-substring beg (1- (point)))
- elems))
- (erase-buffer)
- (setq elems (delete "all" elems))
- (length elems)))
+ (if (member file gnus-internal-global-score-files)
+ 0
+ (when (string-match
+ (concat "^" (regexp-quote
+ (expand-file-name
+ (file-name-as-directory gnus-kill-files-directory))))
+ file)
+ (setq file (substring file (match-end 0))))
+ (insert file)
+ (goto-char (point-min))
+ (let ((beg (point))
+ elems)
+ (while (re-search-forward "[./]" nil t)
+ (push (buffer-substring beg (1- (point)))
+ elems))
+ (erase-buffer)
+ (setq elems (delete "all" elems))
+ (length elems))))
(defun gnus-sort-score-files (files)
"Sort FILES so that the most general files come first."
(let ((files score-files))
(while files
(when (stringp (car files))
- (setcar files (expand-file-name (car files)
- gnus-kill-files-directory)))
+ (setcar files (expand-file-name
+ (car files) gnus-kill-files-directory)))
(pop files)))
(setq score-files (nreverse score-files))
;; Remove any duplicate score files.
(article . nnweb-dejanews-wash-article)
(map . nnweb-dejanews-create-mapping)
(search . nnweb-dejanews-search)
- (address . "http://xp9.dejanews.com/dnquery.xp"))
+ (address . "http://xp9.dejanews.com/dnquery.xp")
+ (identifier . nnweb-dejanews-identity))
(reference
(article . nnweb-reference-wash-article)
(map . nnweb-reference-create-mapping)
(search . nnweb-reference-search)
- (address . "http://www.reference.com/cgi-bin/pn/go"))
+ (address . "http://www.reference.com/cgi-bin/pn/go")
+ (identifier . identity))
(altavista
(article . nnweb-altavista-wash-article)
(map . nnweb-altavista-create-mapping)
(search . nnweb-altavista-search)
(address . "http://www.altavista.digital.com/cgi-bin/query")
- (id . "/cgi-bin/news?id@%s")))
+ (id . "/cgi-bin/news?id@%s")
+ (identifier . identity)))
"Type-definition alist.")
(defvoo nnweb-search nil
"Search string to feed to DejaNews.")
-(defvoo nnweb-max-hits 100
+(defvoo nnweb-max-hits 30
"Maximum number of hits to display.")
(defvoo nnweb-ephemeral-p nil
(nnweb-possibly-change-server group server)
(save-excursion
(set-buffer (or buffer nntp-server-buffer))
- (let ((url (caddr (assq article nnweb-articles))))
+ (let* ((header (cadr (assq article nnweb-articles)))
+ (url (and header (mail-header-xref header))))
(when (or (and url
(nnweb-fetch-url url))
(and (stringp article)
(defun nnweb-set-hashtb (header data)
(gnus-sethash (nnweb-identifier (mail-header-xref header))
- data nnweb-hashtb))
+ data nnweb-hashtb))
(defun nnweb-get-hashtb (url)
(gnus-gethash (nnweb-identifier url) nnweb-hashtb))
(defun nnweb-identifier (ident)
- ident)
+ (funcall (nnweb-definition 'identifier) ident))
(defun nnweb-overview-file (group)
"Return the name of the overview file of GROUP."
(when server
(unless (nnweb-server-opened server)
(nnweb-open-server server)))
+ (unless nnweb-group-alist
+ (nnweb-read-active))
(when group
(when (and (not nnweb-ephemeral-p)
(not (equal group nnweb-group)))
(widen)
(when (string-match "#[0-9]+/[0-9]+ *$" Subject)
(setq Subject (substring Subject 0 (match-beginning 0))))
+ (incf i)
(unless (nnweb-get-hashtb url)
- (incf i)
(push
(list
(incf (cdr active))
(make-full-mail-header
(cdr active) (concat "(" Newsgroup ") " Subject) Author Date
- (concat "<" (message-unique-id) "-" (int-to-string i)
- "@dejanews>")
- nil 0 (string-to-int Score) nil)
- url)
- map)))
+ (concat "<" (nnweb-identifier url) "@dejanews>")
+ nil 0 (string-to-int Score) url))
+ map)
+ (nnweb-set-hashtb (cadar map) (car map))))
;; See whether there is a "Get next 20 hits" button here.
(if (or (not (re-search-forward
"HREF=\"\\([^\"]+\\)\">Get next" nil t))
(url-insert-file-contents more)))
;; Return the articles in the right order.
(setq nnweb-articles
- (sort map (lambda (s1 s2) (< (car s1) (car s2)))))))))
+ (sort (nconc nnweb-articles map)
+ (lambda (s1 s2) (< (car s1) (car s2)))))))))
(defun nnweb-dejanews-wash-article ()
(let ((case-fold-search t))
("ageweight" . "1")))
t)
+(defun nnweb-dejanews-identity (url)
+ "Return an unique identifier based on URL."
+ (if (string-match "recnum=\\([0-9]+\\)" url)
+ (match-string 1 url)
+ url))
+
;;;
;;; InReference
;;;
(set (intern (match-string 1)) (match-string 2)))
(widen)
(search-forward "</pre>" nil t)
+ (incf i)
(unless (nnweb-get-hashtb url)
- (incf i)
(push
(list
(incf (cdr active))
(make-full-mail-header
(cdr active) (concat "(" Newsgroups ") " Subject) From Date
Message-ID
- nil 0 (string-to-int Score) nil)
- url)
- map)))
+ nil 0 (string-to-int Score) url))
+ map)
+ (nnweb-set-hashtb (cadar map) (car map))))
(setq more nil))
;; Return the articles in the right order.
(setq nnweb-articles
- (sort map (lambda (s1 s2) (< (car s1) (car s2)))))))))
+ (sort (nconc nnweb-articles map)
+ (lambda (s1 s2) (< (car s1) (car s2)))))))))
(defun nnweb-reference-wash-article ()
(let ((case-fold-search t))
group (match-string 4)
id (concat "<" (match-string 5) ">")
from (match-string 6))
+ (incf i)
(unless (nnweb-get-hashtb url)
- (incf i)
(push
(list
(incf (cdr active))
(make-full-mail-header
(cdr active) (concat "(" group ") " subject) from date
- id nil 0 0 nil)
- url)
- map)))
+ id nil 0 0 url))
+ map)
+ (nnweb-set-hashtb (cadar map) (car map))))
;; See if we want more.
(when (or (not nnweb-articles)
(>= i nnweb-max-hits)
(setq more nil)))
;; Return the articles in the right order.
(setq nnweb-articles
- (sort map (lambda (s1 s2) (< (car s1) (car s2))))))))))
+ (sort (nconc nnweb-articles map)
+ (lambda (s1 s2) (< (car s1) (car s2))))))))))
(defun nnweb-altavista-wash-article ()
(goto-char (point-min))