diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-04-28 07:36:30 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-04-28 07:36:30 -0700 |
commit | bc781bd17ee2cc996a57be3b3661236c5905d026 (patch) | |
tree | 444bc2f3a61f432f683696cbd3fd8db1c92fef72 | |
parent | 7ab92ff5a136e5ba0ba2bdba969c3e80cab9ffd4 (diff) | |
download | pw-bc781bd17ee2cc996a57be3b3661236c5905d026.tar.gz pw-bc781bd17ee2cc996a57be3b3661236c5905d026.tar.bz2 pw-bc781bd17ee2cc996a57be3b3661236c5905d026.zip |
Merge kbd_ttrig and kbd_htrig; simplify status refresh.
-rw-r--r-- | pw.c | 23 |
1 files changed, 7 insertions, 16 deletions
@@ -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); } |