diff options
-rw-r--r-- | pw.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -653,7 +653,7 @@ int main(int argc, char **argv) for (unsigned stat = stat_dirty, hpos = 0, kbd_state = kbd_cmd, kbd_prev = kbd_cmd, lasttime = ~0U, - work = 1000, histpos = 0; + workbout = 1024, work = workbout, histpos = 0; kbd_state != kbd_exit ;) { int force = 0, nfds = 2, pollms = poll_interval; @@ -759,7 +759,7 @@ int main(int argc, char **argv) if (pollms == 0 && !force && work-- > 0) continue; - work = 1000; + work = workbout; if (!force) { @@ -794,10 +794,14 @@ int main(int argc, char **argv) drawstatus(columns, stat, curcmd); } } + work = workbout += workbout / 4; } else { if ((pe[0].revents)) { int ch = getc(tty); + if (workbout > 16) + work = workbout /= 2; + if (ch == ctrl('z')) { ttyset(ttyfd, &tty_saved); kill(0, SIGTSTP); @@ -1049,6 +1053,8 @@ int main(int argc, char **argv) clrline(); drawstatus(columns, stat, curcmd); } + } else { + work = workbout += workbout / 4; } } } |