396#include "qplatformdefs.h"
402#include "private/qipaddress_p.h"
404#include "private/qdir_p.h"
405#include <private/qtools_p.h>
587 userName(
copy.userName),
588 password(
copy.password),
592 fragment(
copy.fragment),
594 sectionIsPresent(
copy.sectionIsPresent),
604 return error ? std::make_unique<Error>(*
error) :
nullptr;
618 error = std::make_unique<Error>();
619 error->code = errorCode;
621 error->position = supplement;
803 data.replace(u
'%',
"%25"_L1);
815 return input.mid(from, to - from);
854 const ushort *userNameActions;
855 const ushort *passwordActions;
860 switch (appendingTo) {
924 while (thePathView.
size() > 1 && thePathView.
endsWith(u
'/'))
969 needsLowercasing =
i;
975 if (
p[
i] ==
'+' ||
p[
i] ==
'-' ||
p[
i] ==
'.')
989 if (needsLowercasing != -1) {
995 schemeData[
i] =
QChar(
c + 0x20);
1007 flags &= ~IsLocalFile;
1019 while (from !=
end) {
1021 if (
size_t(userInfoIndex) <
size_t(
end)) {
1025 from = userInfoIndex + 1;
1029 if (colonIndex < from)
1032 if (
size_t(colonIndex) <
size_t(
end)) {
1036 if (
size_t(closingBracket) >
size_t(colonIndex))
1041 if (
size_t(colonIndex) <
size_t(
end) - 1) {
1043 unsigned long x = 0;
1086 if (
size_t(delimIndex) >=
size_t(
end)) {
1179 static const char acceptable[] =
1186 if (
begin[3].unicode() !=
'.')
1194 if (
begin[2].unicode() >=
'a')
1209 else if (
begin->unicode() < 0x80 && strchr(acceptable,
begin->unicode()) !=
nullptr)
1217 return &origBegin[2];
1229 decoded = decodedBuffer;
1237 if ((zoneIdPosition != -1) && (decoded.
lastIndexOf(zoneIdIdentifier) == zoneIdPosition)) {
1238 zoneId = decoded.
mid(zoneIdPosition + zoneIdIdentifier.
size());
1260 host += zoneIdIdentifier;
1279 if (
begin[0].unicode() ==
'[') {
1283 if (
end[-1].unicode() !=
']') {
1288 if (
len > 5 &&
begin[1].unicode() ==
'v') {
1293 }
else if (
begin[1].unicode() ==
'v') {
1382 size_t uc =
data[
i];
1383 if (uc ==
'#' &&
hash == -1) {
1390 if (question == -1) {
1391 if (uc ==
':' && colon == -1)
1401 hierStart = colon + 1;
1411 if (hierEnd - hierStart >= 2 &&
data[hierStart] ==
'/' &&
data[hierStart + 1] ==
'/') {
1414 for (
qsizetype i = hierStart + 2;
i < authorityEnd ; ++
i) {
1415 if (
data[
i] ==
'/') {
1424 pathStart = authorityEnd;
1431 pathStart = hierStart;
1433 if (hierStart < hierEnd)
1439 if (
size_t(question) <
size_t(
hash))
1470 tmp =
"//"_L1 +
host;
1482 if (ourPath.
length() > 2 && ourPath.
at(0) == u
'/' && ourPath.
at(2) == u
':')
1503 return u
'/' + relativePath;
1511 if (!
path.contains(u
'/'))
1512 newPath = relativePath;
1537 if (
path->size() == 1 &&
in[0].unicode() ==
'.')
1539 else if (
path->size() == 2 &&
in[0].unicode() ==
'.' &&
in[1].unicode() ==
'.')
1546 if (
path->size() >= 2 &&
in[0].unicode() ==
'.' &&
in[1].unicode() ==
'/')
1548 else if (
path->size() >= 3 &&
in[0].unicode() ==
'.'
1549 &&
in[1].unicode() ==
'.' &&
in[2].unicode() ==
'/')
1555 if (
in <=
end - 3 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1556 &&
in[2].unicode() ==
'/') {
1559 }
else if (
in ==
end - 2 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.') {
1570 if (
in <=
end - 4 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1571 &&
in[2].unicode() ==
'.' &&
in[3].unicode() ==
'/') {
1572 while (
out >
path->constData() && (--
out)->unicode() !=
'/')
1574 if (
out ==
path->constData() &&
out->unicode() !=
'/')
1578 }
else if (
in ==
end - 3 &&
in[0].unicode() ==
'/' &&
in[1].unicode() ==
'.'
1579 &&
in[2].unicode() ==
'.') {
1580 while (
out >
path->constData() && (--
out)->unicode() !=
'/')
1582 if (
out->unicode() ==
'/')
1595 while (in < end && in->unicode() !=
'/')
1627 if (
path.at(0) == u
'/') {
1682 static const char forbidden[] =
"\"<>\\^`{|}\x7F";
1683 static const char forbiddenUserInfo[] =
":/?#[]@";
1688 for (
size_t i =
size_t(
begin);
i < size_t(
end); ++
i) {
1695 || uc <= 0x20 || strchr(forbidden, uc)) {
1699 if (section ==
UserInfo && strchr(forbiddenUserInfo + 1, uc))
1701 else if (section !=
UserInfo && strchr(forbiddenUserInfo, uc))
1712 for (
size_t j =
size_t(
begin);
j <
i; ++
j)
1713 if (
data[
j] ==
':') {
1728inline void QUrlPrivate::validate()
const
1731 that->encodedOriginal = that->toEncoded();
1734 QURL_SETFLAG(that->stateFlags, Validated);
1745 if (
scheme ==
"mailto"_L1) {
1747 that->isValid =
false;
1749 "port and password"),
1754 that->isValid =
false;
1890 if (!d)
return true;
1929 qWarning(
"QUrl: QUrl::DecodedMode is not permitted when parsing a full URL");
2025 qWarning(
"QUrl::setAuthority(): QUrl::DecodedMode is not permitted in this function");
2059 qWarning(
"QUrl::authority(): QUrl::FullyDecoded is not permitted in this function");
2096 qWarning(
"QUrl::setUserInfo(): QUrl::DecodedMode is not permitted in this function");
2133 qWarning(
"QUrl::userInfo(): QUrl::FullyDecoded is not permitted in this function");
2300 }
else if (!
data.startsWith(u
'[')) {
2308 if (
data.contains(u
':')) {
2342 if (
result.startsWith(u
'['))
2360 if (port < -1 || port > 65535) {
2382 if (!d)
return defaultPort;
2383 return d->
port == -1 ? defaultPort : d->
port;
2500 return ourPath.
mid(slash + 1);
2512 if (!d)
return false;
2583 if (
query.isEmpty())
2699 if (!d)
return false;
2724 if (!d)
return relative;
2725 if (!relative.d)
return *
this;
2741 t.d->host = d->
host;
2742 t.d->port = d->
port;
2746 t.d->path = d->
path;
2748 t.d->query = relative.d->
query;
2759 t.d->query = relative.d->
query;
2779#if defined(QURL_DEBUG)
2780 qDebug(
"QUrl(\"%ls\").resolved(\"%ls\") = \"%ls\"",
2799 if (!d)
return true;
2836 qWarning(
"QUrl: QUrl::FullyDecoded is not permitted when reconstructing the full URL");
2857 options &= ~EncodeReserved;
3076 bool thisIsEmpty = !d || d->
isEmpty();
3080 return thisIsEmpty && !thatIsEmpty;
3227 return path1 == path2;
3238 return !(*
this ==
url);
3305#if defined(Q_OS_WIN)
3307 const QChar nativeSeparator = u
'\\';
3308 auto i =
result.indexOf(nativeSeparator);
3313 if (
data[
i] == nativeSeparator)
3363 if (deslashified.
size() > 1 && deslashified.
at(1) == u
':' && deslashified.
at(0) != u
'/') {
3365 }
else if (deslashified.
startsWith(
"//"_L1)) {
3383 }
else if (indexOfPath > 2) {
3384 deslashified = deslashified.
right(deslashified.
size() - indexOfPath);
3386 deslashified.
clear();
3448 && childPath.
size() > 0 && childPath.
at(0) == u
'/');
3457 && childPath.
at(ourPath.
size()) == u
'/')));
3461#ifndef QT_NO_DATASTREAM
3494#ifndef QT_NO_DEBUG_STREAM
3505 QChar c = size_t(errorPosition) < size_t(errorSource.
size()) ?
3508 switch (errorCode) {
3510 Q_UNREACHABLE_RETURN(
QString());
3513 auto msg =
"Invalid scheme (character '%1' not permitted)"_L1;
3518 return "Invalid user name (character '%1' not permitted)"_L1
3522 return "Invalid password (character '%1' not permitted)"_L1
3526 if (errorPosition >= 0)
3527 return "Invalid hostname (character '%1' not permitted)"_L1
3530 return QStringLiteral(
"Invalid hostname (contains invalid characters)");
3536 return "Invalid IPv6 address (character '%1' not permitted)"_L1.arg(
c);
3538 return "Invalid IPvFuture address (character '%1' not permitted)"_L1.arg(
c);
3543 return QStringLiteral(
"Invalid port or port number out of range");
3548 return "Invalid path (character '%1' not permitted)"_L1
3552 return "Invalid query (character '%1' not permitted)"_L1
3556 return "Invalid fragment (character '%1' not permitted)"_L1
3560 return QStringLiteral(
"Path component is relative and authority is present");
3562 return QStringLiteral(
"Path component starts with '//' and authority is absent");
3564 return QStringLiteral(
"Relative URL's path component contains ':' before any '/'");
3567 Q_UNREACHABLE_RETURN(
QString());
3602 msg +=
errorMessage(errorCode, errorSource, errorPosition);
3603 msg +=
"; source was \""_L1;
3607 " scheme = ", d->
scheme);
3611 " host = ", d->
host);
3615 " path = ", d->
path);
3617 " query = ", d->
query);
3633 lst.reserve(urls.
size());
3691 if (
path.startsWith(
"//"_L1))
3744 UserInputResolutionOptions options)
3753 if (
isIp6(trimmedString)) {
3763 if (!workingDirectory.
isEmpty()) {
3764 const QFileInfo fileInfo(
QDir(workingDirectory), userInput);
3784 && urlPrepended.
port() == -1)
T loadRelaxed() const noexcept
constexpr qsizetype size() const noexcept
qsizetype size() const noexcept
Returns the number of bytes in this byte array.
static QByteArray fromPercentEncoding(const QByteArray &pctEncoded, char percent='%')
QByteArray toPercentEncoding(const QByteArray &exclude=QByteArray(), const QByteArray &include=QByteArray(), char percent='%') const
constexpr char16_t unicode() const noexcept
Returns the numeric Unicode value of the QChar.
\inmodule QtCore\reentrant
static bool isAbsolutePath(const QString &path)
Returns true if path is absolute; returns false if it is relative.
\inmodule QtCore \reentrant
QString absoluteFilePath() const
Returns an absolute path including the file name.
bool exists() const
Returns true if the file exists; otherwise returns false.
size_t qHash(const QUrl &url, size_t seed) noexcept
Returns the hash value for the url.
qsizetype size() const noexcept
void reserve(qsizetype size)
void append(parameter_type t)
Represents an immutable JsonPath like path in the Qml code model (from a DomItem to another DomItem)
constexpr void truncate(qsizetype n) noexcept
Truncates this string view to length length.
constexpr void chop(qsizetype n) noexcept
Truncates this string view by length characters.
constexpr bool isEmpty() const noexcept
Returns whether this string view is empty - that is, whether {size() == 0}.
constexpr qsizetype size() const noexcept
Returns the size of this string view, in UTF-16 code units (that is, surrogate pairs count as two for...
const_iterator constEnd() const noexcept
constexpr QStringView left(qsizetype n) const noexcept
bool endsWith(QStringView s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
QString toString() const
Returns a deep copy of this string view's data as a QString.
int compare(QStringView other, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
constexpr QStringView mid(qsizetype pos, qsizetype n=-1) const noexcept
Returns the substring of length length starting at position start in this object.
const_iterator constBegin() const noexcept
qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
qsizetype indexOf(QChar c, qsizetype from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
\macro QT_RESTRICTED_CAST_FROM_ASCII
QString right(qsizetype n) const
Returns a substring that contains the n rightmost characters of the string.
iterator begin()
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first character in the string.
QByteArray toLatin1() const &
qsizetype lastIndexOf(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
const_iterator constEnd() const
Returns a const \l{STL-style iterators}{STL-style iterator} pointing just after the last character in...
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
void reserve(qsizetype size)
Ensures the string has space for at least size characters.
void chop(qsizetype n)
Removes n characters from the end of the string.
static QString fromLatin1(QByteArrayView ba)
This is an overloaded member function, provided for convenience. It differs from the above function o...
void clear()
Clears the contents of the string and makes it null.
bool isNull() const
Returns true if this string is null; otherwise returns false.
qsizetype size() const
Returns the number of characters in this string.
static QString fromUtf8(QByteArrayView utf8)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString mid(qsizetype position, qsizetype n=-1) const
Returns a string that contains n characters of this string, starting at the specified position index.
iterator end()
Returns an \l{STL-style iterators}{STL-style iterator} pointing just after the last character in the ...
const QChar at(qsizetype i) const
Returns the character at the given index position in the string.
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
int compare(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
QChar * data()
Returns a pointer to the data stored in the QString.
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QString left(qsizetype n) const
Returns a substring that contains the n leftmost characters of the string.
static QString static QString qsizetype indexOf(QChar c, qsizetype from=0, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
QString trimmed() const &
QString & remove(qsizetype i, qsizetype len)
Removes n characters from the string, starting at the given position index, and returns a reference t...
QString & prepend(QChar c)
const_iterator constBegin() const
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first character in the st...
qsizetype length() const
Returns the number of characters in this string.
void setQuery(const QString &value, qsizetype from, qsizetype end)
void appendPassword(QString &appendTo, QUrl::FormattingOptions options) const
void setUserInfo(const QString &userInfo, qsizetype from, qsizetype end)
void appendHost(QString &appendTo, QUrl::FormattingOptions options) const
void setPath(const QString &value, qsizetype from, qsizetype end)
bool validateComponent(Section section, const QString &input, qsizetype begin, qsizetype end)
std::unique_ptr< Error > cloneError() const
void setAuthority(const QString &auth, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
QString toLocalFile(QUrl::FormattingOptions options) const
std::unique_ptr< Error > error
ErrorCode validityError(QString *source=nullptr, qsizetype *position=nullptr) const
void setFragment(const QString &value, qsizetype from, qsizetype end)
QString mergePaths(const QString &relativePath) const
@ InvalidIPv6AddressError
@ InvalidIPv4AddressError
@ InvalidCharacterInIPv6Error
@ AuthorityPresentAndPathIsRelative
@ AuthorityAbsentAndPathIsDoubleSlash
@ RelativeUrlPathContainsColonBeforeSlash
bool setScheme(const QString &value, qsizetype len, bool doSetError)
void appendAuthority(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void appendUserName(QString &appendTo, QUrl::FormattingOptions options) const
void appendUserInfo(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void setPassword(const QString &value, qsizetype from, qsizetype end)
void appendPath(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
bool validateComponent(Section section, const QString &input)
void setError(ErrorCode errorCode, const QString &source, qsizetype supplement=-1)
bool hasAuthority() const
void appendQuery(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
void appendFragment(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const
bool setHost(const QString &value, qsizetype from, qsizetype end, QUrl::ParsingMode mode)
void setUserName(const QString &value, qsizetype from, qsizetype end)
void parse(const QString &url, QUrl::ParsingMode parsingMode)
constexpr bool testFlag(E1 f) const
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
QString userInfo(ComponentFormattingOptions options=PrettyDecoded) const
Returns the user info of the URL, or an empty string if the user info is undefined.
static QList< QUrl > fromStringList(const QStringList &uris, ParsingMode mode=TolerantMode)
QString fragment(ComponentFormattingOptions options=PrettyDecoded) const
Returns the fragment of the URL.
QUrl()
Constructs an empty QUrl object.
bool operator!=(const QUrl &url) const
Returns true if this URL and the given url are not equal; otherwise returns false.
bool matches(const QUrl &url, FormattingOptions options) const
QString url(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
Returns a string representation of the URL.
QString query(ComponentFormattingOptions=PrettyDecoded) const
Returns the query string of the URL if there's a query string, or an empty result if not.
static QByteArray toAce(const QString &domain, AceProcessingOptions options={})
bool operator<(const QUrl &url) const
QString fileName(ComponentFormattingOptions options=FullyDecoded) const
static QStringList toStringList(const QList< QUrl > &uris, FormattingOptions options=FormattingOptions(PrettyDecoded))
QUrl resolved(const QUrl &relative) const
Returns the result of the merge of this URL with relative.
void setPassword(const QString &password, ParsingMode mode=DecodedMode)
Sets the URL's password to password.
void setUserName(const QString &userName, ParsingMode mode=DecodedMode)
Sets the URL's user name to userName.
void setFragment(const QString &fragment, ParsingMode mode=TolerantMode)
Sets the fragment of the URL to fragment.
static QString fromPercentEncoding(const QByteArray &)
Returns a decoded copy of input.
bool isRelative() const
Returns true if the URL is relative; otherwise returns false.
bool isValid() const
Returns true if the URL is non-empty and valid; otherwise returns false.
~QUrl()
Destructor; called immediately before the object is deleted.
QString userName(ComponentFormattingOptions options=FullyDecoded) const
Returns the user name of the URL if it is defined; otherwise an empty string is returned.
QString host(ComponentFormattingOptions=FullyDecoded) const
Returns the host of the URL if it is defined; otherwise an empty string is returned.
void setQuery(const QString &query, ParsingMode mode=TolerantMode)
Sets the query string of the URL to query.
static QUrl fromUserInput(const QString &userInput, const QString &workingDirectory=QString(), UserInputResolutionOptions options=DefaultResolution)
Returns a valid URL from a user supplied userInput string if one can be deduced.
bool operator==(const QUrl &url) const
Returns true if this URL and the given url are equal; otherwise returns false.
QByteArray toEncoded(FormattingOptions options=FullyEncoded) const
Returns the encoded representation of the URL if it's valid; otherwise an empty QByteArray is returne...
QString password(ComponentFormattingOptions=FullyDecoded) const
Returns the password of the URL if it is defined; otherwise an empty string is returned.
ParsingMode
The parsing mode controls the way QUrl parses strings.
bool isEmpty() const
Returns true if the URL has no data; otherwise returns false.
static QByteArray toPercentEncoding(const QString &, const QByteArray &exclude=QByteArray(), const QByteArray &include=QByteArray())
Returns an encoded copy of input.
void setUrl(const QString &url, ParsingMode mode=TolerantMode)
Parses url and sets this object to that value.
QString authority(ComponentFormattingOptions options=PrettyDecoded) const
Returns the authority of the URL if it is defined; otherwise an empty string is returned.
bool isParentOf(const QUrl &url) const
Returns true if this URL is a parent of childUrl.
QUrl adjusted(FormattingOptions options) const
QString scheme() const
Returns the scheme of the URL.
void setScheme(const QString &scheme)
Sets the scheme of the URL to scheme.
void clear()
Resets the content of the QUrl.
QString errorString() const
static QString fromAce(const QByteArray &domain, AceProcessingOptions options={})
void setHost(const QString &host, ParsingMode mode=DecodedMode)
Sets the host of the URL to host.
int port(int defaultPort=-1) const
void setAuthority(const QString &authority, ParsingMode mode=TolerantMode)
Sets the authority of the URL to authority.
QDataStream & operator>>(QDataStream &in, QUrl &url)
Reads a url into url from the stream in and returns a reference to the stream.
void setUserInfo(const QString &userInfo, ParsingMode mode=TolerantMode)
Sets the user info of the URL to userInfo.
void setPath(const QString &path, ParsingMode mode=DecodedMode)
Sets the path of the URL to path.
QString toDisplayString(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
QUrl & operator=(const QUrl ©) noexcept
Assigns the specified url to this object.
static QUrl fromEncoded(QByteArrayView input, ParsingMode mode=TolerantMode)
Parses input and returns the corresponding QUrl.
QString toString(FormattingOptions options=FormattingOptions(PrettyDecoded)) const
Returns a string representation of the URL.
void setPort(int port)
Sets the port of the URL to port.
QDataStream & operator<<(QDataStream &out, const QUrl &url)
Writes url url to the stream out and returns a reference to the stream.
QString toLocalFile() const
Returns the path of this URL formatted as a local file path.
QString path(ComponentFormattingOptions options=FullyDecoded) const
Returns the path of the URL.
QHash< int, QWidget * > hash
[35multi]
void toString(QString &appendTo, IPv4Address address)
bool parseIp4(IPv4Address &address, const QChar *begin, const QChar *end)
const QChar * parseIp6(IPv6Address &address, const QChar *begin, const QChar *end)
Combined button and popup list for selecting options.
constexpr bool isAsciiDigit(char32_t c) noexcept
constexpr bool isAsciiLower(char32_t c) noexcept
constexpr bool isAsciiLetterOrNumber(char32_t c) noexcept
constexpr bool isAsciiUpper(char32_t c) noexcept
constexpr bool isHexDigit(char32_t c) noexcept
static jboolean copy(JNIEnv *, jobject)
QT_WARNING_POP void qAtomicAssign(T *&d, T *x)
This is a helper for the assignment operators of implicitly shared classes.
void qAtomicDetach(T *&d)
This is a helper for the detach method of implicitly shared classes.
DBusConnection const char DBusError * error
QString qt_normalizePathSegments(const QString &name, QDirPrivate::PathNormalizations flags, bool *ok)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
size_t qHash(const QFileSystemWatcherPathKey &key, size_t seed=0)
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLenum GLsizei length
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLint GLint GLint GLint GLint GLint GLbitfield mask
GLsizei GLsizei GLchar * source
GLuint GLuint64EXT address
GLsizei const GLchar *const * path
GLenum GLenum GLenum input
static qreal component(const QPointF &point, unsigned int i)
static qreal position(const QQuickItem *item, QQuickAnchors::Anchor anchorLine)
static Q_CONSTINIT QBasicAtomicInteger< unsigned > seed
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define qUtf16Printable(string)
#define QStringLiteral(str)
#define QT_TRANSLATE_NOOP(scope, x)
static const ushort *const passwordInIsolation
static const ushort *const pathInUrl
static QString recodeFromUser(const QString &input, const ushort *actions, qsizetype from, qsizetype to)
static const ushort userNameInUrl[]
QDebug operator<<(QDebug d, const QUrl &url)
static QString fileScheme()
static const ushort *const pathInIsolation
static const QChar * parseIpFuture(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
static void appendComponentIfPresent(QString &msg, bool present, const char *componentName, const QString &component)
static void removeDotsFromPath(QString *path)
static QString webDavSslTag()
static const ushort *const passwordInUrl
static const ushort userNameInUserInfo[]
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
static void appendToUser(QString &appendTo, QStringView value, QUrl::FormattingOptions options, const ushort *actions)
static const ushort *const queryInIsolation
static bool isHex(char c)
static const ushort userNameInIsolation[]
static const QChar * parseIp6(QString &host, const QChar *begin, const QChar *end, QUrl::ParsingMode mode)
static const ushort userNameInAuthority[]
static const ushort *const fragmentInIsolation
static const ushort *const fragmentInUrl
static QUrl adjustFtpPath(QUrl url)
static const ushort *const passwordInAuthority
static QString ftpScheme()
static bool isIp6(const QString &text)
static const ushort *const queryInUrl
static QString webDavScheme()
static QString fromNativeSeparators(const QString &pathName)
static const ushort *const passwordInUserInfo
static void parseDecodedComponent(QString &data)
QT_BEGIN_NAMESPACE Q_AUTOTEST_EXPORT qsizetype qt_urlRecode(QString &appendTo, QStringView url, QUrl::ComponentFormattingOptions encoding, const ushort *tableModifications=nullptr)
QString Q_CORE_EXPORT qt_ACE_do(const QString &domain, AceOperation op, AceLeadingDot dot, QUrl::AceProcessingOptions options={})
QT_BEGIN_NAMESPACE typedef uchar * output
QTextStream out(stdout)
[7]
QUrl url("example.com")
[constructor-url-reference]