GNU bug report logs -
#79509
30.1; shr throws error on <sub> inside <a>
Previous Next
To reply to this bug, email your comments to 79509 AT debbugs.gnu.org.
There is no need to reopen the bug first.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#79509; Package
emacs.
(Thu, 25 Sep 2025 12:30:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Zaz Brown <zazbrown <at> zazbrown.com>:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org.
(Thu, 25 Sep 2025 12:30:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
shr throws an error if there's a <sub> tag inside an <a> tag. E.g.:
<html>
<body>
<p>
<a href="http://example.com">
<sub>
test
</sub>
</a>
</p>
</body>
</html>
Debugger entered--Lisp error: (beginning-of-buffer)
shr-tag-sub((sub nil "test"))
shr-descend((sub nil "test"))
shr-tag-a((a ((href . "http://example.com")) (sub nil "test")))
shr-descend((a ((href . "http://example.com")) (sub nil "test")))
shr-tag-p((p nil (a ((href . "http://example.com")) (sub nil "test"))))
shr-descend((p nil (a ((href . "http://example.com")) (sub nil "test"))))
shr-tag-body((body nil (p nil (a ((href . "http://example.com")) (sub nil "test")))))
shr-descend((body nil (p nil (a ((href . "http://example.com")) (sub nil "test")))))
shr-tag-html((html nil (body nil (p nil (a ((href . "http://example.com")) (sub nil "test"))))))
shr-descend((html nil (body nil (p nil (a ((href . "http://example.com")) (sub nil "test"))))))
shr-insert-document((html nil (body nil (p nil (a ((href . "http://example.com")) (sub nil "test"))))))
(let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string))
(progn (insert html) (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string)))
(unwind-protect (progn (insert html) (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert html) (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
(let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert html) (let ((dom (libxml-parse-html-region ... ...))) (erase-buffer) (shr-insert-document dom) (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
(let ((html "<p><a href='http://example.com'><sub>test</sub></a></p>")) (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert html) (let ((dom ...)) (erase-buffer) (shr-insert-document dom) (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))
eval((let ((html "<p><a href='http://example.com'><sub>test</sub></a></p>")) (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert html) (let (...) (erase-buffer) (shr-insert-document dom) (buffer-string))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))) t)
#f(compiled-function () #<bytecode -0xe16bf2311add536>)()
#f(compiled-function () #<bytecode -0x5db3e1955cb81d1>)()
eval-expression((let ((html "<p><a href='http://example.com'><sub>test</sub></a></p>")) (with-temp-buffer (insert html) (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string)))) nil nil 127)
funcall-interactively(eval-expression (let ((html "<p><a href='http://example.com'><sub>test</sub></a></p>")) (with-temp-buffer (insert html) (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (erase-buffer) (shr-insert-document dom) (buffer-string)))) nil nil 127)
Downstream mu4e bug: https://github.com/djcb/mu/issues/2874
--
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#79509; Package
emacs.
(Thu, 25 Sep 2025 15:00:03 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
On Thu, 25 Sep 2025 12:28:17 +0000 Zaz Brown via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> wrote:
> shr throws an error if there's a <sub> tag inside an <a> tag. E.g.:
>
> <html>
> <body>
> <p>
> <a href="http://example.com">
> <sub>
> test
> </sub>
> </a>
> </p>
> </body>
> </html>
>
> Debugger entered--Lisp error: (beginning-of-buffer)
> shr-tag-sub((sub nil "test"))
[...]
This was recently reported and fixed on master:
commit 04342d365406468b9d82ad81277f20d5bfd0eb4d
Author: Eli Zaretskii <eliz <at> gnu.org>
Commit: Eli Zaretskii <eliz <at> gnu.org>
CommitDate: Sun Sep 14 18:24:31 2025 +0300
* lisp/net/shr.el (shr-tag-sub): Handle BOB (bug#79448).
Steve Berman
Information forwarded
to
bug-gnu-emacs <at> gnu.org:
bug#79509; Package
emacs.
(Thu, 25 Sep 2025 15:00:04 GMT)
Full text and
rfc822 format available.
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility.
(Sat, 11 Oct 2025 08:20:03 GMT)
Full text and
rfc822 format available.
Notification sent
to
Zaz Brown <zazbrown <at> zazbrown.com>:
bug acknowledged by developer.
(Sat, 11 Oct 2025 08:20:04 GMT)
Full text and
rfc822 format available.
Message #16 received at 79509-done <at> debbugs.gnu.org (full text, mbox):
> Cc: zazbrown <at> zazbrown.com
> Date: Thu, 25 Sep 2025 16:59:07 +0200
> From: Stephen Berman via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>
> On Thu, 25 Sep 2025 12:28:17 +0000 Zaz Brown via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> wrote:
>
> > shr throws an error if there's a <sub> tag inside an <a> tag. E.g.:
> >
> > <html>
> > <body>
> > <p>
> > <a href="http://example.com">
> > <sub>
> > test
> > </sub>
> > </a>
> > </p>
> > </body>
> > </html>
> >
> > Debugger entered--Lisp error: (beginning-of-buffer)
> > shr-tag-sub((sub nil "test"))
> [...]
>
> This was recently reported and fixed on master:
>
> commit 04342d365406468b9d82ad81277f20d5bfd0eb4d
> Author: Eli Zaretskii <eliz <at> gnu.org>
> Commit: Eli Zaretskii <eliz <at> gnu.org>
> CommitDate: Sun Sep 14 18:24:31 2025 +0300
>
> * lisp/net/shr.el (shr-tag-sub): Handle BOB (bug#79448).
>
> Steve Berman
Thanks, I'm therefore closing this bug.
This bug report was last modified 26 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.