Subject: bug#63740: broken and questionable attribute normalisation in xml.el

From: Mattias Engdegård <[email-masked]>
Date: Fri, 26 May 2023 17:14:53 +0200

In `xml-parse-attlist`, we see:

      ;; Multiple whitespace characters should be replaced with a single one
      ;; in the attributes
      (let ((string (match-string-no-properties 1)))
	(replace-regexp-in-string "\\s-\\{2,\\}" " " string)
        ...

The call to `replace-regexp-in-string` is of course useless and there is now a compiler warning telling us, which is how this came to light.

However, should we really collapse whitespace here? If I'm reading the spec correctly, it's not done for CDATA attributes and we have no reason to believe any other type, do we?

I'm no XML expert but it looks like the code is correct and we can just remove the call to `replace-regexp-in-string` (and the misleading comment). Or?