From 6e7d8b2e8da3fddbcd853dcd9bda0c2fc80bc6e3 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Tue, 19 Jul 2005 22:48:35 +0000 Subject: [PATCH] add ConErrMessage to deal with error msg and ConOutMessage for other msg. Copy error msg are always pipe with ConOut and CD error msg with ConErr. Thx harmut that remmid me about it. All error msg need to check if they goes with ConErr or ConOut svn path=/trunk/; revision=16651 --- reactos/subsys/system/cmd/cmd.h | 1 + reactos/subsys/system/cmd/console.c | 33 ++++++++++++++++++++++++++-- reactos/subsys/system/cmd/internal.c | 2 +- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/reactos/subsys/system/cmd/cmd.h b/reactos/subsys/system/cmd/cmd.h index a1a8e0602c6..a90121f9c21 100644 --- a/reactos/subsys/system/cmd/cmd.h +++ b/reactos/subsys/system/cmd/cmd.h @@ -152,6 +152,7 @@ VOID ConErrChar (TCHAR); VOID ConErrPuts (LPTSTR); VOID ConErrPrintf (LPTSTR, ...); VOID ConOutFormatMessage (DWORD MessageId, ...); +VOID ConErrFormatMessage (DWORD MessageId, ...); SHORT GetCursorX (VOID); SHORT GetCursorY (VOID); diff --git a/reactos/subsys/system/cmd/console.c b/reactos/subsys/system/cmd/console.c index e9a5188787f..4adf0108590 100644 --- a/reactos/subsys/system/cmd/console.c +++ b/reactos/subsys/system/cmd/console.c @@ -330,6 +330,35 @@ VOID ConPrintfPaging(BOOL NewPage, LPTSTR szFormat, va_list arg_ptr, DWORD nStdH #endif } +VOID ConErrFormatMessage (DWORD MessageId, ...) +{ + TCHAR szMsg[RC_STRING_MAX_SIZE]; + DWORD ret; + LPTSTR text; + va_list arg_ptr; + + va_start (arg_ptr, MessageId); + ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + MessageId, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &text, + 0, + &arg_ptr); + + va_end (arg_ptr); + if(ret > 0) + { + ConErrPuts (text); + LocalFree(text); + } + else + { + LoadString(CMD_ModuleHandle, STRING_CONSOLE_ERROR, szMsg, RC_STRING_MAX_SIZE); + ConErrPrintf(szMsg); + } +} + VOID ConOutFormatMessage (DWORD MessageId, ...) { TCHAR szMsg[RC_STRING_MAX_SIZE]; @@ -349,13 +378,13 @@ VOID ConOutFormatMessage (DWORD MessageId, ...) va_end (arg_ptr); if(ret > 0) { - ConOutPuts (text); + ConErrPuts (text); LocalFree(text); } else { LoadString(CMD_ModuleHandle, STRING_CONSOLE_ERROR, szMsg, RC_STRING_MAX_SIZE); - ConOutPrintf(szMsg); + ConErrPrintf(szMsg); } } diff --git a/reactos/subsys/system/cmd/internal.c b/reactos/subsys/system/cmd/internal.c index 3cc494b6f76..8ec6bbc39e7 100644 --- a/reactos/subsys/system/cmd/internal.c +++ b/reactos/subsys/system/cmd/internal.c @@ -364,7 +364,7 @@ INT cmd_chdir (LPTSTR cmd, LPTSTR param) { if(hFile == INVALID_HANDLE_VALUE) { - ConOutFormatMessage (GetLastError(), szFinalPath); + ConErrFormatMessage (GetLastError(), szFinalPath); nErrorLevel = 1; return 1; }