diff options
author | Rob Landley <rob@landley.net> | 2012-02-18 18:09:14 -0600 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2012-02-18 18:09:14 -0600 |
commit | f42e11b6712f7bd17d1ee2e548f54a2f6d9aed46 (patch) | |
tree | f1c0efa3f4f0531ed82a981c5bfff09a7fda304b /toys/pidof.c | |
parent | 4797bc28df99576a09f39a6e808d9c8e3f05311f (diff) | |
download | toybox-f42e11b6712f7bd17d1ee2e548f54a2f6d9aed46.tar.gz |
Cleanups to pidof (including some global infrastructure shared with killall).
Diffstat (limited to 'toys/pidof.c')
-rw-r--r-- | toys/pidof.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/toys/pidof.c b/toys/pidof.c index 329b0084..d8f24be8 100644 --- a/toys/pidof.c +++ b/toys/pidof.c @@ -5,9 +5,8 @@ * Copyright 2012 Andreas Heck <aheck@gmx.de> * * Not in SUSv4. - * See http://opengroup.org/onlinepubs/9699919799/utilities/ -USE_PIDOF(NEWTOY(pidof, "", TOYFLAG_USR|TOYFLAG_BIN)) +USE_PIDOF(NEWTOY(pidof, "<1", TOYFLAG_USR|TOYFLAG_BIN)) config PIDOF bool "pidof" @@ -20,31 +19,14 @@ config PIDOF #include "toys.h" -DEFINE_GLOBALS( - int matched; -) -#define TT this.pidof - - -static void print_pid (const char *pid) { - if (TT.matched) putchar(' '); - fputs(pid, stdout); - TT.matched = 1; +static void print_pid(pid_t pid) { + xprintf("%s%ld", toys.exitval ? "" : " ", (long)pid); + toys.exitval = 0; } void pidof_main(void) { - int err; - - TT.matched = 0; - - if (!toys.optargs) exit(1); - - err = for_each_pid_with_name_in(toys.optargs, print_pid); - if (err) exit(1); - - if (!TT.matched) - exit(1); - else - putchar('\n'); + toys.exitval = 1; + for_each_pid_with_name_in(toys.optargs, print_pid); + if (!toys.exitval) xputc('\n'); } |