]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/net/shr.el (shr-dom-max-natural-width): Rewrite muddled code.
authorMattias Engdegård <mattiase@acm.org>
Tue, 30 May 2023 20:58:26 +0000 (22:58 +0200)
committerMattias Engdegård <mattiase@acm.org>
Wed, 31 May 2023 15:09:12 +0000 (17:09 +0200)
lisp/net/shr.el

index 869878071537ccbae31bb44553820217703e8d50..9b19a1b39808d88649a9b4212921d83ed5a56c5e 100644 (file)
@@ -2530,7 +2530,7 @@ flags that control whether to collect or render objects."
          (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
@@ -2559,22 +2559,18 @@ flags that control whether to collect or render objects."
            (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))