Commit 094c76d
committed
Fix SSE parsing to handle split CRLF across chunks
Previously, the SSE parser could incorrectly handle CRLF line endings when
\r appeared at the end of one chunk and \n at the beginning of the next
chunk, potentially treating them as two separate line breaks instead of
a single CRLF sequence.
This fix implements proper CRLF handling by:
- Tracking when a chunk ends with \r using a skip_leading_lf flag
- Skipping a leading \n in the next chunk if the previous ended with \r
- Ensuring Unicode line/paragraph separators (U+2028/U+2029) are treated
as regular content, not line breaks, per the SSE specification
Added comprehensive test coverage for the edge case of split CRLF sequences
across chunk boundaries.1 parent e781013 commit 094c76d
2 files changed
+53
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
40 | 47 | | |
41 | 48 | | |
42 | 49 | | |
43 | 50 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
49 | 72 | | |
50 | 73 | | |
51 | 74 | | |
52 | 75 | | |
53 | 76 | | |
54 | 77 | | |
55 | 78 | | |
56 | | - | |
| 79 | + | |
| 80 | + | |
57 | 81 | | |
58 | 82 | | |
59 | 83 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
0 commit comments