diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-08 21:52:13 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-08 21:52:13 (GMT) |
commit | 3f45860bfddc886a2f0985faf1a42b921d275caf (patch) | |
tree | c87df8c81d70010f26e8a1534866a391cd7fdf43 /src/corelib | |
parent | 23f3c92081a8afd6ff4be352fee407817950e72f (diff) | |
parent | 75f0c1f0f0496ae22ed89b996dfb0050defd0f3e (diff) | |
download | Qt-3f45860bfddc886a2f0985faf1a42b921d275caf.zip Qt-3f45860bfddc886a2f0985faf1a42b921d275caf.tar.gz Qt-3f45860bfddc886a2f0985faf1a42b921d275caf.tar.bz2 |
Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
QUrl: fix parsing of IRIs with more than one IDN label
QUrl: update the whitelist of IDN domains
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/io/qurl.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index ffe8d06..bdb0cfd 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -3129,10 +3129,11 @@ static void toPunycodeHelper(const QChar *s, int ucLength, QString *output) 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 @@ static const char * const idn_whitelist[] = { "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 @@ static QString qt_ACE_do(const QString &domain, AceOperation op) 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); |