Fix my last change.
[gnus] / lisp / gnus-cite.el
index 15d96e0..0b7f42f 100644 (file)
@@ -1,5 +1,6 @@
 ;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995,96,97,98,99 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+;;        Free Software Foundation, Inc.
 
 ;; Author: Per Abhiddenware; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -42,10 +43,10 @@ article has citations."
   :type 'string)
 
 (defcustom gnus-cite-always-check nil
-  "Check article always for citations. Set it t to check all articles."
+  "Check article always for citations.  Set it t to check all articles."
   :group 'gnus-cite
   :type '(choice (const :tag "no" nil)
-                 (const :tag "yes" t)))
+                (const :tag "yes" t)))
 
 (defcustom gnus-cited-opened-text-button-line-format "%(%{[-]%}%)\n"
   "Format of opened cited text buttons."
@@ -104,7 +105,7 @@ The first regexp group should match the Supercite attribution."
   :type 'integer)
 
 (defcustom gnus-cite-attribution-prefix
-  "In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),\\|    > -----Original Message-----"
+  "In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),\\|-----Original Message-----"
   "*Regexp matching the beginning of an attribution line."
   :group 'gnus-cite
   :type 'regexp)
@@ -238,8 +239,8 @@ It is merged with the face for the cited text belonging to the attribution."
 
 (defcustom gnus-cite-face-list
   '(gnus-cite-face-1 gnus-cite-face-2 gnus-cite-face-3 gnus-cite-face-4
-    gnus-cite-face-5 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-8
-    gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11)
+                    gnus-cite-face-5 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-8
+                    gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11)
   "*List of faces used for highlighting citations.
 
 When there are citations from multiple articles in the same message,
@@ -366,7 +367,7 @@ Lines matching `gnus-cite-attribution-suffix' and perhaps
   "Dissect the article buffer looking for cited text."
   (save-excursion
     (set-buffer gnus-article-buffer)
-    (gnus-cite-parse-maybe)
+    (gnus-cite-parse-maybe nil t)
     (let ((alist gnus-cite-prefix-alist)
          prefix numbers number marks m)
       ;; Loop through citation prefixes.
@@ -376,7 +377,7 @@ Lines matching `gnus-cite-attribution-suffix' and perhaps
        (while numbers
          (setq number (pop numbers))
          (goto-char (point-min))
-         (forward-line (1- number))
+         (forward-line number)
          (push (cons (point-marker) "") marks)
          (while (and numbers
                      (= (1- number) (car numbers)))
@@ -525,17 +526,19 @@ always hide."
 (defun gnus-article-toggle-cited-text (args)
   "Toggle hiding the text in REGION."
   (let* ((region (car args))
+        (beg (car region))
+        (end (cdr region))
         (start (cadr args))
         (hidden
          (text-property-any
-          (car region) (1- (cdr region))
+          beg (1- end)
           (car gnus-hidden-properties) (cadr gnus-hidden-properties)))
         (inhibit-point-motion-hooks t)
         buffer-read-only)
     (funcall
      (if hidden
         'remove-text-properties 'gnus-add-text-properties)
-     (car region) (cdr region) gnus-hidden-properties)
+     beg end gnus-hidden-properties)
     (save-excursion
       (goto-char start)
       (gnus-delete-line)
@@ -613,8 +616,7 @@ See also the documentation for `gnus-article-highlight-citation'."
 
 ;;; Internal functions:
 
-
-(defun gnus-cite-parse-maybe (&optional force)
+(defun gnus-cite-parse-maybe (&optional force no-overlay)
   "Always parse the buffer."
   (gnus-cite-localize)
   ;;Reset parser information.
@@ -622,7 +624,8 @@ See also the documentation for `gnus-article-highlight-citation'."
        gnus-cite-attribution-alist nil
        gnus-cite-loose-prefix-alist nil
        gnus-cite-loose-attribution-alist nil)
-  (gnus-cite-delete-overlays)
+  (unless no-overlay
+    (gnus-cite-delete-overlays))
   ;; Parse if not too large.
   (if (and gnus-cite-parse-max-size
           (> (buffer-size) gnus-cite-parse-max-size))
@@ -640,14 +643,15 @@ See also the documentation for `gnus-article-highlight-citation'."
       (gnus-delete-overlay overlay))))
 
 (defun gnus-cite-parse-wrapper ()
-  ;; Wrap chopped gnus-cite-parse
+  ;; Wrap chopped gnus-cite-parse.
   (article-goto-body)
-  (save-excursion
-    (gnus-cite-parse-attributions))
-  (save-excursion
-    (gnus-cite-parse))
-  (save-excursion
-    (gnus-cite-connect-attributions)))
+  (let ((inhibit-point-motion-hooks t))
+    (save-excursion
+      (gnus-cite-parse-attributions))
+    (save-excursion
+      (gnus-cite-parse))
+    (save-excursion
+      (gnus-cite-connect-attributions))))
 
 (defun gnus-cite-parse ()
   ;; Parse and connect citation prefixes and attribution lines.
@@ -918,7 +922,7 @@ See also the documentation for `gnus-article-highlight-citation'."
 (defun gnus-cite-toggle (prefix)
   (save-excursion
     (set-buffer gnus-article-buffer)
-    (gnus-cite-parse-maybe)
+    (gnus-cite-parse-maybe nil t)
     (let ((buffer-read-only nil)
          (numbers (cdr (assoc prefix gnus-cite-prefix-alist)))
          (inhibit-point-motion-hooks t)
@@ -963,4 +967,8 @@ See also the documentation for `gnus-article-highlight-citation'."
 
 (provide 'gnus-cite)
 
+;; Local Variables:
+;; coding: iso-8859-1
+;; End:
+
 ;;; gnus-cite.el ends here