1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-20 13:00:51 -07:00

Fix rendering of degenerate tables some more in shr.el

* lisp/net/shr.el (shr--fix-tbody): New function (bug#31665).
(shr--fix-table): Use it to fix the
<table><tbody>foo</tbody></table> case.
This commit is contained in:
Lars Ingebrigtsen 2019-09-30 07:27:46 +02:00
parent 9f9dca57c6
commit 542b78edde

View file

@ -1993,8 +1993,16 @@ BASE is the URL of the HTML being rendered."
`(tbody nil ,@(cl-reduce 'append
(mapcar 'dom-non-text-children tbodies)))))))
(defun shr--fix-tbody (tbody)
(nconc (list 'tbody (dom-attributes tbody))
(cl-loop for child in (dom-children tbody)
collect (if (or (stringp child)
(not (eq (dom-tag child) 'tr)))
(list 'tr nil (list 'td nil child))
child))))
(defun shr--fix-table (dom caption header footer)
(let* ((body (dom-non-text-children (shr-table-body dom)))
(let* ((body (dom-non-text-children (shr--fix-tbody (shr-table-body dom))))
(nheader (if header (shr-max-columns header)))
(nbody (if body (shr-max-columns body) 0))
(nfooter (if footer (shr-max-columns footer))))