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

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 03 Feb 2025 23:30:55 +0900

Hi Tomas,

Thank you for reporting this issue.

Tomas Volf <[email-masked]> writes:

> <[email-masked]> writes:
>
>> On Sat, Feb 01, 2025 at 09:10:04PM +0100, Tomas Volf wrote:
>>> 
>>> Hello,
>>> 
>>> I think I found a bug in the htmlprag module in guile-lib.  When parsing
>>> attributes, the values are not properly decoded:
>>> 
>>> --8<---------------cut here---------------start------------->8---
>>> scheme@(guile-user)> ,use (htmlprag)
>>> scheme@(guile-user)> (html->sxml "<hr aaa=\"bbb&quot;ccc'ddd\" />")
>>> $1 = (*TOP* (hr (@ (aaa "bbb&quot;ccc'ddd"))))
>>> scheme@(guile-user)> (html->sxml "<a href=\"a&amp;b\" />")
>>> $2 = (*TOP* (a (@ (href "a&amp;b"))))
>>> --8<---------------cut here---------------end--------------->8---
>>> 
>>> I think that $1 should be "bbb\"ccc'ddd" and $2 should be "a&b".
>>
>> Ouch. Have you contacted Oleg Kiselyov about it? He's usually pretty
>> responsive and very friendly.
>
> I did not.  I did not find a "how to report bugs" section on guile-lib's
> website, and on the (htmlprag) documentation section Oleg Kiselyov is
> mentioned only in one sentence as a "Thanks".
>
> I think I have managed to find his email in one Haskell paper of his, so
> I will CC him on the bug report, as suggested.

And also for containing Oleg.  I hope they can provide us with their
opinion on whether this is an actual bug or was designed that way.  To
me, it's not clear whether html->sxml should alterate the raw value of
attributes in any way.  Users may haev different use cases requiring to
apply different transformation themselves?  If we hard-code a decoding
scheme ourselves, then force that choice onto users, no?

-- 
Thanks,
Maxim