On Jan 5 18:39, Erik M. Bray wrote:
> @@ -805,32 +796,8 @@ environ_init (char **envp, int envc)
> }
> debug_printf ("GetEnvironmentStrings returned %p", rawenv);
>
> - /* Current directory information is recorded as variables of the
> - form "=X:=X:\foo\bar; these must be changed into something legal
> - (we could just ignore them but maybe an application will
> - eventually want to use them). */
> - for (i = 0, w = rawenv; *w != L'\0'; w = wcschr (w, L'\0') + 1, i++)
> - {
> - sys_wcstombs_alloc_no_path (&newp, HEAP_NOTHEAP, w);
> - if (i >= envc)
> - envp = (char **) realloc (envp, (4 + (envc += 100)) * sizeof (char
> *));
> - envp[i] = newp;
> - if (*newp == '=')
> - *newp = '!';
> - char *eq = strchrnul (newp, '=');
> - ucenv (newp, eq); /* uppercase env vars which need it */
> - if (*newp == 'T' && strncmp (newp, "TERM=", 5) == 0)
> - sawTERM = 1;
> - else if (*newp == 'C' && strncmp (newp, "CYGWIN=", 7) == 0)
> - parse_options (newp + 7);
> - if (*eq)
> - posify_maybe (envp + i, *++eq ? eq : --eq, tmpbuf);
> - debug_printf ("%p: %s", envp[i], envp[i]);
> - }
> + lastenviron = envp = win32env_to_cygenv(rawenv, true);
^^^
space missing
>
> - if (!sawTERM)
> - envp[i++] = strdup (cygterm);
> - envp[i] = NULL;
> FreeEnvironmentStringsW (rawenv);
>
> out:
> @@ -852,6 +819,53 @@ environ_init (char **envp, int envc)
> __endtry
> }
>
> +
> +char **
^^^
Header claims __stdcall, missing here. But in fact it
might be prudent to make this a __reg2 function instead.
> +win32env_to_cygenv(PWCHAR rawenv, bool posify)
^^^
space missing
> +{
> /* Function called by qsort to sort environment strings. */
> static int
> env_sort (const void *a, const void *b)
> diff --git a/winsup/cygwin/environ.h b/winsup/cygwin/environ.h
> index 46beb2d..7bd87da 100644
> --- a/winsup/cygwin/environ.h
> +++ b/winsup/cygwin/environ.h
> @@ -45,4 +45,6 @@ extern "C" char __stdcall **cur_environ ();
> char ** __reg3 build_env (const char * const *envp, PWCHAR &envblock,
> int &envc, bool need_envblock, HANDLE new_token);
>
> +char __stdcall ** win32env_to_cygenv (PWCHAR rawenv, bool posify);
^^^^^ ^^^
__reg2? no space here
Thanks,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
signature.asc
Description: PGP signature
