aboutsummaryrefslogtreecommitdiffstats
path: root/pw.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-06 20:55:19 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-06 20:55:19 -0700
commite7501de4829c9563a447618995f289b2f120c917 (patch)
treead73eb1f8496f207e820e59f37c445cf1cf87529 /pw.c
parent4ecdc68f776c96e14405f269aad1dce5a15bef8a (diff)
downloadpw-e7501de4829c9563a447618995f289b2f120c917.tar.gz
pw-e7501de4829c9563a447618995f289b2f120c917.tar.bz2
pw-e7501de4829c9563a447618995f289b2f120c917.zip
Fix work overflow. Also increase max workbout to 4096.
Diffstat (limited to 'pw.c')
-rw-r--r--pw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/pw.c b/pw.c
index 49d7a24..5dddef3 100644
--- a/pw.c
+++ b/pw.c
@@ -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;
}
}
}