aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-13 22:30:37 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-13 22:30:37 -0700
commit9f8f7f84e4aef81b3329edefdbc9d3010e269b3c (patch)
tree3ce7b2de98380fb7c0b7dff82f05385c3e4f25a8
parent799957d64606e79c905d1667e48b9c1540d086d9 (diff)
downloadpw-9f8f7f84e4aef81b3329edefdbc9d3010e269b3c.tar.gz
pw-9f8f7f84e4aef81b3329edefdbc9d3010e269b3c.tar.bz2
pw-9f8f7f84e4aef81b3329edefdbc9d3010e269b3c.zip
When cmdbuf used for result, set cursor position to EOL.
-rw-r--r--pw.c18
1 files changed, 10 insertions, 8 deletions
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;