[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kdecore
From:       Laurence Anderson <l.d.anderson () warwick ! ac ! uk>
Date:       2003-08-16 14:14:25
[Download RAW message or body]

CVS commit by landers: 

SubURL fix #1 of 3:
Before: KURL myURL("file:/home/laurence/archive.tgz#tar:/path/to/abc.doc", "myabc" ) \
                = file:/home/laurence/myabc
After: KURL myURL("file:/home/laurence/archive.tgz#tar:/path/to/abc.doc", "myabc" ) = \
file:/home/laurence/archive.tgz#tar:/path/to/myabc


  M +13 -0     kurl.cpp   1.252


--- kdelibs/kdecore/kurl.cpp  #1.251:1.252
@@ -466,4 +466,13 @@ KURL::KURL( const QUrl &u )
 KURL::KURL( const KURL& _u, const QString& _rel_url, int encoding_hint )
 {
+  if (_u.hasSubURL()) // Operate on the last suburl, not the first
+  {
+    KURL::List lst = split( _u );
+    KURL u(lst.last(), _rel_url, encoding_hint);
+    lst.remove( lst.last() );
+    lst.append( u );
+    *this = join( lst );
+    return;
+  }
   // WORKAROUND THE RFC 1606 LOOPHOLE THAT ALLOWS
   // http:/index.html AS A VALID SYNTAX FOR RELATIVE
@@ -1243,4 +1252,8 @@ bool KURL::hasSubURL() const
      return true;
   if (m_strRef_encoded.startsWith("tar:"))
+     return true;
+  if (m_strRef_encoded.startsWith("ar:"))
+     return true;
+  if (m_strRef_encoded.startsWith("zip:"))
      return true;
   if ( m_strProtocol == "error" ) // anything that starts with error: has suburls


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic