X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/679db5850a18040c653f8edc403dc0bd86eb07c9..b8af224e6169e1eec348e8af10b01ac2ebe54347:/unix/uxplink.c diff --git a/unix/uxplink.c b/unix/uxplink.c index 61b9426b..560ec386 100644 --- a/unix/uxplink.c +++ b/unix/uxplink.c @@ -593,7 +593,7 @@ int main(int argc, char **argv) int errors; int use_subsystem = 0; int got_host = FALSE; - long now; + unsigned long now; struct winsize size; fdlist = NULL; @@ -654,8 +654,11 @@ int main(int argc, char **argv) } else if (!strcmp(p, "-s")) { /* Save status to write to conf later. */ use_subsystem = 1; - } else if (!strcmp(p, "-V")) { + } else if (!strcmp(p, "-V") || !strcmp(p, "--version")) { version(); + } else if (!strcmp(p, "--help")) { + usage(); + exit(0); } else if (!strcmp(p, "-pgpfp")) { pgp_fingerprints(); exit(1); @@ -1016,12 +1019,17 @@ int main(int argc, char **argv) } do { - long next, ticks; + unsigned long next, then; + long ticks; struct timeval tv, *ptv; if (run_timers(now, &next)) { - ticks = next - GETTICKCOUNT(); - if (ticks < 0) ticks = 0; /* just in case */ + then = now; + now = GETTICKCOUNT(); + if (now - then > next - then) + ticks = 0; + else + ticks = next - now; tv.tv_sec = ticks / 1000; tv.tv_usec = ticks % 1000 * 1000; ptv = &tv;