diff options
| author | bors <bors@rust-lang.org> | 2015-08-25 16:22:17 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-08-25 16:22:17 +0000 |
| commit | b339f38fa23845ce83c839380cd7cc34c5841f74 (patch) | |
| tree | 8f2f48b31091d86cc690f1e09580e680a9cf8e31 /src/libstd/sys/windows | |
| parent | 1806174ab430583fe09df508ddf426bea9f4a3e1 (diff) | |
| parent | c4c533a2935f1e39ef94920d9f1430ba75c69376 (diff) | |
| download | rust-b339f38fa23845ce83c839380cd7cc34c5841f74.tar.gz rust-b339f38fa23845ce83c839380cd7cc34c5841f74.zip | |
Auto merge of #27995 - nagisa:windows-error-message, r=alexcrichton
According to https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx: > If the function succeeds, the return value is the number of TCHARs stored in the output buffer, > excluding the terminating null character. _**Completely untested**_… since I have no Windows machine or anything of a sort to test this on. r? @aturon
Diffstat (limited to 'src/libstd/sys/windows')
| -rw-r--r-- | src/libstd/sys/windows/os.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/libstd/sys/windows/os.rs b/src/libstd/sys/windows/os.rs index 3e640ceaddd..1680ea88d0b 100644 --- a/src/libstd/sys/windows/os.rs +++ b/src/libstd/sys/windows/os.rs @@ -74,7 +74,7 @@ pub fn error_string(errnum: i32) -> String { langId, buf.as_mut_ptr(), buf.len() as DWORD, - ptr::null()); + ptr::null()) as usize; if res == 0 { // Sometimes FormatMessageW can fail e.g. system doesn't like langId, let fm_err = errno(); @@ -82,8 +82,7 @@ pub fn error_string(errnum: i32) -> String { errnum, fm_err); } - let b = buf.iter().position(|&b| b == 0).unwrap_or(buf.len()); - match String::from_utf16(&buf[..b]) { + match String::from_utf16(&buf[..res]) { Ok(mut msg) => { // Trim trailing CRLF inserted by FormatMessageW let len = msg.trim_right().len(); |
