Commit a7dcc87b authored by Gnus developers's avatar Gnus developers Committed by Katsumi Yamaoka
Browse files

Merge changes made in Gnus trunk.

nnimap.el (nnimap-request-rename-group): Add this method.
shr.el: Keep track of the natural width of TD elements, so we know which ones to expand.
shr.el: Expand TD elements to fill available space.
parent b0e0b216
2010-10-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
* shr.el (shr-table-widths): Expand TD elements to fill available
space.
2010-10-07 Julien Danjou <julien@danjou.info>
* nnimap.el (nnimap-request-rename-group): Add this method.
2010-10-07 Katsumi Yamaoka <yamaoka@jpl.org>
 
* gnus-html.el (gnus-html-schedule-image-fetching): Remove function
......
......@@ -652,6 +652,11 @@ textual parts.")
(with-current-buffer (nnimap-buffer)
(car (nnimap-command "DELETE %S" (utf7-encode group t))))))
(deffoo nnimap-request-rename-group (group new-name &optional server)
(when (nnimap-possibly-change-group nil server)
(with-current-buffer (nnimap-buffer)
(car (nnimap-command "RENAME %S %S" (utf7-encode group t) (utf7-encode new-name t))))))
(deffoo nnimap-request-expunge-group (group &optional server)
(when (nnimap-possibly-change-group group server)
(with-current-buffer (nnimap-buffer)
......
......@@ -184,7 +184,8 @@ redirects somewhere else."
((and (or (not first)
(eq shr-state 'space))
(> (+ column (length elem) 1) shr-width))
(insert "\n"))
(insert "\n")
(put-text-property (1- (point)) (point) 'shr-break t))
((not first)
(insert " "))))
(setq first nil)
......@@ -459,7 +460,7 @@ Return a string with image data."
;; be smaller (if there's little text) or bigger (if there's
;; unbreakable text).
(sketch (shr-make-table cont suggested-widths))
(sketch-widths (shr-table-widths sketch (length suggested-widths))))
(sketch-widths (shr-table-widths sketch suggested-widths)))
;; Then render the table again with these new "hard" widths.
(shr-insert-table (shr-make-table cont sketch-widths t) sketch-widths))
;; Finally, insert all the images after the table. The Emacs buffer
......@@ -490,7 +491,7 @@ Return a string with image data."
(insert "|\n"))
(dolist (column row)
(goto-char start)
(let ((lines (split-string (nth 2 column) "\n"))
(let ((lines (nth 2 column))
(overlay-lines (nth 3 column))
overlay overlay-line)
(dolist (line lines)
......@@ -520,14 +521,33 @@ Return a string with image data."
(insert (make-string (aref widths i) ?-) ?+))
(insert "\n"))
(defun shr-table-widths (table length)
(let ((widths (make-vector length 0)))
(defun shr-table-widths (table suggested-widths)
(let* ((length (length suggested-widths))
(widths (make-vector length 0))
(natural-widths (make-vector length 0)))
(dolist (row table)
(let ((i 0))
(dolist (column row)
(aset widths i (max (aref widths i)
(car column)))
(incf i))))
(aset natural-widths i (max (aref natural-widths i)
(cadr column)))
(setq i (1+ i)))))
(let ((extra (- (reduce '+ suggested-widths)
(reduce '+ widths)))
(expanded-columns 0))
(when (> extra 0)
(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))))))))
widths))
(defun shr-make-table (cont widths &optional fill)
......@@ -575,11 +595,26 @@ Return a string with image data."
(when (> (- width (current-column)) 0)
(insert (make-string (- width (current-column)) ? )))
(forward-line 1))))
(list max
(count-lines (point-min) (point-max))
(buffer-string)
(and fill
(shr-collect-overlays))))))
(if fill
(list max
(count-lines (point-min) (point-max))
(split-string (buffer-string) "\n")
(shr-collect-overlays))
(list max
(shr-natural-width))))))
(defun shr-natural-width ()
(goto-char (point-min))
(let ((current 0)
(max 0))
(while (not (eobp))
(end-of-line)
(setq current (+ current (current-column)))
(unless (get-text-property (point) 'shr-break)
(setq max (max max current)
current 0))
(forward-line 1))
max))
(defun shr-collect-overlays ()
(save-excursion
......@@ -608,12 +643,12 @@ Return a string with image data."
(let ((total-percentage 0)
(widths (make-vector (length columns) 0)))
(dotimes (i (length columns))
(incf total-percentage (aref columns i)))
(setq total-percentage (+ total-percentage (aref columns i))))
(setq total-percentage (/ 1.0 total-percentage))
(dotimes (i (length columns))
(aset widths i (max (truncate (* (aref columns i)
total-percentage
shr-width))
(- shr-width (1+ (length columns)))))
10)))
widths))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment