summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-05-08 21:52:13 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-05-08 21:52:13 (GMT)
commit3f45860bfddc886a2f0985faf1a42b921d275caf (patch)
treec87df8c81d70010f26e8a1534866a391cd7fdf43 /src/corelib
parent23f3c92081a8afd6ff4be352fee407817950e72f (diff)
parent75f0c1f0f0496ae22ed89b996dfb0050defd0f3e (diff)
downloadQt-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.cpp9
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);