diff -r 89e065397ea6 -r e24348a560a6 src/corelib/io/qurl.cpp --- 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);