From 32927521b049b324ee61d9c82c3c7c6abc3f31c0 Mon Sep 17 00:00:00 2001 From: Lisa Milne Date: Thu, 14 Dec 2023 08:57:13 +1000 Subject: [PATCH] some fixes to vi --- clite/core.js | 2 ++ clite/libcurses.js | 2 +- clite/vi.js | 14 +++++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/clite/core.js b/clite/core.js index afeef88..d991094 100644 --- a/clite/core.js +++ b/clite/core.js @@ -2217,6 +2217,7 @@ clite.tty = { }else{ clite.console.drawAt(updateX,updateY,t.data[updateY][updateX]); } + clite.console.setCursor(t.x,t.y); }, popLine:function(t) { var off = -1; @@ -2571,6 +2572,7 @@ clite.console = { clite.console.data.vgaio.writeSet(2,clite.console.data.cursor[0],clite.console.data.cursor[1],false); clite.console.data.cursor[0] = clite.console.data.cursor[2]; clite.console.data.cursor[1] = clite.console.data.cursor[3]; + //clite.console.data.vgaio.write(clite.console.data.cursor[0],clite.console.data.cursor[1],'_'); clite.console.data.vgaio.writeSet(2,clite.console.data.cursor[0],clite.console.data.cursor[1],true); }, setCursor:function(x,y) { diff --git a/clite/libcurses.js b/clite/libcurses.js index fd3c03d..244359b 100644 --- a/clite/libcurses.js +++ b/clite/libcurses.js @@ -24,7 +24,7 @@ return Object.create({ KEY_SHIFT:-2, KEY_TAB:'\t', KEY_DL:String.fromCharCode(127), - KEY_BACKSPACE:String.fromCharCode(8), + KEY_BACKSPACE:8, KEY_CONTROL:-1, KEY_PPAGE:-7, KEY_NPAGE:-8, diff --git a/clite/vi.js b/clite/vi.js index 9571ea6..abfcc57 100644 --- a/clite/vi.js +++ b/clite/vi.js @@ -120,11 +120,9 @@ Options: var ct = cursor_line+','+cursor_col; curses.move(rows-2,cols-(ct.length+5)); curses.printw('%s',ct); - if (cmd_buff != '') { - curses.move(rows-1,0); + curses.move(rows-1,0); + if (cmd_buff != '') curses.printw('%s',cmd_buff); - } - //curses.move(cursor_line,cursor_col); } function prepFile(fd) { @@ -334,8 +332,14 @@ Options: showAt(topLine); cmd_buff = ''; break; + case curses.key.KEY_BACKSPACE: + if (cmd_buff.length > 0) { + cmd_buff = cmd_buff.substring(0,cmd_buff.length-1); + showAt(topLine); + } + break; default: - if (key.length == 1) + if (typeof key === 'string' && key.length == 1) cmd_buff+=key; break; }