ReactOS 0.4.15-dev-7924-g5949c20
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  c)

Definition at line 128 of file console.c.

129{
130 ConWrite(StdErr, &c, 1);
131}
#define StdErr
Definition: fc.c:15
const GLubyte * c
Definition: glext.h:8905
INT __stdcall ConWrite(IN PCON_STREAM Stream, IN PCTCH szStr, IN DWORD len)
Definition: outstream.c:85

◆ ConFormatMessage()

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

Definition at line 133 of file console.c.

134{
135 INT Len;
136 va_list arg_ptr;
137
138 va_start(arg_ptr, MessageId);
141 NULL,
142 MessageId,
144 &arg_ptr);
145 va_end(arg_ptr);
146
147 if (Len <= 0)
149}
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:423

◆ ConGetTextWidthA()

SIZE_T ConGetTextWidthA ( PCSTR  pszText)

Definition at line 358 of file console.c.

359{
360 int cchMax;
361 PWSTR pszWide;
362 SIZE_T cxWidth;
363
364 cchMax = MultiByteToWideChar(OutputCodePage, 0, pszText, -1, NULL, 0);
365 pszWide = cmd_alloc(cchMax * sizeof(WCHAR));
366 MultiByteToWideChar(OutputCodePage, 0, pszText, -1, pszWide, cchMax);
367 cxWidth = ConGetTextWidthW(pszWide);
368 cmd_free(pszWide);
369 return cxWidth;
370}
UINT cchMax
SIZE_T ConGetTextWidthW(PCWSTR pszText)
Definition: console.c:340
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 340 of file console.c.

341{
342 SIZE_T ich, cxWidth;
343
345 return _tcslen(pszText);
346
347 for (ich = cxWidth = 0; pszText[ich]; ++ich)
348 {
349 if (IS_FULL_WIDTH(pszText[ich]))
350 cxWidth += 2;
351 else
352 ++cxWidth;
353 }
354
355 return cxWidth;
356}
#define IS_FULL_WIDTH(wch)
Definition: console.c:337
#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:267

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: debug.h:112
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 81 of file console.c.

82{
83 DWORD dwOldMode;
84 DWORD dwRead = 0;
86
87 LPTSTR p;
88 PCHAR pBuf;
89
90#ifdef _UNICODE
91 pBuf = (PCHAR)cmd_alloc(dwLength - 1);
92#else
93 pBuf = lpInput;
94#endif
95 ZeroMemory(lpInput, dwLength * sizeof(TCHAR));
97 GetConsoleMode(hFile, &dwOldMode);
98
100
101 ReadFile(hFile, (PVOID)pBuf, dwLength - 1, &dwRead, NULL);
102
103#ifdef _UNICODE
104 MultiByteToWideChar(InputCodePage, 0, pBuf, dwRead, lpInput, dwLength - 1);
105 cmd_free(pBuf);
106#endif
107 for (p = lpInput; *p; p++)
108 {
109 if (*p == _T('\r')) // Terminate at the carriage-return.
110 {
111 *p = _T('\0');
112 break;
113 }
114 }
115
116 SetConsoleMode(hFile, dwOldMode);
117}
UINT InputCodePage
Definition: console.c:25
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
static DWORD DWORD * dwLength
Definition: fusion.c:86
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:1712
#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

◆ ConOutChar()

◆ ConOutPrintfPaging()

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

Definition at line 171 of file console.c.

172{
173 BOOL bRet;
174 va_list arg_ptr;
175
176 va_start(arg_ptr, szFormat);
177 bRet = ConPrintfVPaging(&StdOutPager, StartPaging, szFormat, arg_ptr);
178 va_end(arg_ptr);
179 return bRet;
180}
CON_PAGER StdOutPager
Definition: console.c:30
BOOL ConPrintfVPaging(PCON_PAGER Pager, BOOL StartPaging, LPTSTR szFormat, va_list arg_ptr)
Definition: console.c:155
unsigned int BOOL
Definition: ntddk_ex.h:94

Referenced by cmd_type(), CommandDir(), and DoTypeFile().

◆ ConOutResPaging()

VOID ConOutResPaging ( BOOL  StartPaging,
UINT  resID 
)

◆ ConPrintfVPaging()

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

Definition at line 155 of file console.c.

156{
157 // INT len;
159
160 /* Return if no string has been given */
161 if (szFormat == NULL)
162 return TRUE;
163
164 /*len =*/ _vstprintf(szOut, szFormat, arg_ptr);
165
166 // return ConPutsPaging(Pager, PagePrompt, StartPaging, szOut);
167 return ConWritePaging(Pager, PagePrompt, StartPaging,
168 szOut, wcslen(szOut));
169}
#define OUTPUT_BUFFER_SIZE
Definition: console.c:22
#define _vstprintf
Definition: tchar.h:540
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
BOOL ConWritePaging(IN PCON_PAGER Pager, IN PAGE_PROMPT PagePrompt, IN BOOL StartPaging, IN PCTCH szStr, IN DWORD len)
Definition: pager.c:549

Referenced by ConOutPrintfPaging(), and DirPrintf().

◆ ConSetTitle()

BOOL ConSetTitle ( IN LPCTSTR  lpConsoleTitle)

Definition at line 280 of file console.c.

281{
282 /* Now really set the console title */
283 return SetConsoleTitle(lpConsoleTitle);
284}
#define SetConsoleTitle
Definition: wincon.h:783

Referenced by cmd_title(), ResetConTitle(), and SetConTitle().

◆ GetCursorX()

SHORT GetCursorX ( VOID  )

Definition at line 210 of file console.c.

211{
213
215 return csbi.dwCursorPosition.X;
216}
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:268

Referenced by ReadCommand().

◆ GetCursorXY()

VOID GetCursorXY ( PSHORT  x,
PSHORT  y 
)

Definition at line 200 of file console.c.

201{
203
205
206 *x = csbi.dwCursorPosition.X;
207 *y = csbi.dwCursorPosition.Y;
208}
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 218 of file console.c.

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

◆ GetScreenSize()

VOID GetScreenSize ( PSHORT  maxx,
PSHORT  maxy 
)

Definition at line 236 of file console.c.

237{
239
241 {
242 csbi.dwSize.X = 80;
243 csbi.dwSize.Y = 25;
244 }
245
246 if (maxx) *maxx = csbi.dwSize.X;
247 if (maxy) *maxy = csbi.dwSize.Y;
248}
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 226 of file console.c.

227{
229
230 cci.dwSize = bInsert ? 10 : 99;
231 cci.bVisible = bVisible;
232
234}
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 191 of file console.c.

192{
193 COORD coPos;
194
195 coPos.X = x;
196 coPos.Y = y;
198}
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().