mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 04:49:25 +08:00
* 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:
parent
29fec364c0
commit
29992bf3da
@ -1,3 +1,17 @@
|
||||
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* 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.
|
||||
|
||||
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING.
|
||||
|
@ -72,7 +72,7 @@ get_full_path_of_dll (const char* str, char *name)
|
||||
real_filename.check (name, PC_SYM_FOLLOW | PC_NOFULL | PC_NULLEMPTY); /* Convert */
|
||||
|
||||
if (!real_filename.error)
|
||||
ret = strcpy (name, real_filename);
|
||||
ret = strcpy (name, real_filename.get_win32 ());
|
||||
else
|
||||
{
|
||||
set_errno (real_filename.error);
|
||||
|
@ -708,7 +708,9 @@ fhandler_socket::fchmod (mode_t mode)
|
||||
fhandler_disk_file fh (pc);
|
||||
fh.get_device () = FH_FS;
|
||||
int ret = fh.fchmod (adjust_socket_file_mode (mode));
|
||||
SetFileAttributes (pc, GetFileAttributes (pc) | FILE_ATTRIBUTE_SYSTEM);
|
||||
SetFileAttributesA (pc.get_win32 (),
|
||||
GetFileAttributesA (pc.get_win32 ())
|
||||
| FILE_ATTRIBUTE_SYSTEM);
|
||||
return ret;
|
||||
}
|
||||
set_errno (EBADF);
|
||||
|
@ -219,7 +219,7 @@ ld_preload ()
|
||||
for (p = strtok_r (s, ":\t\n", &here); p; p = strtok_r (NULL, ":\t\n", &here))
|
||||
{
|
||||
path_conv lib (p);
|
||||
if (!LoadLibrary (lib))
|
||||
if (!LoadLibrary (lib.get_win32 ()))
|
||||
{
|
||||
__seterrno ();
|
||||
api_fatal ("error while loading shared libraries: %s: "
|
||||
|
@ -2929,7 +2929,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
{
|
||||
strcpy (w32oldpath, oldpath);
|
||||
create_how = CREATE_ALWAYS;
|
||||
SetFileAttributes (win32_path, FILE_ATTRIBUTE_NORMAL);
|
||||
SetFileAttributes (win32_path.get_win32 (), FILE_ATTRIBUTE_NORMAL);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2952,7 +2952,8 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
win32_oldpath.check (oldpath, PC_SYM_NOFOLLOW,
|
||||
transparent_exe ? stat_suffixes : NULL);
|
||||
if (win32_oldpath.error != ENOENT)
|
||||
strcpy (use_winsym ? reloldpath : w32oldpath, win32_oldpath);
|
||||
strcpy (use_winsym ? reloldpath : w32oldpath,
|
||||
win32_oldpath.get_win32 ());
|
||||
}
|
||||
else if (!use_winsym)
|
||||
strcpy (w32oldpath, reloldpath);
|
||||
@ -2960,7 +2961,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
{
|
||||
win32_oldpath.check (oldpath, PC_SYM_NOFOLLOW,
|
||||
transparent_exe ? stat_suffixes : NULL);
|
||||
strcpy (w32oldpath, win32_oldpath);
|
||||
strcpy (w32oldpath, win32_oldpath.get_win32 ());
|
||||
}
|
||||
if (cp)
|
||||
{
|
||||
@ -2972,7 +2973,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
{
|
||||
win32_oldpath.check (oldpath, PC_SYM_NOFOLLOW,
|
||||
transparent_exe ? stat_suffixes : NULL);
|
||||
strcpy (w32oldpath, win32_oldpath);
|
||||
strcpy (w32oldpath, win32_oldpath.get_win32 ());
|
||||
}
|
||||
create_how = CREATE_NEW;
|
||||
}
|
||||
@ -2981,7 +2982,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
set_security_attribute (S_IFLNK | STD_RBITS | STD_WBITS,
|
||||
&sa, sd);
|
||||
|
||||
h = CreateFile (win32_path, GENERIC_WRITE, 0, &sa, create_how,
|
||||
h = CreateFile (win32_path.get_win32 (), GENERIC_WRITE, 0, &sa, create_how,
|
||||
FILE_ATTRIBUTE_NORMAL, 0);
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
__seterrno ();
|
||||
@ -3066,7 +3067,7 @@ symlink_worker (const char *oldpath, const char *newpath, bool use_winsym,
|
||||
CloseHandle (h);
|
||||
DWORD attr = use_winsym ? FILE_ATTRIBUTE_READONLY
|
||||
: FILE_ATTRIBUTE_SYSTEM;
|
||||
SetFileAttributes (win32_path, attr);
|
||||
SetFileAttributes (win32_path.get_win32 (), attr);
|
||||
|
||||
res = 0;
|
||||
}
|
||||
@ -3759,7 +3760,6 @@ hash_path_name (__ino64_t hash, PUNICODE_STRING name)
|
||||
hash = L'\\' + (hash << 6) + (hash << 16) - hash;
|
||||
}
|
||||
|
||||
hashit:
|
||||
/* Build up hash. Name is already normalized */
|
||||
USHORT len = name->Length / sizeof (WCHAR);
|
||||
for (USHORT idx = 0; idx < len; ++idx)
|
||||
@ -3834,7 +3834,7 @@ chdir (const char *in_dir)
|
||||
|
||||
int res = -1;
|
||||
bool doit = false;
|
||||
const char *native_dir = path, *posix_cwd = NULL;
|
||||
const char *native_dir = path.get_win32 (), *posix_cwd = NULL;
|
||||
int devn = path.get_devn ();
|
||||
if (!isvirtual_dev (devn))
|
||||
{
|
||||
@ -3918,7 +3918,8 @@ cygwin_conv_to_win32_path (const char *path, char *win32_path)
|
||||
}
|
||||
|
||||
|
||||
strcpy (win32_path, strcmp ((char *) p, ".\\") == 0 ? "." : (char *) p);
|
||||
strcpy (win32_path,
|
||||
strcmp (p.get_win32 (), ".\\") == 0 ? "." : p.get_win32 ());
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3933,7 +3934,7 @@ cygwin_conv_to_full_win32_path (const char *path, char *win32_path)
|
||||
return -1;
|
||||
}
|
||||
|
||||
strcpy (win32_path, p);
|
||||
strcpy (win32_path, p.get_win32 ());
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -4506,7 +4507,7 @@ etc::dir_changed (int n)
|
||||
if (!changed_h)
|
||||
{
|
||||
path_conv pwd ("/etc");
|
||||
changed_h = FindFirstChangeNotification (pwd, FALSE,
|
||||
changed_h = FindFirstChangeNotification (pwd.get_win32 (), FALSE,
|
||||
FILE_NOTIFY_CHANGE_LAST_WRITE
|
||||
| FILE_NOTIFY_CHANGE_FILE_NAME);
|
||||
#ifdef DEBUGGING
|
||||
|
@ -252,8 +252,6 @@ class path_conv
|
||||
POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &attr,
|
||||
SECURITY_ATTRIBUTES &sa);
|
||||
PWCHAR get_wide_win32_path (PWCHAR wc);
|
||||
operator char *() {return path;}
|
||||
operator const char *() {return path;}
|
||||
operator DWORD &() {return fileattr;}
|
||||
operator int () {return fileattr; }
|
||||
path_conv &operator =(path_conv &pc)
|
||||
|
@ -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;
|
||||
|
||||
|
@ -1125,7 +1125,7 @@ umask (mode_t mask)
|
||||
int
|
||||
chmod_device (path_conv& pc, mode_t mode)
|
||||
{
|
||||
return mknod_worker (pc, pc.dev.mode & S_IFMT, mode, pc.dev.major, pc.dev.minor);
|
||||
return mknod_worker (pc.get_win32 (), pc.dev.mode & S_IFMT, mode, pc.dev.major, pc.dev.minor);
|
||||
}
|
||||
|
||||
/* chmod: POSIX 5.6.4.1 */
|
||||
@ -2395,7 +2395,7 @@ mknod32 (const char *path, mode_t mode, __dev32_t dev)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return mknod_worker (w32path, type, mode, major, minor);
|
||||
return mknod_worker (w32path.get_win32 (), type, mode, major, minor);
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
@ -2702,7 +2702,7 @@ chroot (const char *newroot)
|
||||
else
|
||||
{
|
||||
getwinenv("PATH="); /* Save the native PATH */
|
||||
cygheap->root.set (path.normalized_path, path);
|
||||
cygheap->root.set (path.normalized_path, path.get_win32 ());
|
||||
ret = 0;
|
||||
}
|
||||
|
||||
|
@ -518,7 +518,7 @@ pwdgrp::load (const char *posix_fname)
|
||||
curr_lines = 0;
|
||||
|
||||
pc.check (posix_fname);
|
||||
etc_ix = etc::init (etc_ix, pc);
|
||||
etc_ix = etc::init (etc_ix, pc.get_win32 ());
|
||||
|
||||
paranoid_printf ("%s", posix_fname);
|
||||
|
||||
@ -529,8 +529,9 @@ pwdgrp::load (const char *posix_fname)
|
||||
}
|
||||
else
|
||||
{
|
||||
HANDLE fh = CreateFile (pc, GENERIC_READ, FILE_SHARE_VALID_FLAGS, NULL,
|
||||
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
|
||||
HANDLE fh = CreateFile (pc.get_win32 (), GENERIC_READ,
|
||||
FILE_SHARE_VALID_FLAGS, NULL, OPEN_EXISTING,
|
||||
FILE_ATTRIBUTE_NORMAL, 0);
|
||||
if (fh == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
paranoid_printf ("%s CreateFile failed, %E");
|
||||
|
Loading…
x
Reference in New Issue
Block a user