1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 08:27:45 +00:00

Userland: Allow unquoted 'filename' values in 'pro'

This commit is contained in:
AnotherTest 2020-08-31 19:24:46 +04:30 committed by Andreas Kling
parent 441807f96d
commit 7e72285049

View file

@ -57,7 +57,16 @@ public:
if (lexer.consume_specific(";")) { if (lexer.consume_specific(";")) {
lexer.ignore_while(is_whitespace); lexer.ignore_while(is_whitespace);
if (lexer.consume_specific("filename=")) { if (lexer.consume_specific("filename=")) {
m_filename = lexer.consume_quoted_string(); // RFC 2183: "A short (length <= 78 characters)
// parameter value containing only non-`tspecials' characters SHOULD be
// represented as a single `token'."
// Some people seem to take this as generic advice of "if it doesn't have special characters,
// it's safe to specify as a single token"
// So let's just be as lenient as possible.
if (lexer.next_is('"'))
m_filename = lexer.consume_quoted_string();
else
m_filename = lexer.consume_until(is_any_of("()<>@,;:\\\"/[]?= "));
} else { } else {
m_might_be_wrong = true; m_might_be_wrong = true;
} }
@ -72,7 +81,10 @@ public:
if (lexer.consume_specific("name=")) { if (lexer.consume_specific("name=")) {
m_name = lexer.consume_quoted_string(); m_name = lexer.consume_quoted_string();
} else if (lexer.consume_specific("filename=")) { } else if (lexer.consume_specific("filename=")) {
m_filename = lexer.consume_quoted_string(); if (lexer.next_is('"'))
m_filename = lexer.consume_quoted_string();
else
m_filename = lexer.consume_until(is_any_of("()<>@,;:\\\"/[]?= "));
} else { } else {
m_might_be_wrong = true; m_might_be_wrong = true;
} }