diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-05-06 20:55:19 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-05-06 20:55:19 -0700 |
commit | e7501de4829c9563a447618995f289b2f120c917 (patch) | |
tree | ad73eb1f8496f207e820e59f37c445cf1cf87529 | |
parent | 4ecdc68f776c96e14405f269aad1dce5a15bef8a (diff) | |
download | pw-e7501de4829c9563a447618995f289b2f120c917.tar.gz pw-e7501de4829c9563a447618995f289b2f120c917.tar.bz2 pw-e7501de4829c9563a447618995f289b2f120c917.zip |
Fix work overflow. Also increase max workbout to 4096.
-rw-r--r-- | pw.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -65,6 +65,7 @@ #define maxgrep 64 #define maxtrig 100 #define snhistsize 20 +#define workmax 4096 enum status_flags { stat_dirty = 1, // display needs refresh @@ -1036,6 +1037,7 @@ int main(int argc, char **argv) for (unsigned kbd_state = kbd_cmd, kbd_prev = kbd_cmd, lasttime = ~0U, workbout = 1024, work = workbout, histpos = 0, cmdcount = UINT_MAX; + workbout = workmax, work = workbout, histpos = 0, kbd_state != kbd_exit ;) { int force = 0, nfds = 2, pollms = poll_interval; @@ -1219,7 +1221,8 @@ int main(int argc, char **argv) drawstatus(&pw); } } - work = workbout += workbout / 4; + if (workbout < workmax) + work = workbout += workbout / 4; } else { if ((pe[0].revents)) { int ch = getc(tty); @@ -1641,7 +1644,8 @@ int main(int argc, char **argv) drawstatus(&pw); } } else { - work = workbout += workbout / 4; + if (workbout < workmax) + work = workbout += workbout / 4; } } } |