ReactOS 0.4.16-dev-257-g6aa11ac
console.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ConOutPuts(szStr)    ConPuts(StdOut, (szStr))
 
#define ConErrPuts(szStr)    ConPuts(StdErr, (szStr))
 
#define ConOutResPuts(uID)    ConResPuts(StdOut, (uID))
 
#define ConErrResPuts(uID)    ConResPuts(StdErr, (uID))
 
#define ConOutPrintf(szStr, ...)    ConPrintf(StdOut, (szStr), ##__VA_ARGS__)
 
#define ConErrPrintf(szStr, ...)    ConPrintf(StdErr, (szStr), ##__VA_ARGS__)
 
#define ConOutResPrintf(uID, ...)    ConResPrintf(StdOut, (uID), ##__VA_ARGS__)
 
#define ConErrResPrintf(uID, ...)    ConResPrintf(StdErr, (uID), ##__VA_ARGS__)
 
#define ConOutFormatMessage(MessageId, ...)    ConFormatMessage(StdOut, (MessageId), ##__VA_ARGS__)
 
#define ConErrFormatMessage(MessageId, ...)    ConFormatMessage(StdErr, (MessageId), ##__VA_ARGS__)
 
#define ConGetTextWidth   ConGetTextWidthA
 

Functions

VOID ConInDisable (VOID)
 
VOID ConInEnable (VOID)
 
VOID ConInFlush (VOID)
 
VOID ConInKey (PINPUT_RECORD)
 
VOID ConInString (LPTSTR, DWORD)
 
VOID ConOutChar (TCHAR)
 
VOID ConErrChar (TCHAR)
 
VOID __cdecl ConFormatMessage (PCON_STREAM Stream, DWORD MessageId,...)
 
BOOL ConPrintfVPaging (PCON_PAGER Pager, BOOL StartPaging, LPTSTR szFormat, va_list arg_ptr)
 
BOOL __cdecl ConOutPrintfPaging (BOOL StartPaging, LPTSTR szFormat,...)
 
VOID ConOutResPaging (BOOL StartPaging, UINT resID)
 
SHORT GetCursorX (VOID)
 
SHORT GetCursorY (VOID)
 
VOID GetCursorXY (PSHORT, PSHORT)
 
VOID SetCursorXY (SHORT, SHORT)
 
VOID GetScreenSize (PSHORT, PSHORT)
 
VOID SetCursorType (BOOL, BOOL)
 
BOOL ConSetTitle (IN LPCTSTR lpConsoleTitle)
 
SIZE_T ConGetTextWidthA (PCSTR pszText)
 
SIZE_T ConGetTextWidthW (PCWSTR pszText)
 

Variables

UINT InputCodePage
 
UINT OutputCodePage
 
CON_SCREEN StdOutScreen
 
CON_PAGER StdOutPager
 

Macro Definition Documentation

◆ ConErrFormatMessage

#define ConErrFormatMessage (   MessageId,
  ... 
)     ConFormatMessage(StdErr, (MessageId), ##__VA_ARGS__)

Definition at line 56 of file console.h.

◆ ConErrPrintf

#define ConErrPrintf (   szStr,
  ... 
)     ConPrintf(StdErr, (szStr), ##__VA_ARGS__)

Definition at line 44 of file console.h.

◆ ConErrPuts

#define ConErrPuts (   szStr)     ConPuts(StdErr, (szStr))

Definition at line 32 of file console.h.

◆ ConErrResPrintf

#define ConErrResPrintf (   uID,
  ... 
)     ConResPrintf(StdErr, (uID), ##__VA_ARGS__)

Definition at line 50 of file console.h.

◆ ConErrResPuts

#define ConErrResPuts (   uID)     ConResPuts(StdErr, (uID))

Definition at line 38 of file console.h.

◆ ConGetTextWidth

#define ConGetTextWidth   ConGetTextWidthA

Definition at line 105 of file console.h.

◆ ConOutFormatMessage

#define ConOutFormatMessage (   MessageId,
  ... 
)     ConFormatMessage(StdOut, (MessageId), ##__VA_ARGS__)

Definition at line 53 of file console.h.

◆ ConOutPrintf

#define ConOutPrintf (   szStr,
  ... 
)     ConPrintf(StdOut, (szStr), ##__VA_ARGS__)

Definition at line 41 of file console.h.

◆ ConOutPuts

#define ConOutPuts (   szStr)     ConPuts(StdOut, (szStr))

Definition at line 29 of file console.h.

◆ ConOutResPrintf

#define ConOutResPrintf (   uID,
  ... 
)     ConResPrintf(StdOut, (uID), ##__VA_ARGS__)

Definition at line 47 of file console.h.

◆ ConOutResPuts

#define ConOutResPuts (   uID)     ConResPuts(StdOut, (uID))

Definition at line 35 of file console.h.

Function Documentation

◆ ConErrChar()

VOID ConErrChar ( TCHAR  )

◆ ConFormatMessage()

VOID __cdecl ConFormatMessage ( PCON_STREAM  Stream,
DWORD  MessageId,
  ... 
)

Definition at line 215 of file util.c.

216{
217 INT Len;
218 va_list arg_ptr;
219
220 va_start(arg_ptr, MessageId);
223 NULL,
224 MessageId,
226 &arg_ptr);
227 va_end(arg_ptr);
228
229 if (Len <= 0)
231}
char * va_list
Definition: acmsvcex.h:78
#define va_end(ap)
Definition: acmsvcex.h:90
#define va_start(ap, A)
Definition: acmsvcex.h:91
#define STRING_CONSOLE_ERROR
Definition: resource.h:6
void ConResPrintf(FILE *fp, UINT nID,...)
Definition: fc.c:33
#define Len
Definition: deflate.h:82
#define NULL
Definition: types.h:112
static IStream Stream
Definition: htmldoc.c:1115
INT ConMsgPrintfV(IN PCON_STREAM Stream, IN DWORD dwFlags, IN LPCVOID lpSource OPTIONAL, IN DWORD dwMessageId, IN DWORD dwLanguageId, IN va_list *Arguments OPTIONAL)
Definition: outstream.c:1030
#define LANG_USER_DEFAULT
Definition: tnerror.cpp:50
int32_t INT
Definition: typedefs.h:58
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:449

