On Thu, Aug 04, 2005 at 12:42:42PM +0200, Paweł Pałucha wrote:
> 
> >   Maybe the "I'm offended" attitude about you hitting a bug is one of the 
> > thing your original mail was wrong and need fixing.
> >   Giving the version number of libxml2 used, did it work in the past but 
> > failed
> > in a recent version, investigating the code, basically trying to present 
> > things
> > in a way that make it looks more fun than just an angry user would help.
> 
> I'm not ofended or angry, sorry if my mail looked liked that.

 okidoc, maybe I'm just a bit stressed or something :-)

> I'm using the
> latest version, 2.6.20, of course, on Linux. The same is with 2.6.18 (I'm
> using it on another machine).

  yeah, and I could confirm this with CVS head.
I checked with a very old version too:
  veillard:~ -> xmllint --version
 xmllint: using libxml version 20510
     compiled with: FTP HTTP HTML C14N Catalog DocBook XPath XPointer XInclude 
Iconv Unicode Regexps Automata Schemas
  veillard:~ -> xmllint 'http://localhost/escape space.xml'
  warning: failed to load external entity 
"http%3A//localhost/escape%20space.xml"
  veillard:~ -> xmllint 'http://localhost/escape%20space.xml'
  <?xml version="1.0"?>
  <doc>it works</doc>
  veillard:~ ->

i.e. if the unescaped string is passed it break, if the string was escaped it
used to work, it doesn't work now, I also see
  "GET /escape space.xml HTTP/1.0" 404
in my logs, this is plain wrong.

> The case xmllint 'http://localhost/a%20b' is easier - it looks like when
> parsing uri string to xmlUri struct all fields are unescaped (using
> xmlURIUnescapeString) and then passed without modification to nanohttp
> context, and then used without modification to create HTTP query. What is the
> reason to unescape uri fields? And does an argument for xmlParseFile (for
> example) should be already escaped?

  I would expect the argument to be passed unescaped. Escaping should
normally be a no-op on an already escaped string, the escaping of the
: after the protocol is completely bogus, I dunno how it happened but it's
completely wrong. I think this need to be reexamined for all case, 
and escaping should understand URI semantic, 
  I think the safest is to to not change nanohttp, but at the xmlIO level
try to parse the URI if the file doesn't exist, then do a correct escaping
if this is an absolute URI and pass that to the protocol handlers.

> In meantime I'll tty to find out why 'http://alpha/a b' is escaped to
> 'http%3A//alpha/a%20b'.

  probably a fallback when trying to load the unescaped version.
Testing will also require to check URI references in XSLT, I think there
is a tests in libxslt about it. If it breaks that mean the solution won't
work for most users.

Daniel

-- 
Daniel Veillard      | Red Hat Desktop team http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to