/*----- Help functions ----------------------------------------------------*/
static void usage(FILE *fp)
- { pquis(fp, "Usage: $ [-s SIG] SECONDS COMMAND [ARGUMENTS ...]\n"); }
+{
+ pquis(fp,
+ "Usage: $ [-K] [-b TIME] [-k TIME] [-s SIG] "
+ "TIME COMMAND [ARGUMENTS ...]\n");
+}
static void version(FILE *fp)
{ pquis(fp, "$ (version " VERSION ")\n"); }
usage(fp);
pquis(fp, "\n\
Run COMMAND, giving it the ARGUMENTS. If it fails to complete within the\n\
-specified number of SECONDS, kill it. Otherwise exit with the status it\n\
-returns.\n \
+specified number of TIME, kill it. Otherwise exit with the status it\n\
+returns.\n\
+\n\
+A TIME is a possibly fractional number followed by an optional unit\n\
+designator, which may be `s', `m', `h', or `d', for seconds, minutes,\n\
+hours, or days, respectively. The default units are seconds.\n\
\n\
Options:\n\
-h, --help Show this help text.\n\
-v, --version Show version string.\n\
-u, --usage Show a terse usage summary.\n\
\n\
+ -b, --bored-after=TIME Wait for TIME after sending SIGKILL.\n\
+ -k, --kill-after=TIME Wait for TIME after signal before sending SIGKILL.\n\
+ -K, --no-kill Don't send SIGKILL; just give up when bored.\n\
-s, --signal=SIG Send signal SIG to the command.\n\
");
}
ta = &t->ta[t->ip++];
switch (ta->act) {
case TA_MOAN:
- moan(ta->u.s);
+ moan("%s", ta->u.s);
break;
case TA_KILL:
kill(-t->kid, ta->u.i);