*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 05:33:16 +0000 (05:33 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 5 Mar 1997 05:33:16 +0000 (05:33 +0000)
lisp/ChangeLog
lisp/gnus-group.el
lisp/gnus-score.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/message.el
lisp/nnml.el
lisp/nnweb.el

index 1ad251d..393e893 100644 (file)
@@ -1,3 +1,32 @@
+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.
index e26482f..4f8c2dc 100644 (file)
@@ -879,9 +879,9 @@ listed."
              (setq newsrc (cdr newsrc)))
            (unless newsrc
              (goto-char (point-max))
-             (forward-line -1))))))
-      ;; Adjust cursor point.
-      (gnus-group-position-point))))
+             (forward-line -1)))))))
+    ;; Adjust cursor point.
+    (gnus-group-position-point)))
 
 (defun gnus-group-list-level (level &optional all)
   "List groups on LEVEL.
index 3630426..46407d2 100644 (file)
@@ -2500,22 +2500,24 @@ This includes the score file for the group and all its parents."
 (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."
@@ -2600,8 +2602,8 @@ The list is determined from the variable gnus-score-file-alist."
     (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.
index 7e2e3b6..d8239aa 100644 (file)
@@ -1527,7 +1527,7 @@ increase the score of each group you read."
        ["Original" gnus-article-date-original t]
        ["Lapsed" gnus-article-date-lapsed t]
        ["User-defined" gnus-article-date-user t])
-       ("Filter"
+       ("Washing"
        ("Remove Blanks"
         ["Leading" gnus-article-strip-leading-blank-lines t]
         ["Multiple" gnus-article-strip-multiple-blank-lines t]
index 609074d..395e46d 100644 (file)
   :link '(custom-manual "(gnus)Various Various")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.7" 
+(defconst gnus-version-number "5.4.8"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
index 6ea6d60..de5481f 100644 (file)
@@ -1394,8 +1394,8 @@ However, if `message-yank-prefix' is non-nil, insert that prefix on each line."
        (goto-char start)
        (while (< (point) (mark t))
          (insert message-yank-prefix)
-         (forward-line 1)))
-      (goto-char start))))
+         (forward-line 1))))
+    (goto-char start)))
 
 (defun message-yank-original (&optional arg)
   "Insert the message being replied to, if any.
index 3462e49..62c9fd5 100644 (file)
@@ -710,7 +710,7 @@ all.  This may very well take some time.")
                   (file-directory-p dir))
          (nnml-generate-nov-databases-1 dir seen))))
     ;; Do this directory.
-    (let ((files (nnheader-article-to-file-alist dir)))
+    (let ((files (nreverse (nnheader-article-to-file-alist dir))))
       (when files
        (funcall nnml-generate-active-function dir)
        ;; Generate the nov file.
@@ -724,10 +724,10 @@ all.  This may very well take some time.")
     (setq nnml-group-alist
          (delq (assoc group nnml-group-alist) nnml-group-alist))
     (push (list group
-               (cons (car files)
+               (cons (cdaar files)
                      (let ((f files))
                        (while (cdr f) (setq f (cdr f)))
-                       (car f))))
+                       (cdaar f))))
          nnml-group-alist)))
 
 (defun nnml-generate-nov-file (dir files)
index 5c59494..bc29d66 100644 (file)
      (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))