Author | Jamozed <[email protected]> |
Date | 2021-03-29 10:30:04 |
Commit | 68c405989acf065a3c85f29df9768c22ef183b45 |
Parent | 0a41e43bd0e8ea92106b3ec47ec3147dc5e1c1c6 |
Implement single line lineRefresh
This currently only handles single lines, multi line refresh shall be implemented in the future when it is needed
Diffstat
M | src/lineread.c | | | 7 | +++++-- |
M | src/main.c | | | 4 | ---- |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/lineread.c b/src/lineread.c index b6bb64f..a0b8f44 100644 --- a/src/lineread.c +++ b/src/lineread.c @@ -129,7 +129,10 @@ static inline void tcrestore(void) { /* Refresh line */ static void lineRefresh(struct line *l) { - + fputs("\r\x1b[0K", stdout); + fputs(l->prompt, stdout); fputs(l->s, stdout); + fprintf(stdout, "\r\x1b[%zuC", l->pl + l->sp); + return; } /* Move cursor left */ @@ -161,7 +164,7 @@ static int lineInsert(struct line *l, char c) { } else { memmove(l->s + l->sp + 1, l->s + l->sp, l->sl - l->sp); - l->s[l->sp++] = c; l->s[++l->sp] = 0; lineRefresh(l); + l->s[l->sp++] = c; l->s[++l->sl] = 0; lineRefresh(l); } return c; } diff --git a/src/main.c b/src/main.c index fb7f153..5bd0101 100644 --- a/src/main.c +++ b/src/main.c @@ -65,10 +65,6 @@ int main(int ac, char *av[]) { (void)(ac); char **args = parse(line); free(line); if (!args) { printf("PARSEFAIL\n"); error(1, "%s", serr()); } - for (int i = 0; args[i]; ++i) { - printf("%s\n", args[i]); - } - _ret = execute(args); for (size_t i = 0; args[i]; ++i) { free(args[i]); } free(args);