The following reply was made to PR bin/143558; it has been noted by GNATS.

From: Eitan Adler <eitanadlerl...@gmail.com>
To: bug-follo...@freebsd.org, eitanadlerl...@gmail.com
Cc:  
Subject: Re: bin/143558: [patch] Add verbose option to pkill(1)
Date: Sat, 27 Feb 2010 20:48:55 +0200

 Minor fix to my patch:
 
 My first patch had
 +      if (!didAction && !pgrep)
 which I changed to
 +      if (!didAction && !pgrep && longfmt)
 when I realized that the message that nothing happened would always be
 shown if -l was not specified
 
 
 Index: pkill.1
 ===================================================================
 --- pkill.1    (revision 203347)
 +++ pkill.1    (working copy)
 @@ -168,9 +168,9 @@
  If used in conjunction with
  .Fl f ,
  print the process ID and the full argument list for each matching process.
 -This option can only be used with the
 -.Nm pgrep
 -command.
 +If used in conjunction with the
 +.Nm pkill
 +command, it lists the signal sent as well.
  .It Fl n
  Select only the newest (most recently started) of the matching processes.
  .It Fl o
 Index: pkill.c
 ===================================================================
 --- pkill.c    (revision 203347)
 +++ pkill.c    (working copy)
 @@ -182,7 +182,7 @@
        pidfilelock = 0;
        execf = coref = _PATH_DEVNULL;
 
 -      while ((ch = getopt(argc, argv,
 "DF:G:ILM:N:P:SU:ad:fg:ij:lnos:t:u:vx")) != -1)
 +      while ((ch = getopt(argc, argv,
 "DF:G:ILM:N:P:SU:ad:fg:ilj:lnos:t:u:vx")) != -1)
                switch (ch) {
                case 'D':
                        debug_opt++;
 @@ -245,8 +245,6 @@
                        criteria = 1;
                        break;
                case 'l':
 -                      if (!pgrep)
 -                              usage();
                        longfmt = 1;
                        break;
                case 'n':
 @@ -528,16 +526,26 @@
        /*
         * Take the appropriate action for each matched process, if any.
         */
 +      int didAction = 0;
        for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) {
                if (PSKIP(kp))
                        continue;
                if (selected[i]) {
 +                      if (longfmt)
 +                      {
 +                              didAction = 1;
 +                              printf("kill -%d %d\n",signum,kp->ki_pid);
 +                      }
                        if (inverse)
                                continue;
                } else if (!inverse)
                        continue;
                rv |= (*action)(kp);
        }
 +      if (!didAction && !pgrep && longfmt)
 +      {
 +              printf("No matching processes belonging to you were found\n");
 +      }
 
        exit(rv ? STATUS_MATCH : STATUS_NOMATCH);
  }
 @@ -550,7 +558,7 @@
        if (pgrep)
                ustr = "[-LSfilnovx] [-d delim]";
        else
 -              ustr = "[-signal] [-ILfinovx]";
 +              ustr = "[-signal] [-ILfilnovx]";
 
        fprintf(stderr,
                "usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n"
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to