From 1492baace9374f66a0dcd9b7bdb7babe2a8997c1 Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Wed, 8 Apr 2020 15:27:21 -0700 Subject: [PATCH] WIN32: epicsLoadError() strip trailing newlines --- modules/libcom/src/osi/os/WIN32/osdFindSymbol.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/libcom/src/osi/os/WIN32/osdFindSymbol.c b/modules/libcom/src/osi/os/WIN32/osdFindSymbol.c index 19dc5e59a..743404611 100644 --- a/modules/libcom/src/osi/os/WIN32/osdFindSymbol.c +++ b/modules/libcom/src/osi/os/WIN32/osdFindSymbol.c @@ -43,14 +43,23 @@ epicsShareFunc void * epicsLoadLibrary(const char *name) epicsShareFunc const char *epicsLoadError(void) { STORE char buffer[100]; + DWORD n; - FormatMessage( + n = FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, epicsLoadErrorCode, 0, buffer, sizeof(buffer)-1, NULL ); + + /* n - number of chars stored excluding nil. + * + * Some messages include a trailing newline, which we strip. + */ + for(; n>=1 && (buffer[n-1]=='\n' || buffer[n-1]=='\r'); n--) + buffer[n-1] = '\0'; + return buffer; }