AK: URL should support file:// URL's

Also add some setters since this class was very setter-less.
This commit is contained in:
Andreas Kling 2019-10-05 10:14:42 +02:00
parent 4f47146433
commit d64c054d25
Notes: sideshowbarker 2024-07-19 11:49:00 +09:00
2 changed files with 14 additions and 4 deletions

View file

@ -61,7 +61,10 @@ bool URL::parse(const StringView& string)
return false;
m_protocol = String::copy(buffer);
buffer.clear();
state = State::InHostname;
if (m_protocol == "file")
state = State::InPath;
else
state = State::InHostname;
continue;
case State::InHostname:
if (is_valid_hostname_character(peek())) {
@ -120,9 +123,11 @@ String URL::to_string() const
StringBuilder builder;
builder.append(m_protocol);
builder.append("://");
builder.append(m_host);
builder.append(':');
builder.append(String::number(m_port));
if (protocol() != "file") {
builder.append(m_host);
builder.append(':');
builder.append(String::number(m_port));
}
builder.append(m_path);
return builder.to_string();
}

View file

@ -24,6 +24,11 @@ public:
String path() const { return m_path; }
u16 port() const { return m_port; }
void set_protocol(const String& protocol) { m_protocol = protocol; }
void set_host(const String& host) { m_host = host; }
void set_path(const String& path) { m_path = path; }
void set_port(u16 port) { m_port = port; }
String to_string() const;
private: