#include <9pm/windows.h> #include <9pm/u.h> #include <9pm/libc.h> /* for some reason this has to be different */ #undef GetEnvironmentStrings LPWSTR WINAPI _GetEnvironmentStrings(VOID) { int n; Rune *buf, *q; char *s, *p; if(win_useunicode) return GetEnvironmentStringsW(); s = GetEnvironmentStrings(); for(p=s,n=0; *p; p+=strlen(p)+1) n += utflen(p)+1; n++; buf = win_malloc(n*sizeof(Rune)); for(p=s,q=buf; *p; p+=strlen(p)+1) q += win_utf2wstrn(q, n, p)+1; *q++ = 0; FreeEnvironmentStringsA(s); return buf; }