diff options
author | dzwdz | 2022-08-06 01:08:08 +0200 |
---|---|---|
committer | dzwdz | 2022-08-06 01:08:08 +0200 |
commit | 9b51ed0c71878a2e5c2f6372c6de3dd318ad2416 (patch) | |
tree | ee8c3bbbe2d45c7ebfe34c6c1142620f9ef44f8d /src/user | |
parent | 03c6f3cf458c89df17b02557cd232f9cde73ed54 (diff) |
user/vterm: fix crash on 1920x1080
Diffstat (limited to 'src/user')
-rw-r--r-- | src/user/app/vterm/font.c | 6 | ||||
-rw-r--r-- | src/user/app/vterm/vterm.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/user/app/vterm/font.c b/src/user/app/vterm/font.c index 5a9dd24..368d534 100644 --- a/src/user/app/vterm/font.c +++ b/src/user/app/vterm/font.c @@ -47,6 +47,11 @@ void font_load(const char *path) { void font_blit(uint32_t glyph, int x, int y) { if (glyph >= font.glyph_amt) glyph = 0; + if (x < 0 || (x+1) * font.w >= fb.width || + y < 0 || (y+1) * font.h >= fb.height) + { + return; + } dirty_mark(x, y); @@ -60,4 +65,5 @@ void font_blit(uint32_t glyph, int x, int y) { *((uint32_t*)&fb.b[fb.pitch * (y * font.h + j) + 4 * (x * font.w + i)]) = byte * 0xB0B0B0; } } + return; } diff --git a/src/user/app/vterm/vterm.c b/src/user/app/vterm/vterm.c index 43180b2..50a7b98 100644 --- a/src/user/app/vterm/vterm.c +++ b/src/user/app/vterm/vterm.c @@ -26,7 +26,7 @@ void in_char(char c) { cursor.x = 0; cursor.y++; } - while (cursor.y * font.h >= fb.height) scroll(); + while ((cursor.y + 1) * font.h >= fb.height) scroll(); } int main(); |