* external.cc (sync_winenv): Rename from "setup_winenv". Use same mechanism as

spawn to determine environment variables which should be converted back to
windows form.
(cygwin_internal): Reflect setup_winenv -> sync_winenv name change.
* include/sys/cygwin.h: Ditto.
This commit is contained in:
Christopher Faylor 2006-02-10 17:22:34 +00:00
parent 2bf61bfe9b
commit 9a08fd5a50
3 changed files with 45 additions and 25 deletions

View File

@ -1,3 +1,11 @@
2006-02-10 Christopher Faylor <cgf@timesys.com>
* external.cc (sync_winenv): Rename from "setup_winenv". Use same
mechanism as spawn to determine environment variables which should be
converted back to windows form.
(cygwin_internal): Reflect setup_winenv -> sync_winenv name change.
* include/sys/cygwin.h: Ditto.
2006-02-09 Corinna Vinschen <corinna@vinschen.de>
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Only set
@ -6,21 +14,21 @@
2006-02-07 Corinna Vinschen <corinna@vinschen.de>
* dtable.cc (handle_to_fn): Accomodate new argument order in call to
* dtable.cc (handle_to_fn): Accommodate new argument order in call to
sys_wcstombs.
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Call sys_wcstombs
instead of just wcstombs to accomodate OEM codepages.
instead of just wcstombs to accommodate OEM codepages.
* miscfuncs.cc (sys_wcstombs): Split len argument in source and target
length. Always 0-terminate result in target string.
* security.cc (lsa2wchar): Remove unused function.
(lsa2str): Ditto.
(get_lsa_srv_inf): Ditto.
(get_logon_server): Accomodate new argument order in call to
(get_logon_server): Accommodate new argument order in call to
sys_wcstombs.
(get_user_groups): Ditto.
(get_user_local_groups): Ditto.
(get_priv_list): Call sys_wcstombs directly instead of lsa2str.
* uinfo.cc (cygheap_user::ontherange): Accomodate new argument order
* uinfo.cc (cygheap_user::ontherange): Accommodate new argument order
in call to sys_wcstombs.
* winsup.h (sys_wcstombs): Change prototype to match new argument order.
@ -75,19 +83,19 @@
2006-02-05 Corinna Vinschen <corinna@vinschen.de>
* environ.cc (struct parse_thing): Add transparent_exe option.
* fhandler_disk_file.cc (fhandler_disk_file::link): Accomodate
* fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate
transparent_exe option. Add .exe suffix for links to executable files,
if transparent_exe is set.
* fhandler_process.cc (fhandler_process::fill_filebuf): Remove .exe
suffix if transparent_exe option is set.
* path.cc (symlink_worker): Accomodate transparent_exe option.
* path.cc (symlink_worker): Accommodate transparent_exe option.
(realpath): Don't tack on .exe suffix if transparent_exe is set.
* syscalls.cc (transparent_exe): New global variable.
(unlink): Accomodate transparent_exe option.
(unlink): Accommodate transparent_exe option.
(open): Ditto.
(link): Ditto.
(rename): Ditto. Maybe add .exe suffix when renaming executable files.
(pathconf): Accomodate transparent_exe option.
(pathconf): Accommodate transparent_exe option.
* winsup.h: Declare transparent_exe.
2006-02-05 Christopher Faylor <cgf@timesys.com>
@ -284,7 +292,7 @@
and readdir_9x.
* fhandler_disk_file.cc (path_conv::hasgood_inode): New method to
evaluate if a filesystem has reliable inode numbers.
(fhandler_base::fstat_by_handle): Accomodate structure member name
(fhandler_base::fstat_by_handle): Accommodate structure member name
change from IndexNumber to FileId.
(fhandler_base::fstat_helper): Call hasgood_inode here.
(fhandler_disk_file::opendir): Call fhaccess only for real files.
@ -299,7 +307,7 @@
(fhandler_disk_file::readdir): Move old functionality to readdir_9x.
Call readdir_9x when on 9x/Me. Implement NT specific readdir here.
(fhandler_disk_file::readdir_9x): Move 9x specific readdir here.
(fhandler_disk_file::seekdir): Accomodate new NT readdir method.
(fhandler_disk_file::seekdir): Accommodate new NT readdir method.
(fhandler_disk_file::closedir): Ditto.
(fhandler_cygdrive::fstat): Set d_ino to namehash. Add comment.
(fhandler_cygdrive::opendir): Call get_namehash to prepare later
@ -320,7 +328,7 @@
* wincap.cc: Implement above element throughout.
* winsup.h (readdir_get_ino): Add declaration.
* include/sys/dirent.h (struct dirent): Slightly rename structure
members to accomodate changes.
members to accommodate changes.
Remove __USE_EXPENSIVE_CYGWIN_D_INO handling and declaration of
__opendir_with_d_ino.

View File

@ -137,21 +137,33 @@ check_ntsec (const char *filename)
/* Copy cygwin environment variables to the Windows environment. */
static void
setup_winenv ()
sync_winenv ()
{
char **envp = __cygwin_environ;
char *var, *val;
char dummy;
int unused_envc;
char *envblock = NULL;
char **envp = build_env (__cygwin_environ, envblock, unused_envc, false);
char *p = envblock;
while (envp && *envp)
if (envp)
{
var = strdup (*envp++);
val = strchr (var, '=');
*val++ = '\0';
if (!GetEnvironmentVariable (var, &dummy, 1))
SetEnvironmentVariable (var, val);
free (var);
for (char **e = envp; *e; e++)
cfree (*e);
cfree (envp);
}
if (!p)
return;
while (*p)
{
char *eq = strchr (p, '=');
if (eq)
{
*eq = '\0';
SetEnvironmentVariable (p, ++eq);
p = eq;
}
p = strchr (p, '\0') + 1;
}
free (envblock);
}
extern "C" unsigned long
@ -333,8 +345,8 @@ cygwin_internal (cygwin_getinfo_types t, ...)
error_start_init (va_arg (arg, const char *));
try_to_debug ();
break;
case CW_SETUP_WINENV:
setup_winenv ();
case CW_SYNC_WINENV:
sync_winenv ();
return 0;
default:
break;

View File

@ -86,7 +86,7 @@ typedef enum
CW_ARGV,
CW_ENVP,
CW_DEBUG_SELF,
CW_SETUP_WINENV
CW_SYNC_WINENV
} cygwin_getinfo_types;
#define CW_NEXTPID 0x80000000 /* or with pid to get next one */