Merge changes made in Gnus trunk.
authorGnus developers <ding@gnus.org>
Mon, 6 Dec 2010 22:16:10 +0000 (22:16 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 6 Dec 2010 22:16:10 +0000 (22:16 +0000)
shr.el (shr-render-td): Render td content with shr-descend, so style will be applied to <td> too.
 (shr-colorize-region): Colorize region even if we only have a background.
 (shr-tag-body): Fix color and background color inheritance.
 (shr-tag-body): Do not recolorize after shr-generic.
 (shr-tag-font): Let shr-generic colorize via inheritance.
shr.el (shr-descend): Only colorise something if we have a node that sets colors.
gnus-int.el (gnus-request-thread): Rework to take a header instead of a Message-ID to avoid having nnimap depend on gnus-sum.
shr.el (shr-tag-font): Colorize the region.
 (shr-tag-body): Ditto.
 (shr-tag-font): Actually let the styles be inherited instead of overwriting them.
 (shr-tag-font): Get the background color right.
 (shr-tag-style): Ignore all <style> tags for the moment.

lisp/gnus/ChangeLog
lisp/gnus/gnus-int.el
lisp/gnus/gnus-sum.el
lisp/gnus/nnimap.el
lisp/gnus/shr.el

index f365987..ef4a763 100644 (file)
@@ -1,3 +1,27 @@
+2010-12-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * shr.el (shr-tag-font): Colorize the region.
+       (shr-tag-body): Ditto.
+       (shr-tag-font): Actually let the styles be inherited instead of
+       overwriting them.
+       (shr-tag-font): Get the background color right.
+       (shr-tag-style): Ignore all <style> tags for the moment.
+
+       * gnus-int.el (gnus-request-thread): Rework to take a header instead of
+       a Message-ID to avoid having nnimap depend on gnus-sum.
+
+       * shr.el (shr-descend): Only colorize something if we have a node that
+       sets colors.
+
+2010-12-06  Julien Danjou  <julien@danjou.info>
+
+       * shr.el (shr-render-td): Render td content with shr-descend, so style
+       will be applied to <td> too.
+       (shr-colorize-region): Colorize region even if we only have a background.
+       (shr-tag-body): Fix color and background color inheritance.
+       Do not recolorize after shr-generic.
+       (shr-tag-font): Let shr-generic colorize via inheritance.
+
 2010-12-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * shr.el (shr-find-fill-point): Don't regard apostrophe as kinsoku-bol.
index 767ac2e..4328454 100644 (file)
@@ -503,12 +503,11 @@ If BUFFER, insert the article in that group."
             article (gnus-group-real-name group)
             (nth 1 gnus-command-method) buffer)))
 
