GNU bug report logs -
#26533
26.0.50; xml-parse-region's symbol-qname argument is ignored
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#26533: 26.0.50; xml-parse-region's symbol-qname argument is ignored
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 26533 <at> debbugs.gnu.org.
--
26533: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26533
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Christopher Wellons writes:
> A bug was introduced in aea67018 that causes the special "symbol-qnames"
> value for PARSE-NS to be ignored, as if it were nil. This information is
> discarded by the change to xml-parse-attlist, so functions further down
> the line see the argument as if it was set to nil.
>
> Here's an example of the bug:
>
> (with-temp-buffer
> (insert "<root a:b='c'></root>")
> (let ((xml-default-ns ()))
> (xml-parse-region nil nil nil nil 'symbol-qnames)))
>
> Prior to this commit (Emacs 25.1 and earlier) the result is:
>
> ((root ((b . "c"))))
>
> After this commit:
>
> ((root ((a:b . "c"))))
>
> This is the same as PARSE-NS being set to nil.
Thanks for the report.
You are right that the fix for bug #23440 was not correct. I now pushed
a hopefully better version to master.
Note however that your test above has two problems: First, it's invalid
XML since you're using an undeclared prefix (so the parser should rather
throw an error, but I'm not eager to make the xml parser more strict, as
there's a lot of invalid XML in the wild). Second, I don't understand
why you let-bind `xml-default-ns' to nil. This will break namespace
expansion, and it will actually do this for the whole Emacs session if
xml.el gets autoloaded during the above.
-David
[Message part 3 (message/rfc822, inline)]
A bug was introduced in aea67018 that causes the special "symbol-qnames"
value for PARSE-NS to be ignored, as if it were nil. This information is
discarded by the change to xml-parse-attlist, so functions further down
the line see the argument as if it was set to nil.
Here's an example of the bug:
(with-temp-buffer
(insert "<root a:b='c'></root>")
(let ((xml-default-ns ()))
(xml-parse-region nil nil nil nil 'symbol-qnames)))
Prior to this commit (Emacs 25.1 and earlier) the result is:
((root ((b . "c"))))
After this commit:
((root ((a:b . "c"))))
This is the same as PARSE-NS being set to nil.
This bug report was last modified 8 years and 35 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.