-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
No more 'operation completed successfully' in time_zone::get_info
#3122
Conversation
When no mapping for a Unicode character existed in the target multi-byte code page, we just returned that error from `__std_fs_convert_wide_to_narrow`; instead, we additionally needed to `SetLastError()` after that call.
We discussed in the weekly maintainer meeting that this resolves the symptom, but not really the root cause of the problem. We're going to apply the PR as a clear improvement, and @strega-nil-ms will file a followup issue to investigate returning the full timezone spec instead of the localized abbreviation as a fallback when the localized abbreviation can't be transcoded from UTF-16 to the narrow encoding specified by the active code page. |
I observe that this affects the redist, but not in a way that involves synchronized header changes, so it should be fine. ✅ No header changes => no modules impact. |
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Merge completed successfully! 😹 😸 😻 |
When no mapping for a Unicode character existed in the target multi-byte code page, we just returned that error from
__std_fs_convert_wide_to_narrow
; instead, we additionally needed toSetLastError()
after that call.Fixes #3097 (kind of)
The issue was that if the language of the system was not representable by the current code page, we would throw
GetLastError()
; however, last error was never actually set.