From 9f8f7f84e4aef81b3329edefdbc9d3010e269b3c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 13 May 2022 22:30:37 -0700 Subject: When cmdbuf used for result, set cursor position to EOL. --- pw.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'pw.c') diff --git a/pw.c b/pw.c index 287bd50..e80ad18 100644 --- a/pw.c +++ b/pw.c @@ -1180,7 +1180,7 @@ int main(int argc, char **argv) kbd_lcmd, kbd_result }; int auto_quit = 1; - int quit_count = 1, quit_countdown = quit_count; + int quit_count = 1, quit_cntdwn = quit_count; int exit_status = EXIT_FAILURE; #ifdef SIGWINCH static struct sigaction sa; @@ -1237,7 +1237,7 @@ int main(int argc, char **argv) case 'q': { char *err; - if ((quit_countdown = quit_count = getzp(optarg, &err)) < 0) { + if ((quit_cntdwn = quit_count = getzp(optarg, &err)) < 0) { error("-%c option: %s\n", opt, err); return EXIT_FAILURE; } @@ -1609,13 +1609,13 @@ int main(int argc, char **argv) // fallthrough case kbd_cmd: if (ch != 'q' && ch != 3) - quit_countdown = quit_count; + quit_cntdwn = quit_count; switch (ch) { case 'q': case 3: - if (--quit_countdown == 0) { + if (--quit_cntdwn == 0) { kbd_state = kbd_exit; } else { - sprintf(pw.cmdbuf, "%d more to quit", quit_countdown); + pw.editpos = sprintf(pw.cmdbuf, "%d more to quit", quit_cntdwn); pw.curcmd = pw.cmdbuf; kbd_state = kbd_result; } @@ -1784,9 +1784,10 @@ int main(int argc, char **argv) pw.stat |= stat_force; break; case ctrl('g'): - snprintf(pw.cmdbuf, sizeof pw.cmdbuf, "-p %d,%d,%d,%d,%d", - pw.hpos, pw.vsplit1, pw.vsplit2, pw.vs2pos, - (int) pw.stat & stat_save); + pw.editpos = snprintf(pw.cmdbuf, sizeof pw.cmdbuf, + "-p %d,%d,%d,%d,%d", + pw.hpos, pw.vsplit1, pw.vsplit2, pw.vs2pos, + (int) pw.stat & stat_save); pw.curcmd = pw.cmdbuf; kbd_state = kbd_result; break; @@ -1894,6 +1895,7 @@ int main(int argc, char **argv) { if (pw.columns < cmdsize) pw.cmdbuf[pw.columns] = 0; + pw.editpos = strlen(pw.cmdbuf); kbd_state = kbd_result; cmdcount = INT_MAX; break; -- cgit v1.2.3