* path.h (path_conv::operator char *): Delete.
(path_conv::operator const char *): Delete. * dlfcn.cc: Throughout, replace path_conv::operator char * and path_conv::operator const char * by call to path_conv::get_win32 for easier transition to UNICODE_PATHs. * fhandler_socket.cc: Ditto. * hookapi.cc: Ditto. * path.cc: Ditto. * spawn.cc: Ditto. * syscalls.cc: Ditto. * uinfo.cc: Ditto.
This commit is contained in:
		@@ -82,11 +82,11 @@ perhaps_suffix (const char *prog, path_conv& buf, int& err, unsigned opt)
 | 
			
		||||
      ext = NULL;
 | 
			
		||||
    }
 | 
			
		||||
  else if (buf.known_suffix)
 | 
			
		||||
    ext = (char *) buf + (buf.known_suffix - buf.get_win32 ());
 | 
			
		||||
    ext = buf.get_win32 () + (buf.known_suffix - buf.get_win32 ());
 | 
			
		||||
  else
 | 
			
		||||
    ext = strchr (buf, '\0');
 | 
			
		||||
    ext = strchr (buf.get_win32 (), '\0');
 | 
			
		||||
 | 
			
		||||
  debug_printf ("buf %s, suffix found '%s'", (char *) buf, ext);
 | 
			
		||||
  debug_printf ("buf %s, suffix found '%s'", (char *) buf.get_win32 (), ext);
 | 
			
		||||
  return ext;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -104,7 +104,7 @@ find_exec (const char *name, path_conv& buf, const char *mywinenv,
 | 
			
		||||
{
 | 
			
		||||
  const char *suffix = "";
 | 
			
		||||
  debug_printf ("find_exec (%s)", name);
 | 
			
		||||
  const char *retval = buf;
 | 
			
		||||
  const char *retval = buf.get_win32 ();
 | 
			
		||||
  char tmp[CYG_MAX_PATH];
 | 
			
		||||
  const char *posix = (opt & FE_NATIVE) ? NULL : name;
 | 
			
		||||
  bool has_slash = strchr (name, '/');
 | 
			
		||||
@@ -200,9 +200,9 @@ find_exec (const char *name, path_conv& buf, const char *mywinenv,
 | 
			
		||||
 out:
 | 
			
		||||
  if (posix)
 | 
			
		||||
    buf.set_path (posix);
 | 
			
		||||
  debug_printf ("%s = find_exec (%s)", (char *) buf, name);
 | 
			
		||||
  debug_printf ("%s = find_exec (%s)", (char *) buf.get_win32 (), name);
 | 
			
		||||
  if (known_suffix)
 | 
			
		||||
    *known_suffix = suffix ?: strchr (buf, '\0');
 | 
			
		||||
    *known_suffix = suffix ?: strchr (buf.get_win32 (), '\0');
 | 
			
		||||
  if (!retval && err)
 | 
			
		||||
    set_errno (err);
 | 
			
		||||
  return retval;
 | 
			
		||||
@@ -367,7 +367,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
 | 
			
		||||
      real_path.check (prog_arg);
 | 
			
		||||
      one_line.add ("\"");
 | 
			
		||||
      if (!real_path.error)
 | 
			
		||||
	one_line.add (real_path);
 | 
			
		||||
	one_line.add (real_path.get_win32 ());
 | 
			
		||||
      else
 | 
			
		||||
	one_line.add (argv[0]);
 | 
			
		||||
      one_line.add ("\"");
 | 
			
		||||
@@ -375,14 +375,14 @@ spawn_guts (const char * prog_arg, const char *const *argv,
 | 
			
		||||
      one_line.add (argv[1]);
 | 
			
		||||
      one_line.add (" ");
 | 
			
		||||
      one_line.add (argv[2]);
 | 
			
		||||
      strcpy (real_path, argv[0]);
 | 
			
		||||
      strcpy (real_path.get_win32 (), argv[0]);
 | 
			
		||||
      null_app_name = true;
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      if (wascygexec)
 | 
			
		||||
	newargv.dup_all ();
 | 
			
		||||
      else if (!one_line.fromargv (newargv, real_path, real_path.iscygexec ()))
 | 
			
		||||
      else if (!one_line.fromargv (newargv, real_path.get_win32 (), real_path.iscygexec ()))
 | 
			
		||||
	{
 | 
			
		||||
	  res = -1;
 | 
			
		||||
	  goto out;
 | 
			
		||||
@@ -459,7 +459,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
 | 
			
		||||
      && (!ch.iscygwin () || mode != _P_OVERLAY || cygheap->fdtab.need_fixup_before ()))
 | 
			
		||||
    c_flags |= CREATE_SUSPENDED;
 | 
			
		||||
 | 
			
		||||
  runpath = null_app_name ? NULL : (const char *) real_path;
 | 
			
		||||
  runpath = null_app_name ? NULL : real_path.get_win32 ();
 | 
			
		||||
 | 
			
		||||
  syscall_printf ("null_app_name %d (%s, %.9500s)", null_app_name, runpath, one_line.buf);
 | 
			
		||||
 | 
			
		||||
@@ -597,7 +597,7 @@ loop:
 | 
			
		||||
      myself->dwProcessId = pi.dwProcessId;
 | 
			
		||||
      strace.execing = 1;
 | 
			
		||||
      myself.hProcess = hExeced = pi.hProcess;
 | 
			
		||||
      strcpy (myself->progname, real_path); // FIXME: race?
 | 
			
		||||
      strcpy (myself->progname, real_path.get_win32 ()); // FIXME: race?
 | 
			
		||||
      sigproc_printf ("new process name %s", myself->progname);
 | 
			
		||||
      /* If wr_proc_pipe doesn't exist then this process was not started by a cygwin
 | 
			
		||||
	 process.  So, we need to wait around until the process we've just "execed"
 | 
			
		||||
@@ -638,7 +638,7 @@ loop:
 | 
			
		||||
      child->dwProcessId = pi.dwProcessId;
 | 
			
		||||
      child.hProcess = pi.hProcess;
 | 
			
		||||
 | 
			
		||||
      strcpy (child->progname, real_path);
 | 
			
		||||
      strcpy (child->progname, real_path.get_win32 ());
 | 
			
		||||
      /* FIXME: This introduces an unreferenced, open handle into the child.
 | 
			
		||||
	 The purpose is to keep the pid shared memory open so that all of
 | 
			
		||||
	 the fields filled out by child.remember do not disappear and so there
 | 
			
		||||
@@ -910,7 +910,7 @@ av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
 | 
			
		||||
  bool exeext = strcasematch (ext, ".exe");
 | 
			
		||||
  if (exeext && real_path.iscygexec () || strcasematch (ext, ".bat"))
 | 
			
		||||
    return 0;
 | 
			
		||||
  if (!*ext && ((p = ext - 4) > (char *) real_path)
 | 
			
		||||
  if (!*ext && ((p = ext - 4) > real_path.get_win32 ())
 | 
			
		||||
      && (strcasematch (p, ".bat") || strcasematch (p, ".cmd")
 | 
			
		||||
	  || strcasematch (p, ".btm")))
 | 
			
		||||
    return 0;
 | 
			
		||||
@@ -920,7 +920,7 @@ av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
 | 
			
		||||
      char *arg1 = NULL;
 | 
			
		||||
      char *ptr, *buf;
 | 
			
		||||
 | 
			
		||||
      HANDLE h = CreateFile (real_path, GENERIC_READ,
 | 
			
		||||
      HANDLE h = CreateFile (real_path.get_win32 (), GENERIC_READ,
 | 
			
		||||
			       FILE_SHARE_READ | FILE_SHARE_WRITE,
 | 
			
		||||
			       &sec_none_nih, OPEN_EXISTING,
 | 
			
		||||
			       FILE_ATTRIBUTE_NORMAL, 0);
 | 
			
		||||
@@ -966,7 +966,7 @@ av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
 | 
			
		||||
	  }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      debug_printf ("%s is possibly a script", (char *) real_path);
 | 
			
		||||
      debug_printf ("%s is possibly a script", real_path.get_win32 ());
 | 
			
		||||
 | 
			
		||||
      ptr = buf;
 | 
			
		||||
      if (*ptr++ == '#' && *ptr++ == '!')
 | 
			
		||||
@@ -1019,7 +1019,7 @@ just_shell:
 | 
			
		||||
      /* FIXME: This should not be using FE_NATIVE.  It should be putting
 | 
			
		||||
	 the posix path on the argv list. */
 | 
			
		||||
      find_exec (pgm, real_path, "PATH=", FE_NATIVE, &ext);
 | 
			
		||||
      unshift (real_path, 1);
 | 
			
		||||
      unshift (real_path.get_win32 (), 1);
 | 
			
		||||
    }
 | 
			
		||||
  return 0;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user