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
          (inhibit-point-motion-hooks t)
          (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))))))))