diff options
| author | K. Handa | 2016-06-05 20:49:55 +0900 |
|---|---|---|
| committer | K. Handa | 2016-06-05 20:49:55 +0900 |
| commit | 4ffe265b5192fd93137cd49fb204efdc4bda2887 (patch) | |
| tree | 054528efc2f8deb55396df2c871d093ae270be5d /src | |
| parent | 096d1347654803ee04771516c58701ddf210d898 (diff) | |
| parent | 75de3640f147fad8bf1c4a7e393c8e294b9851f6 (diff) | |
| download | emacs-4ffe265b5192fd93137cd49fb204efdc4bda2887.tar.gz emacs-4ffe265b5192fd93137cd49fb204efdc4bda2887.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'src')
| -rw-r--r-- | src/w32.c | 29 |
1 files changed, 29 insertions, 0 deletions
| @@ -2505,6 +2505,35 @@ sys_putenv (char *str) | |||
| 2505 | return unsetenv (str); | 2505 | return unsetenv (str); |
| 2506 | } | 2506 | } |
| 2507 | 2507 | ||
| 2508 | if (strncmp (str, "TZ=<", 4) == 0) | ||
| 2509 | { | ||
| 2510 | /* MS-Windows does not support POSIX.1-2001 angle-bracket TZ | ||
| 2511 | abbreviation syntax. Convert to POSIX.1-1988 syntax if possible, | ||
| 2512 | and to the undocumented placeholder "ZZZ" otherwise. */ | ||
| 2513 | bool supported_abbr = true; | ||
| 2514 | for (char *p = str + 4; *p; p++) | ||
| 2515 | { | ||
| 2516 | if (('0' <= *p && *p <= '9') || *p == '-' || *p == '+') | ||
| 2517 | supported_abbr = false; | ||
| 2518 | else if (*p == '>') | ||
| 2519 | { | ||
| 2520 | ptrdiff_t abbrlen; | ||
| 2521 | if (supported_abbr) | ||
| 2522 | { | ||
| 2523 | abbrlen = p - (str + 4); | ||
| 2524 | memmove (str + 3, str + 4, abbrlen); | ||
| 2525 | } | ||
| 2526 | else | ||
| 2527 | { | ||
| 2528 | abbrlen = 3; | ||
| 2529 | memset (str + 3, 'Z', abbrlen); | ||
| 2530 | } | ||
| 2531 | memmove (str + 3 + abbrlen, p + 1, strlen (p)); | ||
| 2532 | break; | ||
| 2533 | } | ||
| 2534 | } | ||
| 2535 | } | ||
| 2536 | |||
| 2508 | return _putenv (str); | 2537 | return _putenv (str); |
| 2509 | } | 2538 | } |
| 2510 | 2539 | ||