From 4cfc3ab0e9c04e883b4b122210b994513d8bfb50 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Wed, 16 May 2012 08:20:06 +0200 Subject: edit: Add a status line When invoked from a skript it's useful to know which file is edited. Also Add information how to exit the editor to the status line. Signed-off-by: Sascha Hauer --- commands/edit.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/commands/edit.c b/commands/edit.c index fae76cdb55..eddec0b935 100644 --- a/commands/edit.c +++ b/commands/edit.c @@ -62,7 +62,7 @@ static int scrcol = 0; /* the first column on screen */ static void pos(int x, int y) { - printf("%c[%d;%dH", 27, y + 1, x + 1); + printf("%c[%d;%dH", 27, y + 2, x + 1); } static char *screenline(char *line, int *pos) @@ -409,6 +409,17 @@ static int do_edit(int argc, char *argv[]) lastscrcol = 0; printf("%c[2J", 27); + + pos(0, -1); + + printf("%c[7m %-25s : Save and quit : quit %c[0m", + 27, argv[1], 27); + printf("%c[2;%dr", 27, screenheight); + + screenheight--; /* status line */ + + pos(0, 0); + refresh(1); while (1) { @@ -416,7 +427,7 @@ static int do_edit(int argc, char *argv[]) if (textx > curlen) textx = curlen; - if (textx < 0) + if (textx < 1) textx = 0; screenline(curline->data, &linepos); @@ -531,7 +542,7 @@ static int do_edit(int argc, char *argv[]) } out: free_buffer(); - printf("%c[2J", 27); + printf("%c[2J%c[r", 27, 27); printf("\n"); return 0; } -- cgit v1.2.3