aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-04-28 07:36:30 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-04-28 07:36:30 -0700
commitbc781bd17ee2cc996a57be3b3661236c5905d026 (patch)
tree444bc2f3a61f432f683696cbd3fd8db1c92fef72
parent7ab92ff5a136e5ba0ba2bdba969c3e80cab9ffd4 (diff)
downloadpw-bc781bd17ee2cc996a57be3b3661236c5905d026.tar.gz
pw-bc781bd17ee2cc996a57be3b3661236c5905d026.tar.bz2
pw-bc781bd17ee2cc996a57be3b3661236c5905d026.zip
Merge kbd_ttrig and kbd_htrig; simplify status refresh.
-rw-r--r--pw.c23
1 files changed, 7 insertions, 16 deletions
diff --git a/pw.c b/pw.c
index f4d7ad1..7782057 100644
--- a/pw.c
+++ b/pw.c
@@ -406,7 +406,7 @@ int main(int argc, char **argv)
int columns = 80;
enum kbd_state {
kbd_cmd, kbd_esc, kbd_bkt, kbd_exit,
- kbd_colon, kbd_result, kbd_htrig, kbd_ttrig
+ kbd_colon, kbd_result, kbd_trig
};
int auto_quit = 1;
int exit_status = EXIT_FAILURE;
@@ -655,14 +655,8 @@ int main(int argc, char **argv)
cmdbuf[1] = 0;
curcmd = cmdbuf;
break;
- case '/':
- kbd_state = kbd_htrig;
- cmdbuf[0] = ch;
- cmdbuf[1] = 0;
- curcmd = cmdbuf;
- break;
- case '?':
- kbd_state = kbd_ttrig;
+ case '/': case '?':
+ kbd_state = kbd_trig;
cmdbuf[0] = ch;
cmdbuf[1] = 0;
curcmd = cmdbuf;
@@ -688,19 +682,17 @@ int main(int argc, char **argv)
goto fakecmd;
}
break;
- case kbd_htrig:
- case kbd_ttrig:
+ case kbd_trig:
if (trigpat) {
regfree(&trigex);
dsdrop(trigpat);
- trigpat = 0;
+ trigpat = 0;
}
stat &= ~(stat_htmode | stat_ttmode);
// fallthrough
case kbd_colon:
switch (ch) {
case ESC: case CR: case ctrl('c'):
- stat |= stat_dirty;
if (ch == CR) {
if (kbd_state == kbd_colon && cmdbuf[1]) {
execute(cmdbuf, &stat);
@@ -722,7 +714,7 @@ int main(int argc, char **argv)
trigpat = 0;
break;
}
- stat |= (kbd_state == kbd_htrig ? stat_htmode : stat_ttmode);
+ stat |= (cmdbuf[0] == '/' ? stat_htmode : stat_ttmode);
}
}
kbd_state = kbd_cmd;
@@ -734,7 +726,6 @@ int main(int argc, char **argv)
if (len == 1) {
kbd_state = kbd_cmd;
curcmd = 0;
- stat |= stat_dirty;
} else {
cmdbuf[--len] = 0;
}
@@ -773,7 +764,7 @@ int main(int argc, char **argv)
redraw(circbuf, nlines, hpos, columns, stat, curcmd);
stat &= ~stat_dirty;
} else switch (kbd_state) {
- case kbd_colon: case kbd_htrig: case kbd_ttrig: case kbd_result:
+ case kbd_colon: case kbd_trig: case kbd_result: case kbd_cmd:
clrline();
drawstatus(columns, stat, curcmd);
}