Index: ossp-pkg/path/path_self.c RCS File: /v/ossp/cvs/ossp-pkg/path/path_self.c,v rcsdiff -q -kk '-r1.1' '-r1.2' -u '/v/ossp/cvs/ossp-pkg/path/path_self.c,v' 2>/dev/null --- path_self.c 2002/08/23 15:33:18 1.1 +++ path_self.c 2002/08/26 18:40:33 1.2 @@ -80,6 +80,18 @@ return PATH_OK; } + /* else search for /proc entries (at least possible under Linux and FreeBSD) */ + if ((l = readlink("/proc/self/exe", res_buf, res_size-1)) == -1) + l = readlink("/proc/curproc/file", res_buf, res_size-1); + if (l > 0) { + if (res_buf[l-1] == '\0') + l--; + res_buf[l] = '\0'; + if (strcmp(res_buf, "unknown") != 0) + if (path_resolve(res_buf, res_size, res_buf) == NULL) + return PATH_ERR_SYS; + } + /* else search argv[0] in $PATH */ if ((path = getenv("PATH")) == NULL) path = PATH_DEFAULT;