* external.cc (setup_winenv): New function.
(cygwin_internal): Implement CW_SETUP_WINENV. * sys/cygwin.h (cygwin_getinfo_types): Define CW_SETUP_WINENV.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | ||||
| 2006-02-02  Christopher Faylor  <cgf@timesys.com> | ||||
|  | ||||
| 	* external.cc (setup_winenv): New function. | ||||
| 	(cygwin_internal): Implement CW_SETUP_WINENV. | ||||
| 	* sys/cygwin.h (cygwin_getinfo_types): Define CW_SETUP_WINENV. | ||||
|  | ||||
| 2006-02-02  Corinna Vinschen  <corinna@vinschen.de> | ||||
|  | ||||
| 	* security.cc (is_group_member): Fix comment. | ||||
|   | ||||
| @@ -28,7 +28,9 @@ details. */ | ||||
| #include "pwdgrp.h" | ||||
| #include "cygtls.h" | ||||
| #include "child_info.h" | ||||
| #include "environ.h" | ||||
| #include <unistd.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| child_info *get_cygwin_startup_info (); | ||||
|  | ||||
| @@ -133,6 +135,25 @@ check_ntsec (const char *filename) | ||||
|   return allow_ntsec && pc.has_acls (); | ||||
| } | ||||
|  | ||||
| /* Copy cygwin environment variables to the Windows environment. */ | ||||
| static void | ||||
| setup_winenv () | ||||
| { | ||||
|   char **envp = __cygwin_environ; | ||||
|   char *var, *val; | ||||
|   char dummy; | ||||
|  | ||||
|   while (envp && *envp) | ||||
|     { | ||||
|       var = strdup (*envp++); | ||||
|       val = strchr (var, '='); | ||||
|       *val++ = '\0'; | ||||
|       if (!GetEnvironmentVariable (var, &dummy, 1)) | ||||
| 	SetEnvironmentVariable (var, val); | ||||
|       free (var); | ||||
|     } | ||||
| } | ||||
|  | ||||
| extern "C" unsigned long | ||||
| cygwin_internal (cygwin_getinfo_types t, ...) | ||||
| { | ||||
| @@ -312,6 +333,9 @@ cygwin_internal (cygwin_getinfo_types t, ...) | ||||
| 	error_start_init (va_arg (arg, const char *)); | ||||
| 	try_to_debug (); | ||||
| 	break; | ||||
|       case CW_SETUP_WINENV: | ||||
| 	setup_winenv (); | ||||
| 	return 0; | ||||
|       default: | ||||
| 	break; | ||||
|     } | ||||
|   | ||||
| @@ -85,7 +85,8 @@ typedef enum | ||||
|     CW_HOOK, | ||||
|     CW_ARGV, | ||||
|     CW_ENVP, | ||||
|     CW_DEBUG_SELF | ||||
|     CW_DEBUG_SELF, | ||||
|     CW_SETUP_WINENV | ||||
|   } cygwin_getinfo_types; | ||||
|  | ||||
| #define CW_NEXTPID	0x80000000	/* or with pid to get next one */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user