projects
/
elisp
/
gnus.git-
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was generated by cvs2svn to compensate for changes in r2264,
[elisp/gnus.git-]
/
lisp
/
gnus-cite.el
diff --git
a/lisp/gnus-cite.el
b/lisp/gnus-cite.el
index
98be8d0
..
998a196
100644
(file)
--- a/
lisp/gnus-cite.el
+++ b/
lisp/gnus-cite.el
@@
-1,5
+1,5
@@
;;; gnus-cite.el --- parse citations in articles for Gnus
;;; gnus-cite.el --- parse citations in articles for Gnus
-;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99 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
;; Author: Per Abhiddenware; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@
-47,21
+47,24
@@
article has citations."
:type '(choice (const :tag "no" nil)
(const :tag "yes" t)))
:type '(choice (const :tag "no" nil)
(const :tag "yes" t)))
-(defcustom gnus-cited-opened-text-button-line-format "%(%{<->%}%)\n"
+(defcustom gnus-cited-opened-text-button-line-format "%(%{[-]%}%)\n"
"Format of opened cited text buttons."
:group 'gnus-cite
:type 'string)
"Format of opened cited text buttons."
:group 'gnus-cite
:type 'string)
-(defcustom gnus-cited-closed-text-button-line-format "%(%{<+>%}%)\n"
+(defcustom gnus-cited-closed-text-button-line-format "%(%{[+]%}%)\n"
"Format of closed cited text buttons."
:group 'gnus-cite
:type 'string)
(defcustom gnus-cited-lines-visible nil
"Format of closed cited text buttons."
:group 'gnus-cite
:type 'string)
(defcustom gnus-cited-lines-visible nil
- "The number of lines of hidden cited text to remain visible."
+ "The number of lines of hidden cited text to remain visible.
+Or a pair (cons) of numbers which are the number of lines at the top
+and bottom of the text, respectively, to remain visible."
:group 'gnus-cite
:type '(choice (const :tag "none" nil)
:group 'gnus-cite
:type '(choice (const :tag "none" nil)
- integer))
+ integer
+ (cons :tag "Top and Bottom" integer integer)))
(defcustom gnus-cite-parse-max-size 25000
"Maximum article size (in bytes) where parsing citations is allowed.
(defcustom gnus-cite-parse-max-size 25000
"Maximum article size (in bytes) where parsing citations is allowed.
@@
-71,7
+74,7
@@
Set it to nil to parse all articles."
integer))
(defcustom gnus-cite-prefix-regexp
integer))
(defcustom gnus-cite-prefix-regexp
- "^[]>|:}+ ]*[]>|:}+]\\(.*>\\)?\\|^.*>"
+ "^[]>»|:}+ ]*[]>»|:}+]\\(.*>»\\)?\\|^.*>"
"*Regexp matching the longest possible citation prefix on a line."
:group 'gnus-cite
:type 'regexp)
"*Regexp matching the longest possible citation prefix on a line."
:group 'gnus-cite
:type 'regexp)
@@
-100,14
+103,14
@@
The first regexp group should match the Supercite attribution."
:group 'gnus-cite
:type 'integer)
:group 'gnus-cite
:type 'integer)
-(defcustom gnus-cite-attribution-prefix
- "In article\\|in <\\|On \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\),"
+(defcustom gnus-cite-attribution-prefix
+ "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)
(defcustom gnus-cite-attribution-suffix
"*Regexp matching the beginning of an attribution line."
:group 'gnus-cite
:type 'regexp)
(defcustom gnus-cite-attribution-suffix
- "\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\)[ \t]*$"
+ "\\(\\(wrote\\|writes\\|said\\|says\\|>\\)\\(:\\|\\.\\.\\.\\)\\|-----Original Message-----\\)[ \t]*$"
"*Regexp matching the end of an attribution line.
The text matching the first grouping will be used as a button."
:group 'gnus-cite
"*Regexp matching the end of an attribution line.
The text matching the first grouping will be used as a button."
:group 'gnus-cite
@@
-284,6
+287,7
@@
This should make it easier to see who wrote what."
(defvar gnus-cited-opened-text-button-line-format-alist
`((?b (marker-position beg) ?d)
(?e (marker-position end) ?d)
(defvar gnus-cited-opened-text-button-line-format-alist
`((?b (marker-position beg) ?d)
(?e (marker-position end) ?d)
+ (?n (count-lines beg end) ?d)
(?l (- end beg) ?d)))
(defvar gnus-cited-opened-text-button-line-format-spec nil)
(defvar gnus-cited-closed-text-button-line-format-alist
(?l (- end beg) ?d)))
(defvar gnus-cited-opened-text-button-line-format-spec nil)
(defvar gnus-cited-closed-text-button-line-format-alist
@@
-339,7
+343,8
@@
Lines matching `gnus-cite-attribution-suffix' and perhaps
skip (gnus-cite-find-prefix number)
face (cdr (assoc prefix face-alist)))
;; Add attribution button.
skip (gnus-cite-find-prefix number)
face (cdr (assoc prefix face-alist)))
;; Add attribution button.
- (goto-line number)
+ (goto-char (point-min))
+ (forward-line (1- number))
(when (re-search-forward gnus-cite-attribution-suffix
(save-excursion (end-of-line 1) (point))
t)
(when (re-search-forward gnus-cite-attribution-suffix
(save-excursion (end-of-line 1) (point))
t)
@@
-371,7
+376,7
@@
Lines matching `gnus-cite-attribution-suffix' and perhaps
(while numbers
(setq number (pop numbers))
(goto-char (point-min))
(while numbers
(setq number (pop numbers))
(goto-char (point-min))
- (forward-line number)
+ (forward-line (1- number))
(push (cons (point-marker) "") marks)
(while (and numbers
(= (1- number) (car numbers)))
(push (cons (point-marker) "") marks)
(while (and numbers
(= (1- number) (car numbers)))
@@
-380,8
+385,7
@@
Lines matching `gnus-cite-attribution-suffix' and perhaps
(forward-line (1- number))
(push (cons (point-marker) prefix) marks)))
;; Skip to the beginning of the body.
(forward-line (1- number))
(push (cons (point-marker) prefix) marks)))
;; Skip to the beginning of the body.
- (goto-char (point-min))
- (search-forward "\n\n" nil t)
+ (article-goto-body)
(push (cons (point-marker) "") marks)
;; Find the end of the body.
(goto-char (point-max))
(push (cons (point-marker) "") marks)
;; Find the end of the body.
(goto-char (point-max))
@@
-431,7
+435,6
@@
If WIDTH (the numerical prefix), use that text width when filling."
(fill-column (if width (prefix-numeric-value width) fill-column)))
(save-restriction
(while (cdr marks)
(fill-column (if width (prefix-numeric-value width) fill-column)))
(save-restriction
(while (cdr marks)
- (widen)
(narrow-to-region (caar marks) (caadr marks))
(let ((adaptive-fill-regexp
(concat "^" (regexp-quote (cdar marks)) " *"))
(narrow-to-region (caar marks) (caadr marks))
(let ((adaptive-fill-regexp
(concat "^" (regexp-quote (cdar marks)) " *"))
@@
-485,10
+488,18
@@
always hide."
;; Skip past lines we want to leave visible.
(when (and beg end gnus-cited-lines-visible)
(goto-char beg)
;; Skip past lines we want to leave visible.
(when (and beg end gnus-cited-lines-visible)
(goto-char beg)
- (forward-line gnus-cited-lines-visible)
+ (forward-line (if (consp gnus-cited-lines-visible)
+ (car gnus-cited-lines-visible)
+ gnus-cited-lines-visible))
(if (>= (point) end)
(setq beg nil)
(if (>= (point) end)
(setq beg nil)
- (setq beg (point-marker))))
+ (setq beg (point-marker))
+ (when (consp gnus-cited-lines-visible)
+ (goto-char end)
+ (forward-line (- (cdr gnus-cited-lines-visible)))
+ (if (<= (point) beg)
+ (setq beg nil)
+ (setq end (point-marker))))))
(when (and beg end)
;; We use markers for the end-points to facilitate later
;; wrapping and mangling of text.
(when (and beg end)
;; We use markers for the end-points to facilitate later
;; wrapping and mangling of text.
@@
-521,7
+532,7
@@
always hide."
(car gnus-hidden-properties) (cadr gnus-hidden-properties)))
(inhibit-point-motion-hooks t)
buffer-read-only)
(car gnus-hidden-properties) (cadr gnus-hidden-properties)))
(inhibit-point-motion-hooks t)
buffer-read-only)
- (funcall
+ (funcall
(if hidden
'remove-text-properties 'gnus-add-text-properties)
(car region) (cdr region) gnus-hidden-properties)
(if hidden
'remove-text-properties 'gnus-add-text-properties)
(car region) (cdr region) gnus-hidden-properties)
@@
-557,8
+568,7
@@
See also the documentation for `gnus-article-highlight-citation'."
(save-excursion
(set-buffer gnus-article-buffer)
(gnus-cite-parse-maybe force)
(save-excursion
(set-buffer gnus-article-buffer)
(gnus-cite-parse-maybe force)
- (goto-char (point-min))
- (search-forward "\n\n" nil t)
+ (article-goto-body)
(let ((start (point))
(atts gnus-cite-attribution-alist)
(buffer-read-only nil)
(let ((start (point))
(atts gnus-cite-attribution-alist)
(buffer-read-only nil)
@@
-582,7
+592,8
@@
See also the documentation for `gnus-article-highlight-citation'."
(while total
(setq hidden (car total)
total (cdr total))
(while total
(setq hidden (car total)
total (cdr total))
- (goto-line hidden)
+ (goto-char (point-min))
+ (forward-line (1- hidden))
(unless (assq hidden gnus-cite-attribution-alist)
(gnus-add-text-properties
(point) (progn (forward-line 1) (point))
(unless (assq hidden gnus-cite-attribution-alist)
(gnus-add-text-properties
(point) (progn (forward-line 1) (point))
@@
-602,6
+613,7
@@
See also the documentation for `gnus-article-highlight-citation'."
;;; Internal functions:
;;; Internal functions:
+
(defun gnus-cite-parse-maybe (&optional force)
;; Parse if the buffer has changes since last time.
(if (and (not force)
(defun gnus-cite-parse-maybe (&optional force)
;; Parse if the buffer has changes since last time.
(if (and (not force)
@@
-626,9
+638,7
@@
See also the documentation for `gnus-article-highlight-citation'."
(defun gnus-cite-parse-wrapper ()
;; Wrap chopped gnus-cite-parse
(defun gnus-cite-parse-wrapper ()
;; Wrap chopped gnus-cite-parse
- (goto-char (point-min))
- (unless (search-forward "\n\n" nil t)
- (goto-char (point-max)))
+ (article-goto-body)
(save-excursion
(gnus-cite-parse-attributions))
;; Try to avoid check citation if there is no reason to believe
(save-excursion
(gnus-cite-parse-attributions))
;; Try to avoid check citation if there is no reason to believe
@@
-895,8
+905,8
@@
See also the documentation for `gnus-article-highlight-citation'."
(when face
(let ((inhibit-point-motion-hooks t)
from to overlay)
(when face
(let ((inhibit-point-motion-hooks t)
from to overlay)
- (goto-line number)
- (unless (eobp) ; Sometimes things become confused.
+ (goto-char (point-min))
+ (when (zerop (forward-line (1- number)))
(forward-char (length prefix))
(skip-chars-forward " \t")
(setq from (point))
(forward-char (length prefix))
(skip-chars-forward " \t")
(setq from (point))
@@
-919,7
+929,8
@@
See also the documentation for `gnus-article-highlight-citation'."
(while numbers
(setq number (car numbers)
numbers (cdr numbers))
(while numbers
(setq number (car numbers)
numbers (cdr numbers))
- (goto-line number)
+ (goto-char (point-min))
+ (forward-line (1- number))
(cond ((get-text-property (point) 'invisible)
(remove-text-properties (point) (progn (forward-line 1) (point))
gnus-hidden-properties))
(cond ((get-text-property (point) 'invisible)
(remove-text-properties (point) (progn (forward-line 1) (point))
gnus-hidden-properties))