Files
Nim/lib/pure
Håvard Mjaavatten ae876a4453 Add use of Windows Wide CRT API for env. vars
Replaces use of CRT API `getenv` and `putenv` with respectively
`_wgetenv` and `_wputenv`. Motivation is to reliably convert environment
variables to UTF-8, and the wide API is best there, because it's
reliably UTF-16.

Changed the hack in `lib/std/private/win_setenv.nim` by switching the
order of the Unicode and MBCS environment update; Unicode first, MBCS
second. Because `_wgetenv`/`_wputenv` is now used, the Unicode
environment will be initialized, so it should always be updated.

Stop updating MBCS environment with the name of `getEnv`. It's not
necessarily true that MBCS encoding and the `string` encoding is the
same. Instead convert UTF-16 to current Windows code page with
`wcstombs`, and use that string to update MBCS.

Fixes regression in `6b3c77e` that caused `std/envvars.getEnv` or
`std/os.getEnv` on Windows to return non-UTF-8 encoded strings.

Add tests that test environment variables with Unicode characters in
their name or value.
2022-07-25 11:08:28 +02:00
..
2021-08-31 08:14:05 +02:00
2021-12-20 10:40:32 +01:00
2022-06-04 07:03:03 +02:00
2015-10-01 12:05:45 -07:00
2021-02-23 21:05:39 -08:00
2021-07-13 09:22:33 +02:00
2021-04-08 14:08:58 +02:00
2018-04-06 11:59:49 +02:00
2022-02-02 17:10:11 +01:00
2021-01-09 00:24:41 +01:00
2022-02-02 17:10:11 +01:00
2022-02-14 22:15:59 +00:00
2022-02-02 17:10:11 +01:00
2021-04-06 22:08:59 +02:00
2022-07-18 14:20:30 +08:00
2021-02-24 21:47:27 -08:00
2022-02-02 17:10:11 +01:00
2022-02-02 17:10:11 +01:00
2021-02-21 00:27:39 -08:00
2022-07-18 21:18:12 +02:00
2022-02-02 17:10:11 +01:00
2021-07-20 12:50:43 +02:00
2021-08-23 00:13:39 +02:00
2021-10-07 12:01:27 +02:00
2021-10-05 12:29:59 +02:00
2021-09-19 23:35:50 +02:00
2021-04-26 09:04:52 +02:00
2022-05-30 12:09:18 +02:00
2021-02-08 09:46:07 +01:00
2022-02-02 17:10:11 +01:00