◆ ConGetTextWidthA()

SIZE_T ConGetTextWidthA ( PCSTR  pszText)

Definition at line 354 of file console.c.

355{
356 int cchMax;
357 PWSTR pszWide;
358 SIZE_T cxWidth;
359
360 cchMax = MultiByteToWideChar(OutputCodePage, 0, pszText, -1, NULL, 0);
361 pszWide = cmd_alloc(cchMax * sizeof(WCHAR));
362 MultiByteToWideChar(OutputCodePage, 0, pszText, -1, pszWide, cchMax);
363 cxWidth = ConGetTextWidthW(pszWide);
364 cmd_free(pszWide);
365 return cxWidth;
366}
UINT cchMax
SIZE_T ConGetTextWidthW(PCWSTR pszText)
Definition: console.c:336
UINT OutputCodePage
Definition: console.c:26
#define cmd_free(ptr)
Definition: cmddbg.h:31
#define cmd_alloc(size)
Definition: cmddbg.h:29
#define MultiByteToWideChar
Definition: compat.h:110
uint16_t * PWSTR
Definition: typedefs.h:56
ULONG_PTR SIZE_T
Definition: typedefs.h:80
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ ConGetTextWidthW()

SIZE_T ConGetTextWidthW ( PCWSTR  pszText)

Definition at line 336 of file console.c.

337{
338 SIZE_T ich, cxWidth;
339
341 return _tcslen(pszText);
342
343 for (ich = cxWidth = 0; pszText[ich]; ++ich)
344 {
345 if (IS_FULL_WIDTH(pszText[ich]))
346 cxWidth += 2;
347 else
348 ++cxWidth;
349 }
350
351 return cxWidth;
352}
#define IS_FULL_WIDTH(wch)
Definition: console.c:333
#define IsCJKCodePage(CodePage)
Definition: cjkcode.h:27
#define _tcslen
Definition: xmlstorage.h:198

Referenced by ConGetTextWidthA().

◆ ConInDisable()

VOID ConInDisable ( VOID  )

Definition at line 36 of file console.c.

37{
39 DWORD dwMode;
40
41 GetConsoleMode(hInput, &dwMode);
42 dwMode &= ~ENABLE_PROCESSED_INPUT;
43 SetConsoleMode(hInput, dwMode);
44}
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
Definition: console.c:203
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
Definition: console.c:1569
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
Definition: console.c:1606
unsigned long DWORD
Definition: ntddk_ex.h:95
#define STD_INPUT_HANDLE
Definition: winbase.h:293

Referenced by FilePromptYN(), FilePromptYNA(), and PagePrompt().

◆ ConInEnable()

VOID ConInEnable ( VOID  )

Definition at line 46 of file console.c.

47{
49 DWORD dwMode;
50
51 GetConsoleMode(hInput, &dwMode);
52 dwMode |= ENABLE_PROCESSED_INPUT;
53 SetConsoleMode(hInput, dwMode);
54}
#define ENABLE_PROCESSED_INPUT
Definition: wincon.h:78

Referenced by FilePromptYN(), FilePromptYNA(), and PagePrompt().

◆ ConInFlush()

VOID ConInFlush ( VOID  )

Definition at line 56 of file console.c.

57{
59}
BOOL WINAPI FlushConsoleInputBuffer(IN HANDLE hConsoleInput)
Definition: console.c:220

Referenced by CommandChoice().

◆ ConInKey()

VOID ConInKey ( PINPUT_RECORD  lpBuffer)

Definition at line 61 of file console.c.

62{
64 DWORD dwRead;
65
66 if (hInput == INVALID_HANDLE_VALUE)
67 WARN ("Invalid input handle!!!\n");
68
69 do
70 {
71 ReadConsoleInput(hInput, lpBuffer, 1, &dwRead);
72 if (lpBuffer->EventType == KEY_EVENT &&
73 lpBuffer->Event.KeyEvent.bKeyDown)
74 {
75 break;
76 }
77 }
78 while (TRUE);
79}
#define WARN(fmt,...)
Definition: precomp.h:61
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:175
#define TRUE
Definition: types.h:120
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define ReadConsoleInput
Definition: wincon.h:778
#define KEY_EVENT
Definition: wincon.h:128

Referenced by CommandChoice(), FilePromptYN(), FilePromptYNA(), PagePrompt(), and ReadCommand().

◆ ConInString()

VOID ConInString ( LPTSTR  lpInput,
DWORD  dwLength 
)

Definition at line 172 of file util.c.

173{
174 DWORD dwOldMode;
175 DWORD dwRead = 0;
177
178 LPTSTR p;
179 PCHAR pBuf;
180
181#ifdef _UNICODE
182 pBuf = (PCHAR)malloc(dwLength - 1);
183#else
184 pBuf = lpInput;
185#endif
186 ZeroMemory(lpInput, dwLength * sizeof(TCHAR));
188 GetConsoleMode(hFile, &dwOldMode);
189
191
192 ReadFile(hFile, (PVOID)pBuf, dwLength - 1, &dwRead, NULL);
193
194#ifdef _UNICODE
195 MultiByteToWideChar(GetConsoleCP(), 0, pBuf, dwRead, lpInput, dwLength - 1);
196 free(pBuf);
197#endif
198 for (p = lpInput; *p; p++)
199 {
200 if (*p == _T('\r')) // Terminate at the carriage-return.
201 {
202 *p = _T('\0');
203 break;
204 }
205 }
206
207 SetConsoleMode(hFile, dwOldMode);
208}
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
static DWORD DWORD * dwLength
Definition: fusion.c:86
UINT WINAPI DECLSPEC_HOTPATCH GetConsoleCP(VOID)
Definition: console.c:2391
GLfloat GLfloat p
Definition: glext.h:8902
#define PCHAR
Definition: match.c:90
_In_ HANDLE hFile
Definition: mswsock.h:90
char * PCHAR
Definition: typedefs.h:51
#define _T(x)
Definition: vfdio.h:22
#define ZeroMemory
Definition: winbase.h:1737
#define ENABLE_ECHO_INPUT
Definition: wincon.h:80
#define ENABLE_LINE_INPUT
Definition: wincon.h:79
char TCHAR
Definition: xmlstorage.h:189
CHAR * LPTSTR
Definition: xmlstorage.h:192

Referenced by FilePromptYNA().

◆ ConOutChar()

VOID ConOutChar ( TCHAR  c)

Definition at line 233 of file util.c.

234{
235 ConWrite(StdOut, &c, 1);
236}
#define StdOut
Definition: fc.c:14
const GLubyte * c
Definition: glext.h:8905
INT __stdcall ConWrite(IN PCON_STREAM Stream, IN PCTCH szStr, IN DWORD len)
Definition: outstream.c:85

◆ ConOutPrintfPaging()

BOOL __cdecl ConOutPrintfPaging ( BOOL  StartPaging,
LPTSTR  szFormat,
  ... 
)

◆ ConOutResPaging()

VOID ConOutResPaging ( BOOL  StartPaging,
UINT  resID 
)

Definition at line 178 of file console.c.

179{
180 ConResPaging(&StdOutPager, PagePrompt, StartPaging, resID);
181}
CON_PAGER StdOutPager
Definition: console.c:30
static BOOL __stdcall PagePrompt(PCON_PAGER Pager, DWORD Done, DWORD Total)
Definition: more.c:160
BOOL ConResPaging(IN PCON_PAGER Pager, IN PAGE_PROMPT PagePrompt, IN BOOL StartPaging, IN UINT uID)
Definition: pager.c:681

