Fix when calling parse_hex_char out of bounds

Closes: #158
Changelog-Fixed: Fix crash with @ sign in some posts
This commit is contained in:
Pablo Fernandez
2022-12-27 19:11:54 +07:00
committed by William Casarin
parent 0af8646fd5
commit 205774f684
2 changed files with 14 additions and 0 deletions

View File

@@ -97,6 +97,12 @@ func parse_digit(_ p: Parser) -> Int? {
func parse_hex_char(_ p: Parser) -> Character? {
let ind = p.str.index(p.str.startIndex, offsetBy: p.pos)
// Check that we're within the bounds of p.str's length
if p.pos >= p.str.count {
return nil
}
if let c = p.str[ind].unicodeScalars.first {
// hex chars
let d = c.value

View File

@@ -53,6 +53,14 @@ class ReplyTests: XCTestCase {
XCTAssertEqual(blocks[0].is_text, content)
}
func testAtAtEnd() {
let content = "what @"
let blocks = parse_post_blocks(content: content)
XCTAssertEqual(blocks.count, 1)
XCTAssertEqual(blocks[0].is_text, "what @")
}
func testHashtagsInQuote() {
let content = "This is my \"#awesome post\""
let blocks = parse_post_blocks(content: content)