diff options
author | David Faure <faure+bluesystems@kde.org> | 2013-07-01 15:12:36 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-07-06 09:42:27 +0200 |
commit | 67ec78aac1cc0d490d8531cb2fa0c044c58da4ee (patch) | |
tree | 97b00db73400f950aa2e0807b58c1d897e62046a /src/corelib/io/qurlidna.cpp | |
parent | 691cb20d95357cdaa7d158a3c26f3ca66cdbe537 (diff) |
Fix QUrl::topLevelDomain(QUrl::FullyDecoded)
qt_ACE_do(".co.uk") was returning an empty string because of the
leading dot. Allow leading dots from topLevelDomain, but not from
other calls.
Change-Id: I757d9960708e205d30554cd2bbcf618c8624792b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qurlidna.cpp')
-rw-r--r-- | src/corelib/io/qurlidna.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/io/qurlidna.cpp b/src/corelib/io/qurlidna.cpp index 70db9e09eb..e959faccd2 100644 --- a/src/corelib/io/qurlidna.cpp +++ b/src/corelib/io/qurlidna.cpp @@ -2461,7 +2461,7 @@ static int nextDotDelimiter(const QString &domain, int from = 0) return ch - b; } -QString qt_ACE_do(const QString &domain, AceOperation op) +QString qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot) { if (domain.isEmpty()) return domain; @@ -2479,7 +2479,8 @@ QString qt_ACE_do(const QString &domain, AceOperation op) if (labelLength == 0) { if (idx == domain.length()) break; - return QString(); // two delimiters in a row -- empty label not allowed + if (dot == ForbidLeadingDot || idx > 0) + return QString(); // two delimiters in a row -- empty label not allowed } // RFC 3490 says, about the ToASCII operation: |