Re: [guile-lib] html->sxml does not decode entities in attributes

Tomas Volf <[email protected]> Wed, 05 Feb 2025 19:03:49 +0100
Newsgroups gmane.lisp.guile.devel
Message-ID <[email protected]>
Felix Lechner via "Developers list for Guile, the GNU extensibility
library" <[email protected]> writes:

> Hi Tomas,
>
> On Tue, Feb 04 2025, Tomas Volf wrote:
>
>> automatically decoding now would lead to double decoding.
>
> Will a second decoding step for HTML entities, which is the most likely
> workaround, mess up strings like "a&b" or "bbb\"ccc'ddd" ?

Sadly yes:

--8<---------------cut here---------------start------------->8---
scheme@(htmlprag)> (html->sxml "<a href=\"a&amp;amp;b\"></a>")
$15 = (*TOP* (a (@ (href "a&amp;amp;b"))))    ; Parsed value
scheme@(htmlprag)> (html->sxml "a&amp;amp;b")
$16 = (*TOP* "a&amp;b")                       ; First decode
scheme@(htmlprag)> (html->sxml "a&amp;b")     
$17 = (*TOP* "a&b")                           ; Second decode
--8<---------------cut here---------------end--------------->8---

So any fix needs to be opt-in.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
signature.asc (application/pgp-signature, 853 B)
-----BEGIN PGP SIGNATURE-----

iQJCBAEBCgAsFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmejqAUOHH5Ad29sZnNk
ZW4uY3oACgkQL7/ufbZ/wakaKBAAlMHfiZCMfocvlYJ+1luD4cRieWO8gqyhiHNK
t61ju1+GDRjXNT/ncYXFWv1Qbpnu+/Ei/l9jdlzwOnIdriRRCP3uSOhMA5X4M45r
c/iP2oVjrTGdWGZaLOMpTvg6pJvwq02RWGGZU6NTJGcbLhE+QHtLystJqtcsOcPs
V4fuuQmIzw2cQS4r5ZiNtvJBwvN0guv7OdjUPXqNBnCTsTHlu0cSuUkG7pz4Z7Pl
cTYRU/LkACORZNl/igTNmDAaSpmqiIUZGJnWM++pY//eegqUmDTADuxy8pgrKcTj
Q94fS0sDTyqMAnPI4Qmiw2sEicC1VJqt32q7koPbhE1qXz4sY8EbcbBRVmrGwKEX
FH72sfqCK69jMUdztqRxNlvxRbU9xwsLchehc/G2Vk3vKl7dW5+glVVuFK5nAFdS
vw0PAGPuqn1VSAII036Dvnwv0z3IRzoQ7IqnRpm/HJ0grYNiM8+4MjpOO+HSfbc7
CGDtgyE/kBmmHOkqvNVniED1uXxeepOQkz5P40TZNZo54v2L1PhsPZpiv+WqGIAy
pHbZdCeaVvD/47UqVRJhbdQbcY0p8TMOVMGW3/yB6b8kKGx0AAT+uXyooc89BQtg
jt4pwmME0yqV5PmrlId4Ugi8RhQdNK9S+BrMXRuGI/3UKrZfF6SPu+EQ1XDIOFzF
ElZWl0g=
=OWqO
-----END PGP SIGNATURE-----