Commit 55ad2a8
authored
fix(parser): stop panicking on backslash before multibyte chars (#485)
A backslash escape used to slice exactly one byte after the backslash,
which panicked on multibyte characters (e.g. \φ), and it stripped the
backslash before every character. Per CommonMark, only ASCII
punctuation is escapable; before anything else the backslash is
literal text and the following character parses normally.
Fixes CommonMark spec example 13 in both core and GFM modes.1 parent 6c0f6ad commit 55ad2a8
3 files changed
Lines changed: 33 additions & 3 deletions
File tree
- crates
- ox_content_parser
- src/parser
- tests/edge_cases
- ox_content_renderer/tests/spec_fixtures
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
63 | 66 | | |
64 | 67 | | |
65 | 68 | | |
66 | 69 | | |
67 | 70 | | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
68 | 78 | | |
69 | 79 | | |
70 | 80 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
115 | 137 | | |
116 | 138 | | |
117 | 139 | | |
| |||
Lines changed: 0 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | 12 | | |
14 | 13 | | |
15 | 14 | | |
| |||
401 | 400 | | |
402 | 401 | | |
403 | 402 | | |
404 | | - | |
405 | 403 | | |
406 | 404 | | |
407 | 405 | | |
| |||
0 commit comments