summaryrefslogtreecommitdiffstats
path: root/osdep-freebsd.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2009-02-08 12:33:03 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2009-02-08 12:33:03 +0000
commit091c08fcaa34070ebbe0017bc9dbabdabc04da7e (patch)
tree579a3f3130376b2d8f5c11410352b377876a1e6b /osdep-freebsd.c
parent505b071a12a5c2703cf1667e2ede0f44439bfe8f (diff)
Use both pgrp.
Diffstat (limited to 'osdep-freebsd.c')
-rw-r--r--osdep-freebsd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/osdep-freebsd.c b/osdep-freebsd.c
index 8170a6c2..7bb31449 100644
--- a/osdep-freebsd.c
+++ b/osdep-freebsd.c
@@ -1,4 +1,4 @@
-/* $Id: osdep-freebsd.c,v 1.9 2009-02-08 12:31:02 nicm Exp $ */
+/* $Id: osdep-freebsd.c,v 1.10 2009-02-08 12:33:03 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -42,9 +42,9 @@ char *get_proc_argv0(pid_t);
((p)->ki_stat == SSTOP || (p)->ki_stat == SZOMB)
char *
-get_argv0(__attribute__ ((unused)) int fd, char *tty)
+get_argv0(int fd, char *tty)
{
- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_TTY, 0 };
+ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PGRP, 0 };
struct stat sb;
size_t len;
struct kinfo_proc *buf, *newbuf, *p, *bestp;
@@ -55,7 +55,8 @@ get_argv0(__attribute__ ((unused)) int fd, char *tty)
if (stat(tty, &sb) == -1)
return (NULL);
- mib[3] = sb.st_rdev;
+ if ((mib[3] = tcgetpgrp(fd)) == -1)
+ return (NULL);
retry:
if (sysctl(mib, nitems(mib), NULL, &len, NULL, 0) == -1)