summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/execline/getpid.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/execline/getpid.c b/src/execline/getpid.c
index 9bd7de5..058fe1b 100644
--- a/src/execline/getpid.c
+++ b/src/execline/getpid.c
@@ -9,12 +9,13 @@
#include <execline/execline.h>
-#define USAGE "getpid [ -E | -e ] variable prog..."
+#define USAGE "getpid [ -E | -e ] [ -P | -p ] variable prog..."
#define dieusage() strerr_dieusage(100, USAGE)
int main (int argc, char const *const *argv)
{
int doimport = 0 ;
+ int doppid = 0 ;
char fmt[PID_FMT] ;
PROG = "getpid" ;
{
@@ -27,6 +28,8 @@ int main (int argc, char const *const *argv)
{
case 'E' : doimport = 1 ; break ;
case 'e' : doimport = 0 ; break ;
+ case 'P' : doppid = 1 ; break ;
+ case 'p' : doppid = 0 ; break ;
default : dieusage() ;
}
}
@@ -35,6 +38,6 @@ int main (int argc, char const *const *argv)
if (argc < 2) dieusage() ;
if (!argv[0][0] || strchr(argv[0], '=')) strerr_dief1x(100, "invalid variable name") ;
- fmt[pid_fmt(fmt, getpid())] = 0 ;
+ fmt[pid_fmt(fmt, doppid ? getppid() : getpid())] = 0 ;
el_modif_and_exec(argv + 1, argv[0], fmt, doimport) ;
}