Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qurl_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// Copyright (C) 2016 Intel Corporation.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4// Qt-Security score:significant reason:default
5
6#ifndef QURL_P_H
7#define QURL_P_H
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists for the convenience of
14// qurl*.cpp This header file may change from version to version without
15// notice, or even be removed.
16//
17// We mean it.
18//
19
20#include <QtCore/private/qglobal_p.h>
21#include "qurl.h"
22
24
25// With FullyDecoded, makes qt_urlRecode() fail (return < 0) instead of
26// producing a path that is unsafe to use as a local file.
28 QUrl::FullyDecoded | QUrl::ComponentFormattingOption(0x8000000);
29
30// in qurlrecode.cpp
31extern Q_AUTOTEST_EXPORT qsizetype qt_urlRecode(QString &appendTo, QStringView url,
32 QUrl::ComponentFormattingOptions encoding,
33 const ushort *tableModifications = nullptr);
34qsizetype qt_encodeFromUser(QString &appendTo, const QString &input,
35 const ushort *tableModifications);
36
37// in qurlidna.cpp
40QString Q_CORE_EXPORT qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot,
41 QUrl::AceProcessingOptions options = {});
42extern Q_AUTOTEST_EXPORT void qt_punycodeEncoder(QStringView in, QString *output);
43extern Q_AUTOTEST_EXPORT QString qt_punycodeDecoder(const QString &pc);
44
45QT_END_NAMESPACE
46
47#endif // QURL_P_H
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:177
bool isEmpty() const
Definition qurl.cpp:535
uint presentSections() const noexcept
Definition qurl.cpp:567
QAtomicInt ref
Definition qurl.cpp:616
void appendPassword(QString &appendTo, QUrl::FormattingOptions options) const
Definition qurl.cpp:982
bool hasScheme() const
Definition qurl.cpp:584
void appendHost(QString &appendTo, QUrl::FormattingOptions options) const
Definition qurl.cpp:1241
bool validateComponent(Section section, const QString &input, qsizetype begin, qsizetype end)
QString host
Definition qurl.cpp:622
uchar sectionIsPresent
Definition qurl.cpp:633
bool appendPath(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
Definition qurl.cpp:989
std::unique_ptr< Error > cloneError() const
Definition qurl.cpp:665
void setAuthority(const QString &auth, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
Definition qurl.cpp:1093
bool hasPort() const
Definition qurl.cpp:590
QString toLocalFile(QUrl::FormattingOptions options) const
Definition qurl.cpp:1560
ErrorCode validityError(QString *source=nullptr, qsizetype *position=nullptr) const
Definition qurl.cpp:1635
bool hasQuery() const
Definition qurl.cpp:592
void setFragment(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1199
bool hasUserInfo() const
Definition qurl.cpp:586
QUrlPrivate(const QUrlPrivate &copy)
Definition qurl.cpp:647
QString mergePaths(const QString &relativePath) const
Definition qurl.cpp:1596
bool isLocalFile() const
Definition qurl.cpp:595
std::unique_ptr< Error > error
Definition qurl.cpp:627
@ AuthorityPresentAndPathIsRelative
Definition qurl.cpp:517
@ PortEmptyError
Definition qurl.cpp:507
@ RelativeUrlPathContainsColonBeforeSlash
Definition qurl.cpp:519
@ AuthorityAbsentAndPathIsDoubleSlash
Definition qurl.cpp:518
@ InvalidIPv6AddressError
Definition qurl.cpp:501
@ InvalidIPv4AddressError
Definition qurl.cpp:500
@ InvalidCharacterInIPv6Error
Definition qurl.cpp:502
@ InvalidPasswordError
Definition qurl.cpp:497
@ InvalidRegNameError
Definition qurl.cpp:499
@ InvalidFragmentError
Definition qurl.cpp:513
@ HostMissingEndBracket
Definition qurl.cpp:504
@ InvalidPortError
Definition qurl.cpp:506
@ InvalidQueryError
Definition qurl.cpp:511
@ InvalidPathError
Definition qurl.cpp:509
@ InvalidSchemeError
Definition qurl.cpp:493
@ InvalidUserNameError
Definition qurl.cpp:495
@ InvalidIPvFutureError
Definition qurl.cpp:503
QString path
Definition qurl.cpp:623
bool hasPath() const
Definition qurl.cpp:591
QUrlPrivate()
Definition qurl.cpp:640
void clearError()
Definition qurl.cpp:670
bool setScheme(const QString &value, qsizetype len, bool doSetError)
Definition qurl.cpp:1028
void appendAuthority(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
Definition qurl.cpp:914
uchar flags
Definition qurl.cpp:634
@ IsLocalFile
Definition qurl.cpp:487
QString scheme
Definition qurl.cpp:619
void appendUserName(QString &appendTo, QUrl::FormattingOptions options) const
Definition qurl.cpp:973
void clear()
Definition qurl.cpp:607
void appendUserInfo(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
Definition qurl.cpp:928
bool hasFragment() const
Definition qurl.cpp:593
bool validateComponent(Section section, const QString &input)
Definition qurl.cpp:543
bool normalizePathSegments(QString *path) const
Definition qurl.cpp:598
void setError(ErrorCode errorCode, const QString &source, qsizetype supplement=-1)
Definition qurl.cpp:675
bool hasUserName() const
Definition qurl.cpp:587
QString fragment
Definition qurl.cpp:625
void setUserInfo(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1165
QString query
Definition qurl.cpp:624
void setPath(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1193
void setQuery(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1205
QString userName
Definition qurl.cpp:620
bool hasAuthority() const
Definition qurl.cpp:585
bool hasHost() const
Definition qurl.cpp:589
void appendQuery(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
Definition qurl.cpp:1020
void setPassword(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1187
void setUserName(String &&value, QUrl::ParsingMode mode)
Definition qurl.cpp:1181
QString password
Definition qurl.cpp:621
void appendFragment(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
Definition qurl.cpp:1013
bool setHost(const QString &value, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
Definition qurl.cpp:1358
bool hasPassword() const
Definition qurl.cpp:588
void parse(const QString &url, QUrl::ParsingMode parsingMode)
Definition qurl.cpp:1453
QDataStream & operator>>(QDataStream &in, QUrl &url)
Reads a url into url from the stream in and returns a reference to the stream.
Definition qurl.cpp:3548
Combined button and popup list for selecting options.
#define QStringLiteral(str)
Definition qstring.h:1865
static const ushort userNameInAuthority[]
Definition qurl.cpp:827
size_t qHash(const QUrl &url, size_t seed) noexcept
\qhashold{QHash}
Definition qurl.cpp:3733
QDebug operator<<(QDebug d, const QUrl &url)
Definition qurl.cpp:3558
static QString fileScheme()
Definition qurl.cpp:453
static const QChar * parseIpFuture(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
Definition qurl.cpp:1266
static const ushort *const passwordInAuthority
Definition qurl.cpp:846
static void appendComponentIfPresent(QString &msg, bool present, const char *componentName, const QString &component)
Definition qurl.cpp:3633
static const ushort userNameInUrl[]
Definition qurl.cpp:848
static QString webDavSslTag()
Definition qurl.cpp:463
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
Definition qurl.cpp:3566
static const ushort *const fragmentInIsolation
Definition qurl.cpp:804
static bool appendToUser(QString &appendTo, QStringView value, QUrl::FormattingOptions options, const ushort *actions)
Definition qurl.cpp:892
static bool isHex(char c)
Definition qurl.cpp:442
static void fixupNonAuthorityPath(QString *path)
Definition qurl.cpp:1621
static const QChar * parseIp6(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
Definition qurl.cpp:1311
static const ushort *const pathInUrl
Definition qurl.cpp:861
static const ushort *const pathInIsolation
Definition qurl.cpp:802
static const ushort *const passwordInUserInfo
Definition qurl.cpp:825
static void recodeFromUser(QString &output, QStringView input, const ushort *actions, QUrl::ParsingMode mode)
Definition qurl.cpp:879
Qt::weak_ordering compareThreeWay(const QUrl &lhs, const QUrl &rhs)
Definition qurl.cpp:3092
static const ushort userNameInUserInfo[]
Definition qurl.cpp:806
static const ushort userNameInIsolation[]
Definition qurl.cpp:782
static const ushort *const queryInIsolation
Definition qurl.cpp:803
static QUrl adjustFtpPath(QUrl url)
Definition qurl.cpp:3760
static const ushort *const fragmentInUrl
Definition qurl.cpp:863
static QString ftpScheme()
Definition qurl.cpp:448
static bool isIp6(const QString &text)
Definition qurl.cpp:3770
static void recodeFromUser(QString &output, const QString &input, const ushort *actions, QUrl::ParsingMode mode)
Definition qurl.cpp:866
static const ushort *const passwordInUrl
Definition qurl.cpp:860
static const ushort *const queryInUrl
Definition qurl.cpp:862
static const ushort *const passwordInIsolation
Definition qurl.cpp:801
bool comparesEqual(const QUrl &lhs, const QUrl &rhs)
Definition qurl.cpp:3156
static QString webDavScheme()
Definition qurl.cpp:458
static QString fromNativeSeparators(const QString &pathName)
Definition qurl.cpp:3334
QT_BEGIN_NAMESPACE constexpr QUrl::ComponentFormattingOptions QUrlDecodeForLocalFile
Definition qurl_p.h:27
AceLeadingDot
Definition qurl_p.h:38
@ AllowLeadingDot
Definition qurl_p.h:38
@ ForbidLeadingDot
Definition qurl_p.h:38
qsizetype qt_encodeFromUser(QString &appendTo, const QString &input, const ushort *tableModifications)
AceOperation
Definition qurl_p.h:39
@ ToAceOnly
Definition qurl_p.h:39
@ NormalizeAce
Definition qurl_p.h:39
Q_AUTOTEST_EXPORT void qt_punycodeEncoder(QStringView in, QString *output)
Definition qurlidna.cpp:68
qsizetype position
Definition qurl.cpp:526
ErrorCode code
Definition qurl.cpp:527