diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2012-05-16 08:20:06 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-05-16 08:51:05 +0200 |
commit | 4cfc3ab0e9c04e883b4b122210b994513d8bfb50 (patch) | |
tree | ff89c6856dd6de49833663a97dac6f2c54c0bb18 /commands/edit.c | |
parent | 3f66e8dc57d0dd05e22d321786da39810ba6b7ff (diff) | |
download | barebox-4cfc3ab0e9c04e883b4b122210b994513d8bfb50.tar.gz barebox-4cfc3ab0e9c04e883b4b122210b994513d8bfb50.tar.xz |
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 <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/edit.c')
-rw-r--r-- | commands/edit.c | 17 |
1 files 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 <ctrl-d>: Save and quit <ctrl-c>: 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; } |