Referenced by cmd_beep(), cmd_call(), cmd_chdir(), cmd_cls(), cmd_copy(), cmd_ctty(), cmd_date(), cmd_for(), cmd_goto(), cmd_if(), cmd_mkdir(), cmd_move(), cmd_path(), cmd_pause(), cmd_prompt(), cmd_rename(), cmd_rmdir(), cmd_set(), cmd_shift(), cmd_start(), cmd_time(), cmd_title(), cmd_type(), cmd_ver(), cmd_verify(), cmd_vol(), CommandAlias(), CommandAssoc(), CommandChoice(), CommandColor(), CommandDelay(), CommandDelete(), CommandEcho(), CommandExit(), CommandFree(), CommandMemory(), CommandRem(), CommandScreen(), DirHelp(), and Initialize().

◆ ConPrintfVPaging()

BOOL ConPrintfVPaging ( PCON_PAGER  Pager,
BOOL  StartPaging,
LPTSTR  szFormat,
va_list  arg_ptr 
)

◆ ConSetTitle()

BOOL ConSetTitle ( IN LPCTSTR  lpConsoleTitle)

◆ GetCursorX()

SHORT GetCursorX ( VOID  )

Definition at line 206 of file console.c.

207{
209
211 return csbi.dwCursorPosition.X;
212}
BOOL WINAPI GetConsoleScreenBufferInfo(IN HANDLE hConsoleOutput, OUT PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo)
Definition: console.c:595
SHORT X
Definition: blue.h:26
#define STD_OUTPUT_HANDLE
Definition: winbase.h:294

Referenced by ReadCommand().

◆ GetCursorXY()

VOID GetCursorXY ( PSHORT  x,
PSHORT  y 
)

Definition at line 196 of file console.c.

197{
199
201
202 *x = csbi.dwCursorPosition.X;
203 *y = csbi.dwCursorPosition.Y;
204}
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
SHORT Y
Definition: blue.h:27

Referenced by ReadCommand().

◆ GetCursorY()

SHORT GetCursorY ( VOID  )

Definition at line 214 of file console.c.

Referenced by PagePrompt(), PrintPrompt(), and ReadCommand().

◆ GetScreenSize()

VOID GetScreenSize ( PSHORT  maxx,
PSHORT  maxy 
)

Definition at line 232 of file console.c.

233{
235
237 {
238 csbi.dwSize.X = 80;
239 csbi.dwSize.Y = 25;
240 }
241
242 if (maxx) *maxx = csbi.dwSize.X;
243 if (maxy) *maxy = csbi.dwSize.Y;
244}
SHORT maxx
Definition: cmdinput.c:115
SHORT maxy
Definition: cmdinput.c:116

Referenced by CommandScreen(), DirPrintWideList(), and PagePrompt().

◆ SetCursorType()

VOID SetCursorType ( BOOL  bInsert,
BOOL  bVisible 
)

Definition at line 222 of file console.c.

223{
225
226 cci.dwSize = bInsert ? 10 : 99;
227 cci.bVisible = bVisible;
228
230}
BOOL WINAPI SetConsoleCursorInfo(IN HANDLE hConsoleOutput, IN const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo)
Definition: console.c:618
static BOOL bInsert
Definition: cmdinput.c:121

Referenced by ReadCommand().

◆ SetCursorXY()

VOID SetCursorXY ( SHORT  x,
SHORT  y 
)

Definition at line 187 of file console.c.

188{
189 COORD coPos;
190
191 coPos.X = x;
192 coPos.Y = y;
194}
BOOL WINAPI SetConsoleCursorPosition(IN HANDLE hConsoleOutput, IN COORD dwCursorPosition)
Definition: console.c:641
Definition: bl.h:1338
ULONG Y
Definition: bl.h:1340
ULONG X
Definition: bl.h:1339

Referenced by ClearCommandLine(), CommandScreen(), PagePrompt(), and ReadCommand().

Variable Documentation

◆ InputCodePage

UINT InputCodePage
extern

Definition at line 25 of file console.c.

Referenced by _tmain(), cmd_start(), ConInString(), Execute(), and ReadCommand().

◆ OutputCodePage

◆ StdOutPager

CON_PAGER StdOutPager
extern

Definition at line 30 of file console.c.

Referenced by ConOutPrintfPaging(), ConOutResPaging(), and DirPrintf().

◆ StdOutScreen

CON_SCREEN StdOutScreen
extern

Definition at line 30 of file attrib.c.

Referenced by cmd_cls().