Merge remote branch 'origin/no-gnus'
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 14 Mar 2012 17:27:26 +0000 (18:27 +0100)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Wed, 14 Mar 2012 17:27:26 +0000 (18:27 +0100)
lisp/ChangeLog
lisp/shr.el

index 170ff52..709b91b 100644 (file)
@@ -7,6 +7,10 @@
 
 2012-03-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * shr.el (shr-table-widths): Divide the extra width more fairly over
+       the TDs (bug#10973).
+       (shr-render-td): Don't delete too much padding.
+
        * gnus-msg.el (gnus-bug): Don't delete the other windows.  We may be
        using a `gnus-use-full-window' setup (bug#11013).
 
 
        * gnus-start.el (gnus-1): Avoid duplicate entries.
 
-2012-02-16  Lars Ingebrigtsen  <larsi@gnus.org>
-
-       * mm-decode.el (mm-dissect-singlepart): Guess what the type of
-       application/octet-stream parts really is.
-
-       * gnus-sum.el (gnus-propagate-marks): Remove.
-
 2012-02-15  Lars Ingebrigtsen  <larsi@gnus.org>
 
        * imap.el: Remove.
        * gnus-start.el (gnus-clean-old-newsrc): Delete `unexist' from pre-Ma
        Gnus 0.3.
 
+2012-02-16  Lars Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-decode.el (mm-dissect-singlepart): Guess what the type of
+       application/octet-stream parts really is.
+
+       * gnus-sum.el (gnus-propagate-marks): Remove.
+
 2012-02-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        * shr.el (shr-rescale-image): Undo previous change; see
index 7e617f0..423679a 100644 (file)
@@ -1257,21 +1257,26 @@ ones, in case fg and bg are nil."
          (aset natural-widths i (max (aref natural-widths i)
                                      (cadr column)))
          (setq i (1+ i)))))
-    (let ((extra (- (apply '+ (append suggested-widths nil))
-                   (apply '+ (append widths nil))))
-         (expanded-columns 0))
+    (let* ((total-suggested (apply '+ (append suggested-widths nil)))
+          (total-actual (apply '+ (append widths nil)))
+          (extra (- total-suggested
+                    total-actual
+                    ;; TD separators.
+                    (length widths)
+                    ;; Table separators + fence.
+                    3
+                    (* 2 shr-table-depth)))
+          (expanded-columns 0))
+      ;; We have extra, unused space, so divide this space amongst the
+      ;; columns.
       (when (> extra 0)
+       ;; If the natural width is wider than the rendered width, we
+       ;; want to allow the column to expand.
        (dotimes (i length)
-         ;; If the natural width is wider than the rendered width, we
-         ;; want to allow the column to expand.
-         (when (> (aref natural-widths i) (aref widths i))
-           (setq expanded-columns (1+ expanded-columns))))
-       (dotimes (i length)
-         (when (> (aref natural-widths i) (aref widths i))
-           (aset widths i (min
-                           (1+ (aref natural-widths i))
-                           (+ (/ extra expanded-columns)
-                              (aref widths i))))))))
+         (when (> (aref natural-widths i) 0)
+           (aset widths i (+ (truncate (* (/ extra (* 1.0 total-actual))
+                                          (aref widths i)))
+                             (aref widths i)))))))
     widths))
 
 (defun shr-make-table (cont widths &optional fill)
@@ -1324,10 +1329,13 @@ ones, in case fg and bg are nil."
          (let ((shr-width width)
                (shr-indentation 0))
            (shr-descend (cons 'td cont)))
+         ;; Delete padding at the bottom of the TDs.
          (delete-region
           (point)
-          (+ (point)
-             (skip-chars-backward " \t\n")))
+          (progn
+            (skip-chars-backward " \t\n")
+            (end-of-line)
+            (point)))
          (push (list (cons width cont) (buffer-string)
                      (shr-overlays-in-region (point-min) (point-max)))
                shr-content-cache)))