* gnus-picon.el (gnus-picons-news-directories): Removed obsolete
[gnus] / lisp / gnus-art.el
index 1b3cf01..91c73ce 100644 (file)
@@ -32,6 +32,7 @@
 (require 'gnus-sum)
 (require 'gnus-spec)
 (require 'gnus-int)
+(require 'gnus-win)
 (require 'mm-bodies)
 (require 'mail-parse)
 (require 'mm-decode)
     "^X-Abuse-Info:" "^X-From_:" "^X-Accept-Language:" "^Errors-To:"
     "^X-BeenThere:" "^X-Mailman-Version:" "^List-Help:" "^List-Post:"
     "^List-Subscribe:" "^List-Id:" "^List-Unsubscribe:" "^List-Archive:"
-     "^X-Content-length:" "^X-Posting-Agent:" "^Original-Received:")
+     "^X-Content-length:" "^X-Posting-Agent:" "^Original-Received:"
+     "^X-Request-PGP:" "^X-Fingerprint:" "^X-WRIEnvto:" "^X-WRIEnvfrom:"
+     "^X-Virus-Scanned:" "^X-Delivery-Agent:")
   "*All headers that start with this regexp will be hidden.
 This variable can also be a list of regexps of headers to be ignored.
 If `gnus-visible-headers' is non-nil, this variable will be ignored."
@@ -237,7 +240,7 @@ display -")))
 If it is a string, the command will be executed in a sub-shell
 asynchronously.         The compressed face will be piped to this command."
   :type `(choice string
-                (function-item 
+                (function-item
                  ,(if (featurep 'xemacs)
                       'gnus-xmas-article-display-xface
                     'gnus-article-display-xface))
@@ -1047,7 +1050,12 @@ See the manual for details."
   :type gnus-article-treat-custom)
 (put 'gnus-treat-display-smileys 'highlight t)
 
-(defcustom gnus-treat-display-picons (if (featurep 'xemacs) 'head nil)
+(defcustom gnus-treat-display-picons
+  (if (or (and (featurep 'xemacs)
+              (featurep 'xpm))
+         (and (fboundp 'image-type-available-p)
+              (image-type-available-p 'pbm)))
+      'head nil)
   "Display picons.
 Valid values are nil, t, `head', `last', an integer or a predicate.
 See the manual for details."
@@ -1126,7 +1134,6 @@ It is a string, such as \"PGP\". If nil, ask user."
     (gnus-treat-fill-article gnus-article-fill-cited-article)
     (gnus-treat-fill-long-lines gnus-article-fill-long-lines)
     (gnus-treat-strip-cr gnus-article-remove-cr)
-    (gnus-treat-emphasize gnus-article-emphasize)
     (gnus-treat-display-xface gnus-article-display-x-face)
     (gnus-treat-date-ut gnus-article-date-ut)
     (gnus-treat-date-local gnus-article-date-local)
@@ -1158,6 +1165,7 @@ It is a string, such as \"PGP\". If nil, ask user."
     (gnus-treat-display-smileys gnus-smiley-display)
     (gnus-treat-capitalize-sentences gnus-article-capitalize-sentences)
     (gnus-treat-display-picons gnus-article-display-picons)
+    (gnus-treat-emphasize gnus-article-emphasize)
     (gnus-treat-play-sounds gnus-earcon-display)))
 
 (defvar gnus-article-mime-handle-alist nil)
@@ -1876,7 +1884,9 @@ If READ-CHARSET, ask for a coding system."
          (narrow-to-region (point) (point-max))
          (mm-setup-w3)
          (let ((w3-strict-width (window-width))
-               (url-standalone-mode t))
+               (url-standalone-mode t)
+               (w3-honor-stylesheets nil)
+               (w3-delay-image-loads t))
            (condition-case var
                (w3-region (point-min) (point-max))
              (error))))))))
@@ -2020,7 +2030,8 @@ always hide."
        (let ((buffer-read-only nil))
          (when (gnus-article-narrow-to-signature)
            (gnus-article-hide-text-type
-            (point-min) (point-max) 'signature)))))))
+            (point-min) (point-max) 'signature))))))
+  (gnus-set-mode-line 'article))
 
 (defun article-strip-headers-in-body ()
   "Strip offensive headers from bodies."
@@ -2172,7 +2183,7 @@ Put point at the beginning of the signature separator."
 
 (defun gnus-article-check-hidden-text (type arg)
   "Return nil if hiding is necessary.
-Arg can be nil or a number.  Nil and positive means hide, negative
+Arg can be nil or a number.  nil and positive means hide, negative
 means show, 0 means toggle."
   (save-excursion
     (save-restriction
@@ -2212,7 +2223,8 @@ Originally it is hide instead of DUMMY."
      'article-type type
      (point-min) (point-max)
      (cons 'article-type (cons type
-                              gnus-hidden-properties)))))
+                              gnus-hidden-properties)))
+    (setq gnus-article-wash-types (delq type gnus-article-wash-types))))
 
 (defconst article-time-units
   `((year . ,(* 365.25 24 60 60))
@@ -2510,7 +2522,7 @@ This format is defined by the `gnus-article-time-format' variable."
               (match-beginning invisible) (match-end invisible) props)
              (gnus-article-unhide-text-type
               (match-beginning visible) (match-end visible) 'emphasis)
-             (gnus-put-text-property-excluding-newlines
+             (gnus-put-overlay-excluding-newlines
               (match-beginning visible) (match-end visible) 'face face)
              (push 'emphasis gnus-article-wash-types)
              (goto-char (match-end invisible)))))))))
@@ -3142,7 +3154,7 @@ commands:
 ;; from the head of the article.
 (defun gnus-article-set-window-start (&optional line)
   (set-window-start
-   (get-buffer-window gnus-article-buffer t)
+   (gnus-get-buffer-window gnus-article-buffer t)
    (save-excursion
      (set-buffer gnus-article-buffer)
      (goto-char (point-min))
@@ -3710,7 +3722,7 @@ If no internal viewer is available, use an external viewer."
                               gnus-newsgroup-ignored-charsets)))
          (save-excursion
            (unwind-protect
-               (let ((win (get-buffer-window (current-buffer) t))
+               (let ((win (gnus-get-buffer-window (current-buffer) t))
                      (beg (point)))
                  (when win
                    (select-window win))
@@ -3720,7 +3732,7 @@ If no internal viewer is available, use an external viewer."
                      ;; This will remove the part.
                      (mm-display-part handle)
                    (save-restriction
-                     (narrow-to-region (point) 
+                     (narrow-to-region (point)
                                        (if (eobp) (point) (1+ (point))))
                      (mm-display-part handle)
                      ;; We narrow to the part itself and
@@ -4099,11 +4111,11 @@ If no internal viewer is available, use an external viewer."
       (goto-char point))))
 
 (defconst gnus-article-wash-status-strings
-  (let ((alist '((cite "c" "Possible hidden citation text" 
+  (let ((alist '((cite "c" "Possible hidden citation text"
                       " " "All citation text visible")
                 (headers "h" "Hidden headers"
                          " " "All headers visible.")
-                (pgp "p" "Encrypted or signed message status hidden" 
+                (pgp "p" "Encrypted or signed message status hidden"
                      " " "No hidden encryption nor digital signature status")
                 (signature "s" "Signature has been hidden"
                            " " "Signature is visible")
@@ -4126,7 +4138,7 @@ Each entry has the form (KEY ON OF), where the KEY is a symbol
 representing the particular washing function, ON is the string to use
 in the article mode line when the washing function is active, and OFF
 is the string to use when it is inactive.")
-      
+
 (defun gnus-gnus-article-wash-status-entry (key value)
   (let ((entry (assoc key gnus-article-wash-status-strings)))
     (if value (nth 1 entry) (nth 2 entry))))
@@ -4146,9 +4158,9 @@ is the string to use when it is inactive.")
          (overstrike (memq 'overstrike gnus-article-wash-types))
          (emphasis (memq 'emphasis gnus-article-wash-types)))
       (concat (gnus-gnus-article-wash-status-entry 'cite cite)
-             (gnus-gnus-article-wash-status-entry 'headers 
+             (gnus-gnus-article-wash-status-entry 'headers
                                                   (or headers boring))
-             (gnus-gnus-article-wash-status-entry 
+             (gnus-gnus-article-wash-status-entry
               'pgp (or pgp pem signed encrypted))
              (gnus-gnus-article-wash-status-entry 'signature signature)
              (gnus-gnus-article-wash-status-entry 'overstrike overstrike)
@@ -4642,7 +4654,7 @@ If given a prefix, show the hidden text instead."
          (set-buffer gnus-summary-buffer)
          (gnus-summary-update-article do-update-line sparse-header)
          (gnus-summary-goto-subject do-update-line nil t)
-         (set-window-point (get-buffer-window (current-buffer) t)
+         (set-window-point (gnus-get-buffer-window (current-buffer) t)
                            (point))
          (set-buffer buf))))))
 
@@ -5193,13 +5205,13 @@ specified by `gnus-button-alist'."
 
 (defun gnus-button-handle-info (url)
   "Fetch an info URL."
-  (if (string-match 
+  (if (string-match
        "^\\([^:/]+\\)?/\\(.*\\)"
        url)
       (gnus-info-find-node
        (concat "(" (or (gnus-url-unhex-string (match-string 1 url))
-                      "Gnus") 
-              ")" 
+                      "Gnus")
+              ")"
               (gnus-url-unhex-string (match-string 2 url))))
     (error "Can't parse %s" url)))
 
@@ -5214,8 +5226,8 @@ specified by `gnus-button-alist'."
   (if (not (string-match "[:/]" address))
       ;; This is just a simple group url.
       (gnus-group-read-ephemeral-group address gnus-select-method)
-    (if (not 
-        (string-match 
+    (if (not
+        (string-match
          "^\\([^:/]+\\)\\(:\\([^/]+\\)\\)?/\\([^/]+\\)\\(/\\([0-9]+\\)\\)?"
          address))
        (error "Can't parse %s" address)
@@ -5305,7 +5317,7 @@ specified by `gnus-button-alist'."
   "Go to the next page."
   (interactive)
   (let ((win (selected-window)))
-    (select-window (get-buffer-window gnus-article-buffer t))
+    (select-window (gnus-get-buffer-window gnus-article-buffer t))
     (gnus-article-next-page)
     (select-window win)))
 
@@ -5313,7 +5325,7 @@ specified by `gnus-button-alist'."
   "Go to the prev page."
   (interactive)
   (let ((win (selected-window)))
-    (select-window (get-buffer-window gnus-article-buffer t))
+    (select-window (gnus-get-buffer-window gnus-article-buffer t))
     (gnus-article-prev-page)
     (select-window win)))
 
@@ -5329,7 +5341,7 @@ specified by `gnus-button-alist'."
   "Go to the next page."
   (interactive "P")
   (let ((win (selected-window)))
-    (select-window (get-buffer-window gnus-article-buffer t))
+    (select-window (gnus-get-buffer-window gnus-article-buffer t))
     (gnus-article-next-page)
     (select-window win)))
 
@@ -5337,7 +5349,7 @@ specified by `gnus-button-alist'."
   "Go to the prev page."
   (interactive "P")
   (let ((win (selected-window)))
-    (select-window (get-buffer-window gnus-article-buffer t))
+    (select-window (gnus-get-buffer-window gnus-article-buffer t))
     (gnus-article-prev-page)
     (select-window win)))