diff --git a/clite/libs/libcurses.js b/clite/libs/libcurses.js index 2f24b38..fbd8fd6 100644 --- a/clite/libs/libcurses.js +++ b/clite/libs/libcurses.js @@ -156,6 +156,14 @@ return Object.create({ ptry.value = this.size.rows; return true; }, + getyx:function() { + if (!this.isinit) + return false; + var c = clite.tty.getCursor(this.ctty); + if (!Array.isArray(c)) + return [0,0]; + return [c[1],c[0]]; + }, move:function(y,x) { if (!this.isinit) diff --git a/clite/vi.js b/clite/vi.js index 43f25fb..eb0ab05 100644 --- a/clite/vi.js +++ b/clite/vi.js @@ -85,10 +85,12 @@ Options: var s = -1; var disp = ''; var rows = 0; + var done = false; for (var i=0; i cols) { var b = ''; @@ -131,6 +133,10 @@ Options: cl++; } } + if (!done) { + cursor_line_real = rows; + cursor_col_real = cl; + } curses.addstr(disp+'\n'); } @@ -144,15 +150,15 @@ Options: if (end > lines.length) end = lines.length; curses.clear(); - var cursor_line_screen = 0; var k = 0; if (num) { - cursor_screen[1] += 4; for (var i=start; i