* pinfo.h (pinfo::status_exit): Rename from former static function in pinfo.cc.

(pinfo::operator == (char *)): Remove unused operator.
* pinfo.cc (pinfo::status_exit): Move this function info pinfo class.  Use
progname from the pinfo rather than myself.  Be defensive when inspecting
procinfo.
This commit is contained in:
Christopher Faylor
2013-03-29 16:19:11 +00:00
parent 6fcb223858
commit bb93b7ab95
4 changed files with 25 additions and 6 deletions

View File

@@ -110,17 +110,23 @@ pinfo_init (char **envp, int envc)
debug_printf ("pid %d, pgid %d", myself->pid, myself->pgid);
}
static DWORD
status_exit (DWORD x)
DWORD
pinfo::status_exit (DWORD x)
{
switch (x)
{
case STATUS_DLL_NOT_FOUND:
{
char posix_prog[NT_MAX_PATH];
UNICODE_STRING uc;
RtlInitUnicodeString(&uc, myself->progname);
path_conv pc (&uc, PC_NOWARN);
path_conv pc;
if (!procinfo)
pc.check ("/dev/null");
else
{
UNICODE_STRING uc;
RtlInitUnicodeString(&uc, procinfo->progname);
pc.check (&uc, PC_NOWARN);
}
mount_table->conv_to_posix_path (pc.get_win32 (), posix_prog, 1);
small_printf ("%s: error while loading shared libraries: %s: cannot open shared object file: No such file or directory\n",
posix_prog, find_first_notloaded_dll (pc));