[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

darin darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:28:56 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit c9e3be4013e114a7b9a2ccdc0e47d0b330677cc8
Author: darin <darin at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Mar 9 00:14:53 2004 +0000

            Reviewed by Maciej.
    
            - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
    
            * kwq/KWQKURL.mm: Remove Colon constant so we can fit in 8 bits again.
            (KURL::KURL): Rewrite so we don't need isSchemeCharOrColon.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@6186 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 2ffe48b..240f95f 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,12 @@
+2004-03-08  Darin Adler  <darin at apple.com>
+
+        Reviewed by Maciej.
+
+        - fixed <rdar://problem/3554876>: REGRESSION (100-125): cannot upload file if path contains non-ASCII characters
+
+        * kwq/KWQKURL.mm: Remove Colon constant so we can fit in 8 bits again.
+        (KURL::KURL): Rewrite so we don't need isSchemeCharOrColon.
+
 === Safari-131 ===
 
 2004-03-08  Ken Kocienda  <kocienda at apple.com>
diff --git a/WebCore/kwq/KWQKURL.mm b/WebCore/kwq/KWQKURL.mm
index 85a2387..b1c1131 100644
--- a/WebCore/kwq/KWQKURL.mm
+++ b/WebCore/kwq/KWQKURL.mm
@@ -46,31 +46,28 @@ typedef enum {
     // ( alpha | digit | "+" | "-" | "." )
     SchemeChar = 1 << 1,
 
-    // ":"
-    Colon = 1 << 2,
-    
     // mark        = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
     // unreserved  = alphanum | mark
     // ( unreserved | escaped | ";" | ":" | "&" | "=" | "+" | "$" | "," )
-    UserInfoChar = 1 << 3,
+    UserInfoChar = 1 << 2,
 
     // alnum | "." | "-" | "%"
     // The above is what the specification says, but we are lenient to
     // match existing practice and also allow:
     // "_"
-    HostnameChar = 1 << 4,
+    HostnameChar = 1 << 3,
 
     // hexdigit | ":" | "%"
-    IPv6Char = 1 << 5,
+    IPv6Char = 1 << 4,
 
     // "#" | "?" | "/" | nul
-    PathSegmentEndChar = 1 << 6,
+    PathSegmentEndChar = 1 << 5,
 
     // digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f"
-    HexDigitChar = 1 << 7,
+    HexDigitChar = 1 << 6,
 
     // not allowed in path
-    BadChar = 1 << 8
+    BadChar = 1 << 7
 
 } URLCharacterClasses;
 
@@ -106,7 +103,7 @@ static const unsigned char characterClassTable[256] = {
     /* 55  7 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
     /* 56  8 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char, 
     /* 57  9 */ SchemeChar | UserInfoChar | HostnameChar | HexDigitChar | IPv6Char,
-    /* 58  : */ Colon | UserInfoChar | IPv6Char,    /* 59  ; */ UserInfoChar,
+    /* 58  : */ UserInfoChar | IPv6Char,    /* 59  ; */ UserInfoChar,
     /* 60  < */ BadChar,    /* 61  = */ UserInfoChar,
     /* 62  > */ BadChar,    /* 63  ? */ PathSegmentEndChar | BadChar,
     /* 64  @ */ 0,
@@ -207,7 +204,6 @@ static int copyPathRemovingDots(char *dst, const char *src, int srcStart, int sr
 
 static inline bool isSchemeFirstChar(unsigned char c) { return characterClassTable[c] & SchemeFirstChar; }
 static inline bool isSchemeChar(unsigned char c) { return characterClassTable[c] & SchemeChar; }
-static inline bool isSchemeCharOrColon(unsigned char c) { return characterClassTable[c] & (SchemeChar | Colon); }
 static inline bool isUserInfoChar(unsigned char c) { return characterClassTable[c] & UserInfoChar; }
 static inline bool isHostnameChar(unsigned char c) { return characterClassTable[c] & HostnameChar; }
 static inline bool isIPv6Char(unsigned char c) { return characterClassTable[c] & IPv6Char; }
@@ -339,13 +335,13 @@ KURL::KURL(const KURL &base, const QString &relative, const QTextCodec *codec)
             if (relative.length() > 0 && isSchemeFirstChar(relative.at(0).latin1())) {
                 for (uint i = 1; i < relative.length(); i++) {
                     char p = relative.at(i).latin1();
-                    if (!isSchemeCharOrColon(p)) {
-                        break;
-                    }
                     if (p == ':') {
                         protocol = relative.left(i);
                         break;
                     }
+                    if (!isSchemeChar(p)) {
+                        break;
+                    }
                 }
             }
             if (!protocol) {
@@ -371,11 +367,13 @@ KURL::KURL(const KURL &base, const QString &relative, const QTextCodec *codec)
     // non-scheme element.
     const char *p = str;
     if (isSchemeFirstChar(*p)) {
-        for (++p; isSchemeCharOrColon(*p); ++p) {
-            if (*p == ':') {
-                absolute = true;
-                break;
-            }
+        ++p;
+        while (isSchemeChar(*p)) {
+            ++p;
+        }
+        if (*p == ':') {
+            absolute = true;
+            break;
         }
     }
         

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list