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:
committed by
William Casarin
parent
0af8646fd5
commit
205774f684
@@ -97,6 +97,12 @@ func parse_digit(_ p: Parser) -> Int? {
|
|||||||
func parse_hex_char(_ p: Parser) -> Character? {
|
func parse_hex_char(_ p: Parser) -> Character? {
|
||||||
let ind = p.str.index(p.str.startIndex, offsetBy: p.pos)
|
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 {
|
if let c = p.str[ind].unicodeScalars.first {
|
||||||
// hex chars
|
// hex chars
|
||||||
let d = c.value
|
let d = c.value
|
||||||
|
|||||||
@@ -53,6 +53,14 @@ class ReplyTests: XCTestCase {
|
|||||||
XCTAssertEqual(blocks[0].is_text, content)
|
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() {
|
func testHashtagsInQuote() {
|
||||||
let content = "This is my \"#awesome post\""
|
let content = "This is my \"#awesome post\""
|
||||||
let blocks = parse_post_blocks(content: content)
|
let blocks = parse_post_blocks(content: content)
|
||||||
|
|||||||
Reference in New Issue
Block a user