(setq natural-width
(or (dom-attr dom 'shr-td-cache-natural)
(let ((natural (max (shr-pixel-buffer-width)
- (shr-dom-max-natural-width dom 0))))
+ (shr-dom-max-natural-width dom))))
(dom-set-attribute dom 'shr-td-cache-natural natural)
natural))))
(if (and natural-width
(cdr (assq 'color shr-stylesheet))
(cdr (assq 'background-color shr-stylesheet))))))
-(defun shr-dom-max-natural-width (dom max)
- (if (eq (dom-tag dom) 'table)
- (max max (or
- (cl-loop
- for line in (dom-attr dom 'shr-suggested-widths)
- maximize (+
- shr-table-separator-length
- (cl-loop for elem in line
- summing
- (+ (cdr elem)
- (* 2 shr-table-separator-length)))))
- 0))
- (dolist (child (dom-children dom))
- (unless (stringp child)
- (setq max (max (shr-dom-max-natural-width child max)))))
- max))
+(defun shr-dom-max-natural-width (dom)
+ (or (if (eq (dom-tag dom) 'table)
+ (cl-loop for line in (dom-attr dom 'shr-suggested-widths)
+ maximize (+ shr-table-separator-length
+ (cl-loop for elem in line
+ summing
+ (+ (cdr elem)
+ (* 2 shr-table-separator-length)))))
+ (cl-loop for child in (dom-children dom)
+ unless (stringp child)
+ maximize (shr-dom-max-natural-width child)))
+ 0))
(defun shr-buffer-width ()
(goto-char (point-min))