-(defun gnus-request-thread (id)
-  "Request the headers in the thread containing the article
-specified by Message-ID id."
+(defun gnus-request-thread (header)
+  "Request the headers in the thread containing the article specified by HEADER."
   (let ((gnus-command-method (gnus-find-method-for-group gnus-newsgroup-name)))
     (funcall (gnus-get-function gnus-command-method 'request-thread)
-            id)))
+            header)))
 
 (defun gnus-warp-to-article ()
   "Warps from an article in a virtual group to the article in its
index 2bb39af..1bb4b4a 100644 (file)
@@ -8880,7 +8880,7 @@ variable."
           'list gnus-newsgroup-headers
           (if (gnus-check-backend-function
                'request-thread gnus-newsgroup-name)
-              (gnus-request-thread id)
+              (gnus-request-thread (gnus-summary-article-header))
             (let* ((last (if (numberp limit)
                              (min (+ (mail-header-number
                                       (gnus-summary-article-header))
index 4b4793d..c7d6139 100644 (file)
@@ -47,9 +47,6 @@
 (require 'nnmail)
 (require 'proto-stream)
 
-(eval-when-compile
-  (require 'gnus-sum))
-
 (autoload 'auth-source-forget-user-or-password "auth-source")
 (autoload 'auth-source-user-or-password "auth-source")
 
@@ -1426,9 +1423,10 @@ textual parts.")
   (setq nnimap-status-string "Read-only server")
   nil)
 
-(deffoo nnimap-request-thread (id)
-  (let* ((refs (split-string
-               (or (mail-header-references (gnus-summary-article-header))
+(deffoo nnimap-request-thread (header)
+  (let* ((id (mail-header-id header))
+        (refs (split-string
+               (or (mail-header-references header)
                    "")))
         (cmd (let ((value
                     (format
index 4c4f47e..fafe3d9 100644 (file)
@@ -194,19 +194,19 @@ redirects somewhere else."
        (style (cdr (assq :style (cdr dom))))
        (shr-stylesheet shr-stylesheet)
        (start (point)))
-    (when (and style
-              (string-match "color" style))
-      (setq shr-stylesheet (nconc (shr-parse-style style)
-                                 shr-stylesheet)))
+    (when style
+      (if (string-match "color" style)
+         (setq shr-stylesheet (nconc (shr-parse-style style)
+                                     shr-stylesheet))
+       (setq style nil)))
     (if (fboundp function)
        (funcall function (cdr dom))
       (shr-generic (cdr dom)))
-    (let ((color (cdr (assq 'color shr-stylesheet)))
-         (background (cdr (assq 'background-color
-                                shr-stylesheet))))
-      (when (and shr-stylesheet
-                (or color background))
-       (shr-colorize-region start (point) color background)))))
+    ;; If style is set, then this node has set the color.
+    (when style
+      (shr-colorize-region start (point)
+                          (cdr (assq 'color shr-stylesheet))
+                          (cdr (assq 'background-color shr-stylesheet))))))
 
 (defun shr-generic (cont)
   (dolist (sub cont)
@@ -586,7 +586,7 @@ ones, in case fg and bg are nil."
                (shr-color-visible bg fg)))))))
 
 (defun shr-colorize-region (start end fg &optional bg)
-  (when fg
+  (when (or fg bg)
     (let ((new-colors (shr-color-check fg bg)))
       (when new-colors
        (shr-put-color start end :foreground (cadr new-colors))
@@ -633,11 +633,14 @@ ones, in case fg and bg are nil."
   (let* ((start (point))
         (fgcolor (cdr (assq :fgcolor cont)))
         (bgcolor (cdr (assq :bgcolor cont)))
-        (shr-stylesheet (list (cons :color fgcolor)
-                              (cons :background-color bgcolor))))
+        (shr-stylesheet (list (cons 'color fgcolor)
+                              (cons 'background-color bgcolor))))
     (shr-generic cont)
     (shr-colorize-region start (point) fgcolor bgcolor)))
 
+(defun shr-tag-style (cont)
+  )
+
 (defun shr-tag-p (cont)
   (shr-ensure-paragraph)
   (shr-indent)
@@ -837,10 +840,14 @@ ones, in case fg and bg are nil."
   (shr-heading cont 'bold 'underline))
 
 (defun shr-tag-font (cont)
-  (let ((start (point))
-        (color (cdr (assq :color cont))))
+  (let* ((start (point))
+         (color (cdr (assq :color cont)))
+         (shr-stylesheet (nconc (list (cons 'color color))
+                               shr-stylesheet)))
     (shr-generic cont)
-    (shr-colorize-region start (point) color)))
+    (when color
+      (shr-colorize-region start (point) color
+                          (cdr (assq 'background-color shr-stylesheet))))))
 
 ;;; Table rendering algorithm.
 
@@ -1040,7 +1047,7 @@ ones, in case fg and bg are nil."
          (insert cache)
        (let ((shr-width width)
              (shr-indentation 0))
-         (shr-generic cont))
+         (shr-descend (cons 'td cont)))
        (delete-region
         (point)
         (+ (point)