summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qdir_p.h
diff options
context:
space:
mode:
authorJoni Poikelin <joni.poikelin@qt.io>2018-12-11 11:42:34 +0200
committerJoni Poikelin <joni.poikelin@qt.io>2018-12-13 05:23:12 +0000
commiteaf4438b3511c8380b9b691b656a87a60e342e29 (patch)
tree7b853fef8105d7250a3cc349dc3615cbd798cec2 /src/corelib/io/qdir_p.h
parentbc997b856aa7b0b2137b568cd3fc6f190cd89f84 (diff)
Make url normalization closer to common browser behavior
Firefox, Chrome and various http libraries normalize /./ and /../ from urls, but retain multiple adjacent slashes as is. Qt removes duplicated slashes which makes it impossible to access some web resources that rely on those. Fixes: QTBUG-71973 Change-Id: Ie18ae6ad3264acb252fcd87a754726a8c546e5ec Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qdir_p.h')
-rw-r--r--src/corelib/io/qdir_p.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/io/qdir_p.h b/src/corelib/io/qdir_p.h
index 85d915223c..0f3ab7f899 100644
--- a/src/corelib/io/qdir_p.h
+++ b/src/corelib/io/qdir_p.h
@@ -59,6 +59,14 @@ QT_BEGIN_NAMESPACE
class QDirPrivate : public QSharedData
{
public:
+ enum PathNormalization {
+ DefaultNormalization = 0x00,
+ AllowUncPaths = 0x01,
+ RemotePath = 0x02
+ };
+ Q_DECLARE_FLAGS(PathNormalizations, PathNormalization)
+ Q_FLAGS(PathNormalizations)
+
explicit QDirPrivate(const QString &path, const QStringList &nameFilters_ = QStringList(),
QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase),
QDir::Filters filters_ = QDir::AllEntries);
@@ -97,6 +105,10 @@ public:
mutable QFileSystemMetaData metaData;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(QDirPrivate::PathNormalizations)
+
+Q_AUTOTEST_EXPORT QString qt_normalizePathSegments(const QString &name, QDirPrivate::PathNormalizations flags, bool *ok = nullptr);
+
QT_END_NAMESPACE
#endif