Function: gnus-article-hide-citation
gnus-article-hide-citation is an autoloaded, interactive and
byte-compiled function defined in gnus-cite.el.gz.
Signature
(gnus-article-hide-citation &optional ARG FORCE)
Documentation
Toggle hiding of all cited text except attribution lines.
See the documentation for gnus-article-highlight-citation.
If given a negative prefix, always show; if given a positive prefix,
always hide.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-cite.el.gz
(defun gnus-article-hide-citation (&optional arg _force)
"Toggle hiding of all cited text except attribution lines.
See the documentation for `gnus-article-highlight-citation'.
If given a negative prefix, always show; if given a positive prefix,
always hide."
(interactive (append (gnus-article-hidden-arg) (list 'force))
gnus-article-mode gnus-summary-mode)
(gnus-set-format 'cited-opened-text-button t)
(gnus-set-format 'cited-closed-text-button t)
(with-current-buffer gnus-article-buffer
(let ((buffer-read-only nil)
marks
(props (nconc (list 'article-type 'cite)
gnus-hidden-properties))
(point (point-min))
found beg end start)
(while (setq point
(text-property-any point (point-max)
'gnus-callback
'gnus-article-toggle-cited-text))
(setq found t)
(goto-char point)
(gnus-article-toggle-cited-text
(get-text-property point 'gnus-data) arg)
(forward-line 1)
(setq point (point)))
(unless found
(setq marks (gnus-dissect-cited-text))
(while marks
(setq beg nil
end nil)
(while (and marks (string= (cdar marks) ""))
(setq marks (cdr marks)))
(when marks
(setq beg (caar marks)))
(while (and marks (not (string= (cdar marks) "")))
(setq marks (cdr marks)))
(when marks
(setq end (caar marks)))
;; Skip past lines we want to leave visible.
(when (and beg end gnus-cited-lines-visible)
(goto-char beg)
(forward-line (if (consp gnus-cited-lines-visible)
(car gnus-cited-lines-visible)
gnus-cited-lines-visible))
(if (>= (point) end)
(setq beg nil)
(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)
(gnus-add-wash-type 'cite)
;; We use markers for the end-points to facilitate later
;; wrapping and mangling of text.
(setq beg (set-marker (make-marker) beg)
end (set-marker (make-marker) end))
(gnus-add-text-properties-when 'article-type nil beg end props)
(goto-char beg)
(when (and gnus-cite-blank-line-after-header
(not (save-excursion (search-backward "\n\n" nil t))))
(insert "\n"))
(put-text-property
(setq start (point-marker))
(progn
(gnus-article-add-button
(point)
(progn (eval gnus-cited-closed-text-button-line-format-spec t)
(point))
'gnus-article-toggle-cited-text
(list (cons beg end) start))
(point))
'article-type 'annotation)
(set-marker beg (point))))))))