From 3bd9146030b0735639149bbbe20149dba6b5635f Mon Sep 17 00:00:00 2001 From: David Rose Date: Wed, 2 Jul 2003 16:48:22 +0000 Subject: [PATCH] trim extra newlines from windows error message --- panda/src/express/windowsRegistry.cxx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/panda/src/express/windowsRegistry.cxx b/panda/src/express/windowsRegistry.cxx index aa7e4abdc0..7d0a9c3b2c 100755 --- a/panda/src/express/windowsRegistry.cxx +++ b/panda/src/express/windowsRegistry.cxx @@ -313,8 +313,8 @@ do_get(const string &key, const string &name, int &data_type, string &data) { } if (error != ERROR_SUCCESS) { - express_cat.error() - << "Unable to get registry key " << key << " name " << name + express_cat.info() + << "Unable to get registry value " << name << ": " << format_message(error) << "\n"; okflag = false; } @@ -337,13 +337,20 @@ do_get(const string &key, const string &name, int &data_type, string &data) { //////////////////////////////////////////////////////////////////// string WindowsRegistry:: format_message(int error_code) { - PVOID buffer; + LPTSTR buffer; DWORD length = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, error_code, 0, (LPTSTR)&buffer, 0, NULL); + NULL, error_code, 0, &buffer, 0, NULL); if (length == 0) { return "Unknown error message"; } + + // Strip off \n's and \r's trailing the string. + while (length > 0 && + (buffer[length - 1] == '\r' || buffer[length - 1] == '\n')) { + length--; + } + string result((const char *)buffer, length); LocalFree(buffer); return result;