src/corelib/io/qurl.cpp
changeset 25 e24348a560a6
parent 19 fcece45ef507
child 29 b72c6db6890b
--- a/src/corelib/io/qurl.cpp	Thu May 27 13:40:48 2010 +0300
+++ b/src/corelib/io/qurl.cpp	Fri Jun 11 14:24:45 2010 +0300
@@ -3129,10 +3129,11 @@
 
 
 static const char * const idn_whitelist[] = {
-    "ac", "at",
-    "br",
+    "ac", "ar", "at",
+    "biz", "br",
     "cat", "ch", "cl", "cn",
     "de", "dk",
+    "es",
     "fi",
     "gr",
     "hu",
@@ -3146,6 +3147,9 @@
     "se", "sh",
     "th", "tm", "tw",
     "vn",
+    "xn--mgbaam7a8h",           // UAE
+    "xn--mgberp4a5d4ar",        // Saudi Arabia
+    "xn--wgbh1c"                // Egypt
 };
 
 static QStringList *user_idn_whitelist = 0;
@@ -3304,6 +3308,7 @@
             qt_nameprep(&result, prevLen);
             labelLength = result.length() - prevLen;
             register int toReserve = labelLength + 4 + 6; // "xn--" plus some extra bytes
+            aceForm.resize(0);
             if (toReserve > aceForm.capacity())
                 aceForm.reserve(toReserve);
             toPunycodeHelper(result.constData() + prevLen, result.size() - prevLen, &aceForm);