Don't Parse URL with Only Whitespace
This commit is contained in:
committed by
William Casarin
parent
d9e22ce7bf
commit
13ea42a2e2
@@ -31,14 +31,16 @@ static void make_cursor(struct cursor *c, const u8 *content, size_t len)
|
|||||||
|
|
||||||
static int consume_until_whitespace(struct cursor *cur, int or_end) {
|
static int consume_until_whitespace(struct cursor *cur, int or_end) {
|
||||||
char c;
|
char c;
|
||||||
|
bool consumedAtLeastOne = false;
|
||||||
|
|
||||||
while (cur->p < cur->end) {
|
while (cur->p < cur->end) {
|
||||||
c = *cur->p;
|
c = *cur->p;
|
||||||
|
|
||||||
if (is_whitespace(c))
|
if (is_whitespace(c) && consumedAtLeastOne)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
cur->p++;
|
cur->p++;
|
||||||
|
consumedAtLeastOne = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return or_end;
|
return or_end;
|
||||||
|
|||||||
@@ -105,6 +105,14 @@ class damusTests: XCTestCase {
|
|||||||
XCTAssertEqual(parsed[1].is_text, " br")
|
XCTAssertEqual(parsed[1].is_text, " br")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testNoParseUrlWithOnlyWhitespace() {
|
||||||
|
let testString = "https:// "
|
||||||
|
let parsed = parse_mentions(content: testString, tags: [])
|
||||||
|
|
||||||
|
XCTAssertNotNil(parsed)
|
||||||
|
XCTAssertEqual(parsed[0].is_text, testString)
|
||||||
|
}
|
||||||
|
|
||||||
func testParseMentionBlank() {
|
func testParseMentionBlank() {
|
||||||
let parsed = parse_mentions(content: "", tags: [["e", "event_id"]])
|
let parsed = parse_mentions(content: "", tags: [["e", "event_id"]])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user