diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 6cce5428d..727817b3b 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,7 @@ +2009-12-17 Christopher Faylor + + * ps.cc (main): Return 0 if pid found. + 2009-12-16 Corinna Vinschen * regtool.cc: Throughout, convert all registry calls to wide char diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc index bd7879bf6..0b317d2d8 100644 --- a/winsup/utils/ps.cc +++ b/winsup/utils/ps.cc @@ -258,6 +258,7 @@ main (int argc, char *argv[]) { external_pinfo *p; int aflag, lflag, fflag, sflag, uid, proc_id; + bool found_proc_id = true; cygwin_getinfo_types query = CW_GETPINFO; const char *dtitle = " PID TTY STIME COMMAND\n"; const char *dfmt = "%7d%4s%10s %s\n"; @@ -299,6 +300,7 @@ main (int argc, char *argv[]) case 'p': proc_id = atoi (optarg); aflag = 1; + found_proc_id = false; break; case 's': sflag = 1; @@ -369,6 +371,8 @@ main (int argc, char *argv[]) { if ((proc_id > 0) && (p->pid != proc_id)) continue; + else + found_proc_id = true; if (aflag) /* nothing to do */; @@ -499,6 +503,5 @@ main (int argc, char *argv[]) } (void) cygwin_internal (CW_UNLOCK_PINFO); - return 0; + return found_proc_id ? 0 : 1; } -