From 2daa1b75309be4c98e5614d2fac089b246d6ba79 Mon Sep 17 00:00:00 2001 From: diaphore Date: Thu, 6 Aug 2015 22:44:50 +0200 Subject: [PATCH] Trim trailing newline from FormatMessageW --- src/libstd/sys/windows/os.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libstd/sys/windows/os.rs b/src/libstd/sys/windows/os.rs index 8a8cf9e7c53..694d873d0d2 100644 --- a/src/libstd/sys/windows/os.rs +++ b/src/libstd/sys/windows/os.rs @@ -84,9 +84,13 @@ pub fn error_string(errnum: i32) -> String { } let b = buf.iter().position(|&b| b == 0).unwrap_or(buf.len()); - let msg = String::from_utf16(&buf[..b]); - match msg { - Ok(msg) => msg, + match String::from_utf16(&buf[..b]) { + Ok(mut msg) => { + // Trim trailing CRLF inserted by FormatMessageW + let len = msg.trim_right().len(); + msg.truncate(len); + msg + }, Err(..) => format!("OS Error {} (FormatMessageW() returned \ invalid UTF-16)", errnum), }