openbsd-ports/sysutils/proctools/patches/patch-pkill_pkill_c
lebel ab2982a2ca initial import of sysutils/proctools 0.3:
--
Submitted by James Devenish (j-devenish@users.sourceforge.net)
Modified by danh@

Proctools  provides  the  pgrep and pkill commands which can
scan for and send signals to processes that are  matched  by
command-line options.

The  pgrep  utility displays process IDs for those processes
that match the requirements specified on the command line.

The pkill utility sends a signal to process  IDs  for  those
processes  that match the requirements specified on the com-
mand line.

WWW: http://sourceforge.net/projects/proctools
2003-01-06 18:03:44 +00:00

77 lines
2.1 KiB
Plaintext

$OpenBSD: patch-pkill_pkill_c,v 1.1.1.1 2003/01/06 18:03:44 lebel Exp $
Support the -V flag.
Fix -signal support.
Fix return values.
--- pkill/pkill.c.orig Tue May 22 06:33:42 2001
+++ pkill/pkill.c Mon Jan 6 23:14:31 2003
@@ -1,5 +1,5 @@
/*
- * pkill [-s <signal>|-<signal>] [-fnvx] [-g <pgrplist>] [-G <gidlist>]
+ * pkill [-s <signal>|-<signal>] [-fnvVx] [-g <pgrplist>] [-G <gidlist>]
* [-P <ppidlist>] [-t <termlist>] [-u <euidlist>]
* [-U <uidlist>] [<pattern>]
*
@@ -14,6 +14,7 @@
* -u <euidlist> : matches effective uids
* -U <uidlist> : matches real uids
* -v : invert match
+ * -V : invert flags but not the pattern
* -x : exact match (default regex)
*
* <pattern> : regex (or exact string if -x) to match
@@ -52,7 +53,7 @@ main(argc, argv)
struct termlist *terml;
struct uidlist *euidl, *uidl;
int ch;
- int fflag, nflag, vflag, xflag;
+ int fflag, nflag, vflag, Vflag, xflag;
int numsig;
size_t len;
char *newarg;
@@ -63,7 +64,7 @@ main(argc, argv)
pgroupl = ppidl = sidl = NULL;
terml = NULL;
euidl = uidl = NULL;
- fflag = xflag = nflag = vflag = FALSE;
+ fflag = xflag = nflag = vflag = Vflag = FALSE;
numsig = SIGTERM;
newarg = NULL;
@@ -79,7 +80,7 @@ main(argc, argv)
len = strlen(*argv) + 3;
if ((newarg = calloc(len, sizeof(char))) == NULL)
err(EX_OSERR, NULL);
- snprintf(newarg, len, "-S%s", *argv);
+ snprintf(newarg, len, "-s%s", *argv);
--*argv;
*argv = newarg;
}
@@ -145,6 +146,9 @@ main(argc, argv)
case 'v':
vflag = TRUE;
break;
+ case 'V':
+ Vflag = TRUE;
+ break;
case 'x':
xflag = TRUE;
break;
@@ -165,7 +169,7 @@ main(argc, argv)
usage();
}
- getProcList (&proclist, euidl, uidl, gidl, ppidl, pgroupl, terml, fflag, nflag, vflag, xflag, ((argc > 0)?argv[0]:NULL));
+ getProcList (&proclist, euidl, uidl, gidl, ppidl, pgroupl, terml, fflag, nflag, vflag, Vflag, xflag, ((argc > 0)?argv[0]:NULL));
temppl = proclist;
while (temppl != NULL) {
@@ -174,7 +178,7 @@ main(argc, argv)
temppl = temppl->next;
}
- exit(EX_OK);
+ return proclist == NULL ? 1 : EX_OK;
}
/*