diff options
-rw-r--r-- | README.cygwin | 11 | ||||
-rw-r--r-- | cygwin/cygwin.c | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/README.cygwin b/README.cygwin index 017c452277..4e3e6f57ff 100644 --- a/README.cygwin +++ b/README.cygwin @@ -513,6 +513,17 @@ User mounts override system mounts. Returns true if the given cygwin path is binary mounted, false if the path is mounted in textmode. +=item C<Cygwin::sync_winenv> + +Cygwin does not initialize all original Win32 environment variables. +See the bottom of this page L<http://cygwin.com/cygwin-ug-net/setup-env.html> +for "Restricted Win32 environment". + +Certain Win32 programs called from cygwin programs might need some environment +variable, such as e.g. ADODB needs %COMMONPROGRAMFILES%. +Call Cygwin::sync_winenv() to copy all Win32 environment variables to your +process and note that cygwin will warn on every encounter of non-POSIX paths. + =back =head1 INSTALL PERL ON CYGWIN diff --git a/cygwin/cygwin.c b/cygwin/cygwin.c index 0f5fe1d7fc..9419e83aa7 100644 --- a/cygwin/cygwin.c +++ b/cygwin/cygwin.c @@ -538,6 +538,8 @@ XS(XS_Cygwin_is_binmount) XSRETURN(1); } +XS(XS_Cygwin_sync_winenv){ cygwin_internal(CW_SYNC_WINENV); } + void init_os_extras(void) { @@ -553,6 +555,7 @@ init_os_extras(void) newXSproto("Cygwin::mount_table", XS_Cygwin_mount_table, file, ""); newXSproto("Cygwin::mount_flags", XS_Cygwin_mount_flags, file, "$"); newXSproto("Cygwin::is_binmount", XS_Cygwin_is_binmount, file, "$"); + newXS("Cygwin::sync_winenv", XS_Cygwin_sync_winenv, file); /* Initialize Win32CORE if it has been statically linked. */ handle = dlopen(NULL, RTLD_LAZY); |