Function: gnus-article-setup-buffer

gnus-article-setup-buffer is an autoloaded and byte-compiled function defined in gnus-art.el.gz.

Signature

(gnus-article-setup-buffer)

Documentation

Initialize the article buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-article-setup-buffer ()
  "Initialize the article buffer."
  (let* ((name (if gnus-single-article-buffer "*Article*"
		 (concat "*Article " gnus-newsgroup-name "*")))
	 (original
	  (progn (string-match "\\*Article" name)
		 (concat " *Original Article"
			 (substring name (match-end 0))))))
    (setq gnus-article-buffer name)
    (setq gnus-original-article-buffer original)
    (setq gnus-article-mime-handle-alist nil)
    (with-current-buffer gnus-summary-buffer
      ;; This might be a variable local to the summary buffer.
      (unless gnus-single-article-buffer
	(setq gnus-article-buffer name)
	(setq gnus-original-article-buffer original)
	(gnus-set-global-variables)))
    (gnus-article-setup-highlight-words)
    ;; Init original article buffer.
    (with-current-buffer (gnus-get-buffer-create gnus-original-article-buffer)
      (mm-enable-multibyte)
      (setq major-mode 'gnus-original-article-mode)
      (make-local-variable 'gnus-original-article))
    (if (and (get-buffer name)
	     (with-current-buffer name
	       (if gnus-article-edit-mode
		   (if (y-or-n-p "Article mode edit in progress; discard? ")
		       (progn
			 (set-buffer-modified-p nil)
			 (gnus-kill-buffer name)
			 (message "")
			 nil)
		     (error "Action aborted"))
		 t)))
	(let ((summary gnus-summary-buffer))
	  (with-current-buffer name
            (setq-local gnus-article-edit-mode nil)
	    (when gnus-article-mime-handles
	      (mm-destroy-parts gnus-article-mime-handles)
	      (setq gnus-article-mime-handles nil))
	    ;; Set it to nil in article-buffer!
	    (setq gnus-article-mime-handle-alist nil)
	    (buffer-disable-undo)
	    (setq buffer-read-only t)
	    (unless (derived-mode-p 'gnus-article-mode)
	      (gnus-article-mode))
            (setq-local gnus-summary-buffer summary)
	    (setq truncate-lines gnus-article-truncate-lines)
	    (current-buffer)))
      (let ((summary gnus-summary-buffer))
	(with-current-buffer (gnus-get-buffer-create name)
	  (gnus-article-mode)
	  (setq truncate-lines gnus-article-truncate-lines)
          (setq-local gnus-summary-buffer summary)
	  (gnus-summary-set-local-parameters gnus-newsgroup-name)
	  (when article-lapsed-timer
	    (gnus-stop-date-timer))
	  (when gnus-article-update-date-headers
	    (gnus-start-date-timer gnus-article-update-date-headers))
	  (current-buffer))))))