Fix process pid detection in tdefontinst on openbsd

pull/2/head
François Andriot 11 years ago committed by Slávek Banko
parent 180cd2fc18
commit a501cd747c

@ -55,6 +55,7 @@
Linux Tested on Linux 2.4 Linux Tested on Linux 2.4
FreeBSD Tested on FreeBSD 5.1 by Brian Ledbetter <brian@shadowcom.net> FreeBSD Tested on FreeBSD 5.1 by Brian Ledbetter <brian@shadowcom.net>
NetBSD NetBSD
OpenBSD
Irix Irix
Solaris Tested on Solaris 8 x86 by Torsten Kasch <tk@Genetik.Uni-Bielefeld.DE> Solaris Tested on Solaris 8 x86 by Torsten Kasch <tk@Genetik.Uni-Bielefeld.DE>
HP-UX Tested on HP-UX B.11.11 U 9000/800 HP-UX Tested on HP-UX B.11.11 U 9000/800
@ -160,7 +161,7 @@ unsigned int kfi_getPid(const char *proc, unsigned int ppid)
return error ? 0 : pid; return error ? 0 : pid;
} }
#elif defined OS_FreeBSD || defined OS_NetBSD || defined __FreeBSD__ || defined __NetBSD__ || defined OS_Darwin #elif defined OS_FreeBSD || defined OS_NetBSD || defined __FreeBSD__ || defined __NetBSD__ || defined OS_Darwin || defined OS_OpenBSD || defined __OpenBSD__
#include <ctype.h> #include <ctype.h>
#include <dirent.h> #include <dirent.h>
@ -202,6 +203,8 @@ unsigned int kfi_getPid(const char *proc, unsigned int ppid)
mib[3] = p[num].ki_pid; mib[3] = p[num].ki_pid;
#elif defined(__DragonFly__) && __DragonFly_version >= 190000 #elif defined(__DragonFly__) && __DragonFly_version >= 190000
mib[3] = p[num].kp_pid; mib[3] = p[num].kp_pid;
#elif defined(__OpenBSD__)
mib[3] = p[num].p_pid;
#else #else
mib[3] = p[num].kp_proc.p_pid; mib[3] = p[num].kp_proc.p_pid;
#endif #endif
@ -225,14 +228,21 @@ unsigned int kfi_getPid(const char *proc, unsigned int ppid)
pid=p[num].kp_pid; pid=p[num].kp_pid;
#else #else
#if defined(__DragonFly__) #if defined(__DragonFly__)
if(proc_p.kp_eproc.e_ppid==ppid && p[num].kp_thread.td_comm && 0==strcmp(p[num].kp_thread.td_comm, proc)) if(proc_p.kp_eproc.e_ppid==ppid && p[num].kp_thread.td_comm && 0==strcmp(p[num].kp_thread.td_comm, proc))
#elif defined(__OpenBSD__)
if(proc_p.p_ppid==ppid && p[num].p_comm && 0==strcmp(p[num].p_comm, proc))
#else #else
if(proc_p.kp_eproc.e_ppid==ppid && p[num].kp_proc.p_comm && 0==strcmp(p[num].kp_proc.p_comm, proc)) if(proc_p.kp_eproc.e_ppid==ppid && p[num].kp_proc.p_comm && 0==strcmp(p[num].kp_proc.p_comm, proc))
#endif #endif
if(pid) if(pid) {
error=true; error=true;
else } else {
#if defined(__OpenBSD__)
pid=p[num].p_pid;
#else
pid=p[num].kp_proc.p_pid; pid=p[num].kp_proc.p_pid;
#endif
}
#endif #endif
} }
} }

Loading…
Cancel
Save