Skip to content
  • Daniel Veillard's avatar
    Fix a problem properly saving URIs · beb72810
    Daniel Veillard authored
    As written by Martin Kletzander <mkletzan@redhat.com>:
    Since commit 8eb55d78, when you parse
    and save an URI that has no server (or similar) part, two slashes
    after the 'schema:' get lost.  It means 'uri:///noserver' is turned
    into 'uri:/noserver'.
    
    basically
       foo:///only/path
    
    means a host of "" while
    
       foo:/only/path
    
    means no host at all
    
      So the best fix IMHO is to fix the URI parser to record the first
    case and an empty host string and the second case as a NULL host string
    
     I would not revert the initial patch, we should not 'invent' those
    slash, but we should instead when parsing keep the information that
    it's a host based path and that foo:/// means the presence of a host
    but an empty one.
    
    Once applied the resulting patch below, all cases seems to be saved
    properly:
    
    thinkpad:~/XML -> ./testURI uri:/noserver
    uri:/noserver
    thinkpad:~/XML -> ./testURI uri:///noserver
    uri:///noserver
    thinkpad:~/XML -> ./testURI uri://server/foo
    ...
    beb72810