summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--alacritty_terminal/src/term/mod.rs12
2 files changed, 11 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ef499ec9..84abd929 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -45,6 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix escapes prematurely terminated by terminators in unicode glyphs
- Incorrect location when clicking inside an unfocused window on macOS
- Startup mode `Maximized` on Windows
+- Crashing on start on Windows
+- Crash when writing a fullwidth character in the last column with auto-wrap mode disabled
## 0.4.2
### Fixed
diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs
index 5db57339..124f56ac 100644
--- a/alacritty_terminal/src/term/mod.rs
+++ b/alacritty_terminal/src/term/mod.rs
@@ -1343,10 +1343,16 @@ impl<T: EventListener> Handler for Term<T> {
if width == 1 {
self.write_at_cursor(c);
} else {
- // Insert extra placeholder before wide char if glyph doesn't fit in this row anymore
if self.cursor.point.col + 1 >= num_cols {
- self.write_at_cursor(' ').flags.insert(Flags::WIDE_CHAR_SPACER);
- self.wrapline();
+ if self.mode.contains(TermMode::LINE_WRAP) {
+ // Insert placeholder before wide char if glyph does not fit in this row.
+ self.write_at_cursor(' ').flags.insert(Flags::WIDE_CHAR_SPACER);
+ self.wrapline();
+ } else {
+ // Prevent out of bounds crash when linewrapping is disabled.
+ self.input_needs_wrap = true;
+ return;
+ }
}
// Write full width glyph to current cursor cell