From 1ca6c13c4bd7efdeb8119dd099868e4dc1a61c07 Mon Sep 17 00:00:00 2001 From: slederer Date: Sun, 20 Oct 2024 17:28:19 +0200 Subject: [PATCH] editor: clear input buffer when getting screen size - not clearing the keyboard buffer could lead to wrong results when reading the screen size from terminal --- progs/editor.pas | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/progs/editor.pas b/progs/editor.pas index a82d51b..4997bcc 100644 --- a/progs/editor.pas +++ b/progs/editor.pas @@ -135,7 +135,11 @@ begin end; procedure getScreenSize; +var c:char; begin + (* empty keyboard buffer *) + while conavail do read(con, c); + GetTermSize(screenW, screenH); pageSize := screenH - vMargins; (* set scrolling region - DECSTBM *) @@ -2463,6 +2467,8 @@ begin close(infile); end; + open(con, '%RAW', ModeOverwrite); + initScreen; showScreen; @@ -2471,7 +2477,6 @@ begin else statusMsg('Successfully read file. Press F1 for help', false, false); - open(con, '%RAW', ModeOverwrite); if errorLine > 0 then begin