Yes, I also saw the *W variants, my initial reaction was that those would make 
more sense, but it is hard to see all consequences.

> On 17 Apr 2018, at 10:49, Henrik Sperre Johansen 
> <[email protected]> wrote:
> 
> primitiveGetenv returns values in the current locale's code page on Windows; 
> a value bound to €  returns a stings with single char 128 on MS1252 (western
> european) at least.
> 
> On windows, there are three versions of each api call with string
> parameters/returns; 
> xxx (depending on UNICODE being defined, either resolves to *A or *W)
> xxxA (Ascii, or, more accurately, current code page)*
> xxxW (UTF-16)
> 
> IIRC, the intention is that primitives receiving/sending char* to the image
> will expect/return utf8, so a conversion macro before passing it on to the
> syscall would be necessary on Windows; I believe one exist already and is
> used in at least the file plugin primitives.
> 
> Cheers,
> Henry
> 
> * The windows FFI fallback used if primitive fails calls the *A version
> directly, and can be changed to call *W correctly, but there's a fair bit of
> wrapping fluff involved; 
> https://youtu.be/Um41DPPs5ZA?list=PL843D1D545F9F52B6&t=1591
> 
> 
> 
> --
> Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
> 


Reply via email to