diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/code_point.zig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/code_point.zig b/src/code_point.zig index ac37562..2f2e80f 100644 --- a/src/code_point.zig +++ b/src/code_point.zig | |||
| @@ -46,6 +46,17 @@ pub const Iterator = struct { | |||
| 46 | .offset = self.i, | 46 | .offset = self.i, |
| 47 | }; | 47 | }; |
| 48 | 48 | ||
| 49 | // Return replacement if we don' have a complete codepoint remaining. Consumes only one byte | ||
| 50 | if (self.i + cp.len > self.bytes.len) { | ||
| 51 | defer self.i += 1; | ||
| 52 | // Unicode replacement code point. | ||
| 53 | return .{ | ||
| 54 | .code = 0xfffd, | ||
| 55 | .len = 1, | ||
| 56 | .offset = self.i, | ||
| 57 | }; | ||
| 58 | } | ||
| 59 | |||
| 49 | const cp_bytes = self.bytes[self.i..][0..cp.len]; | 60 | const cp_bytes = self.bytes[self.i..][0..cp.len]; |
| 50 | self.i += cp.len; | 61 | self.i += cp.len; |
| 51 | 62 | ||