ReactOS  0.4.13-dev-52-g0efcfec
conio.h File Reference
#include <crtdefs.h>
#include <stdarg.h>
#include <sec_api/conio_s.h>
Include dependency graph for conio.h:

Go to the source code of this file.

Macros

#define __need___va_list
 
#define _WCONIO_DEFINED
 
#define WEOF   (wint_t)(0xFFFF)
 
#define _putwch()   _putwch_nolock()
 
#define _getwch()   _getwch_nolock()
 
#define _getwche()   _getwche_nolock()
 
#define _ungetwch()   _ungetwch_nolock()
 

Functions

_CRTIMP char *__cdecl _cgets (_Pre_notnull_ _Post_z_ char *_Buffer)
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf (_In_z_ _Printf_format_string_ const char *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _cputs (_In_z_ const char *_Str)
 
_Check_return_opt_ _CRTIMP int __cdecl _cscanf (_In_z_ _Scanf_format_string_ const char *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _cscanf_l (_In_z_ _Scanf_format_string_ const char *_Format, _In_opt_ _locale_t _Locale,...)
 
_Check_return_ _CRTIMP int __cdecl _getch (void)
 
_Check_return_ _CRTIMP int __cdecl _getche (void)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf (_In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_p (_In_z_ _Printf_format_string_ const char *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p (_In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_l (_In_z_ _Printf_format_string_ const char *_Format, _In_opt_ _locale_t _Locale,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_l (_In_z_ _Printf_format_string_ const char *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList)
 
_Check_return_opt_ _CRTIMP int __cdecl _cprintf_p_l (_In_z_ _Printf_format_string_ const char *_Format, _In_opt_ _locale_t _Locale,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p_l (_In_z_ _Printf_format_string_ const char *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList)
 
_CRTIMP int __cdecl _kbhit (void)
 
_CRTIMP int __cdecl _putch (_In_ int _Ch)
 
_CRTIMP int __cdecl _ungetch (_In_ int _Ch)
 
_Check_return_ _CRTIMP int __cdecl _getch_nolock (void)
 
_Check_return_ _CRTIMP int __cdecl _getche_nolock (void)
 
_CRTIMP int __cdecl _putch_nolock (_In_ int _Ch)
 
_CRTIMP int __cdecl _ungetch_nolock (_In_ int _Ch)
 
_CRTIMP wchar_t_cgetws (_Pre_notnull_ _Post_z_ wchar_t *_Buffer)
 
_Check_return_ _CRTIMP wint_t __cdecl _putwch (wchar_t _WCh)
 
_Check_return_ _CRTIMP wint_t __cdecl _ungetwch (wint_t _WCh)
 
_Check_return_opt_ _CRTIMP int __cdecl _cputws (_In_z_ const wchar_t *_String)
 
_Check_return_opt_ _CRTIMP int __cdecl _cwprintf (_In_z_ _Printf_format_string_ const wchar_t *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _cwscanf (_In_z_ _Scanf_format_string_ const wchar_t *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _cwscanf_l (_In_z_ _Scanf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcwprintf (_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
 
_Check_return_opt_ _CRTIMP int __cdecl _cwprintf_p (_In_z_ _Printf_format_string_ const wchar_t *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl _vcwprintf_p (_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
 
_CRTIMP int __cdecl _cwprintf_l (_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale,...)
 
_CRTIMP int __cdecl _vcwprintf_l (_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList)
 
_CRTIMP int __cdecl _cwprintf_p_l (_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale,...)
 
_CRTIMP int __cdecl _vcwprintf_p_l (_In_z_ _Printf_format_string_ const wchar_t *_Format, _In_opt_ _locale_t _Locale, va_list _ArgList)
 
_Check_return_opt_ _CRTIMP wint_t __cdecl _putwch_nolock (wchar_t _WCh)
 
_Check_return_ _CRTIMP wint_t __cdecl _getwch_nolock (void)
 
_Check_return_ _CRTIMP wint_t __cdecl _getwche_nolock (void)
 
_Check_return_opt_ _CRTIMP wint_t __cdecl _ungetwch_nolock (wint_t _WCh)
 
_Check_return_opt_ _CRTIMP char *__cdecl cgets (_Out_writes_z_(_Inexpressible_(*_Buffer+2)) char *_Buffer)
 
_Check_return_opt_ _CRTIMP int __cdecl cprintf (_In_z_ _Printf_format_string_ const char *_Format,...)
 
_Check_return_opt_ _CRTIMP int __cdecl cputs (_In_z_ const char *_Str)
 
_Check_return_opt_ _CRTIMP int __cdecl cscanf (_In_z_ _Scanf_format_string_ const char *_Format,...)
 
_Check_return_ _CRTIMP int __cdecl getch (void)
 
_Check_return_ _CRTIMP int __cdecl getche (void)
 
_Check_return_ _CRTIMP int __cdecl kbhit (void)
 
_Check_return_opt_ _CRTIMP int __cdecl putch (int _Ch)
 
_Check_return_opt_ _CRTIMP int __cdecl ungetch (int _Ch)
 

Macro Definition Documentation

◆ __need___va_list

#define __need___va_list

This file has no copyright assigned and is placed in the Public Domain. This file is part of the w64 mingw-runtime package. No warranty is given; refer to the file DISCLAIMER within this package.

Definition at line 11 of file conio.h.

◆ _getwch

Definition at line 339 of file conio.h.

◆ _getwche

Definition at line 340 of file conio.h.

◆ _putwch

#define _putwch ( )    _putwch_nolock()

Definition at line 338 of file conio.h.

◆ _ungetwch

#define _ungetwch ( )    _ungetwch_nolock()

Definition at line 341 of file conio.h.

◆ _WCONIO_DEFINED

#define _WCONIO_DEFINED

Definition at line 182 of file conio.h.

◆ WEOF

#define WEOF   (wint_t)(0xFFFF)

Definition at line 185 of file conio.h.

Function Documentation

◆ _cgets()

_CRTIMP char* __cdecl _cgets ( _Pre_notnull_ _Post_z_ char _Buffer)

◆ _cgetws()

_CRTIMP wchar_t* _cgetws ( _Pre_notnull_ _Post_z_ wchar_t _Buffer)

◆ _cprintf()

◆ _cprintf_l()

◆ _cprintf_p()

◆ _cprintf_p_l()

_Check_return_opt_ _CRTIMP int __cdecl _cprintf_p_l ( _In_z_ _Printf_format_string_ const char _Format,
_In_opt_ _locale_t  _Locale,
  ... 
)

◆ _cputs()

◆ _cputws()

◆ _cscanf()

◆ _cscanf_l()

◆ _cwprintf()

◆ _cwprintf_l()

_CRTIMP int __cdecl _cwprintf_l ( _In_z_ _Printf_format_string_ const wchar_t _Format,
_In_opt_ _locale_t  _Locale,
  ... 
)

◆ _cwprintf_p()

◆ _cwprintf_p_l()

_CRTIMP int __cdecl _cwprintf_p_l ( _In_z_ _Printf_format_string_ const wchar_t _Format,
_In_opt_ _locale_t  _Locale,
  ... 
)

◆ _cwscanf()

◆ _cwscanf_l()

◆ _getch()

Definition at line 16 of file getch.c.

17 {
18  DWORD NumberOfCharsRead = 0;
19  char c;
20  HANDLE ConsoleHandle;
21  BOOL RestoreMode;
22  DWORD ConsoleMode;
23 
24  if (char_avail) {
25  c = ungot_char;
26  char_avail = 0;
27  } else {
28  /*
29  * _getch() is documented to NOT echo characters. Testing shows it
30  * doesn't wait for a CR either. So we need to switch off
31  * ENABLE_ECHO_INPUT and ENABLE_LINE_INPUT if they're currently
32  * switched on.
33  */
34  ConsoleHandle = (HANDLE) _get_osfhandle(stdin->_file);
35  RestoreMode = GetConsoleMode(ConsoleHandle, &ConsoleMode) &&
36  (0 != (ConsoleMode &
38  if (RestoreMode) {
39  SetConsoleMode(ConsoleHandle,
40  ConsoleMode & (~ (ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT)));
41  }
43  &c,
44  1,
45  &NumberOfCharsRead,
46  NULL);
47  if (RestoreMode) {
48  SetConsoleMode(ConsoleHandle, ConsoleMode);
49  }
50  }
51  if (c == 10)
52  c = 13;
53  return c;
54 }
int char_avail
Definition: ungetch.c:15
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
Definition: console.c:1571
FILE * stdin
#define ENABLE_ECHO_INPUT
Definition: wincon.h:77
_CRTIMP intptr_t __cdecl _get_osfhandle(_In_ int _FileHandle)
unsigned int BOOL
Definition: ntddk_ex.h:94
int ungot_char
Definition: ungetch.c:16
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
Definition: console.c:1608
smooth NULL
Definition: ftsmooth.c:416
const GLubyte * c
Definition: glext.h:8905
PVOID HANDLE
Definition: typedefs.h:71
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL WINAPI DECLSPEC_HOTPATCH ReadConsoleA(IN HANDLE hConsoleInput, OUT LPVOID lpBuffer, IN DWORD nNumberOfCharsToRead, OUT LPDWORD lpNumberOfCharsRead, IN PCONSOLE_READCONSOLE_CONTROL pInputControl OPTIONAL)
Definition: readwrite.c:1197
#define ENABLE_LINE_INPUT
Definition: wincon.h:76
int _file
Definition: mbstring.h:24
#define c
Definition: ke_i.h:80

◆ _getch_nolock()

_Check_return_ _CRTIMP int __cdecl _getch_nolock ( void  )

◆ _getche()

Definition at line 15 of file getche.c.

16 {
17  if (char_avail)
18  /*
19  * We don't know, wether the ungot char was already echoed
20  * we assume yes (for example in cscanf, probably the only
21  * place where ungetch is ever called.
22  * There is no way to check for this really, because
23  * ungetch could have been called with a character that
24  * hasn't been got by a conio function.
25  * We don't echo again.
26  */
27  return(_getch());
28  return (_putch(_getch()));
29 }
int char_avail
Definition: ungetch.c:15
_CRTIMP int __cdecl _putch(_In_ int _Ch)
int _getch()
Definition: getch.c:16

◆ _getche_nolock()

_Check_return_ _CRTIMP int __cdecl _getche_nolock ( void  )

◆ _getwch_nolock()

_Check_return_ _CRTIMP wint_t __cdecl _getwch_nolock ( void  )

◆ _getwche_nolock()

_Check_return_ _CRTIMP wint_t __cdecl _getwche_nolock ( void  )

◆ _kbhit()

_CRTIMP int __cdecl _kbhit ( void  )

Definition at line 21 of file kbhit.c.

22 {
23  PINPUT_RECORD InputRecord = NULL;
24  DWORD NumberRead = 0;
25  DWORD EventsRead = 0;
26  DWORD RecordIndex = 0;
27  DWORD BufferIndex = 0;
28  HANDLE StdInputHandle = 0;
29  DWORD ConsoleInputMode = 0;
30 
31  /* Attempt some thread safety */
33  {
36  }
37 
39 
40  if (char_avail)
41  {
43  return 1;
44  }
45 
46  StdInputHandle = GetStdHandle(STD_INPUT_HANDLE);
47 
48  /* Turn off processed input so we get key modifiers as well */
49  GetConsoleMode(StdInputHandle, &ConsoleInputMode);
50 
51  SetConsoleMode(StdInputHandle, ConsoleInputMode & ~ENABLE_PROCESSED_INPUT);
52 
53  /* Start the process */
54  if (!GetNumberOfConsoleInputEvents(StdInputHandle, &EventsRead))
55  {
57  return 0;
58  }
59 
60  if (!EventsRead)
61  {
63  return 0;
64  }
65 
66  if (!(InputRecord = (PINPUT_RECORD)malloc(EventsRead * sizeof(INPUT_RECORD))))
67  {
69  return 0;
70  }
71 
72  if (!PeekConsoleInput(StdInputHandle, InputRecord, EventsRead, &NumberRead))
73  {
74  free(InputRecord);
76  return 0;
77  }
78 
79  for (RecordIndex = 0; RecordIndex < NumberRead; RecordIndex++)
80  {
81  if (InputRecord[RecordIndex].EventType == KEY_EVENT &&
82  InputRecord[RecordIndex].Event.KeyEvent.bKeyDown)
83  {
84  BufferIndex = 1;
85  break;
86  }
87  }
88 
89  free(InputRecord);
90 
91  /* Restore console input mode */
92  SetConsoleMode(StdInputHandle, ConsoleInputMode);
93 
95 
96  return BufferIndex;
97 }
BOOL WINAPI InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount)
Definition: synch.c:711
#define TRUE
Definition: types.h:120
int char_avail
Definition: ungetch.c:15
#define free
Definition: debug_ros.c:5
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
Definition: console.c:1571
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
Definition: console.c:152
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
BOOL WINAPI PeekConsoleInput(IN HANDLE hConsoleInput, OUT PINPUT_RECORD lpBuffer, IN DWORD nLength, OUT LPDWORD lpNumberOfEventsRead)
Definition: console.c:215
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
Definition: console.c:1608
#define KEY_EVENT
Definition: wincon.h:122
smooth NULL
Definition: ftsmooth.c:416
#define STD_INPUT_HANDLE
Definition: winbase.h:264
static CRITICAL_SECTION CriticalSection
Definition: kbhit.c:14
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput, LPDWORD lpNumberOfEvents)
Definition: console.c:1637
#define ENABLE_PROCESSED_INPUT
Definition: wincon.h:75
#define malloc
Definition: debug_ros.c:4
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
Definition: exfuncs.h:165
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
volatile BOOL CriticalSectionInitialized
Definition: kbhit.c:15

Referenced by gl_getcx(), and main().

◆ _putch()

◆ _putch_nolock()

_CRTIMP int __cdecl _putch_nolock ( _In_ int  _Ch)

◆ _putwch()

Definition at line 3701 of file file.c.

3702 {
3703  return fputwc(c, stdout);
3704 }
wint_t CDECL fputwc(wchar_t c, FILE *stream)
Definition: file.c:3145
FILE * stdout
const GLubyte * c
Definition: glext.h:8905

◆ _putwch_nolock()

_Check_return_opt_ _CRTIMP wint_t __cdecl _putwch_nolock ( wchar_t  _WCh)

◆ _ungetch()

_CRTIMP int __cdecl _ungetch ( _In_ int  _Ch)

◆ _ungetch_nolock()

_CRTIMP int __cdecl _ungetch_nolock ( _In_ int  _Ch)

◆ _ungetwch()

◆ _ungetwch_nolock()

_Check_return_opt_ _CRTIMP wint_t __cdecl _ungetwch_nolock ( wint_t  _WCh)

◆ _vcprintf()

Referenced by _cprintf().

◆ _vcprintf_l()

_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_l ( _In_z_ _Printf_format_string_ const char _Format,
_In_opt_ _locale_t  _Locale,
va_list  _ArgList 
)

◆ _vcprintf_p()

◆ _vcprintf_p_l()

_Check_return_opt_ _CRTIMP int __cdecl _vcprintf_p_l ( _In_z_ _Printf_format_string_ const char _Format,
_In_opt_ _locale_t  _Locale,
va_list  _ArgList 
)

◆ _vcwprintf()

Referenced by _cwprintf().

◆ _vcwprintf_l()

_CRTIMP int __cdecl _vcwprintf_l ( _In_z_ _Printf_format_string_ const wchar_t _Format,
_In_opt_ _locale_t  _Locale,
va_list  _ArgList 
)

◆ _vcwprintf_p()

◆ _vcwprintf_p_l()

_CRTIMP int __cdecl _vcwprintf_p_l ( _In_z_ _Printf_format_string_ const wchar_t _Format,
_In_opt_ _locale_t  _Locale,
va_list  _ArgList 
)

◆ cgets()

_Check_return_opt_ _CRTIMP char* __cdecl cgets ( _Out_writes_z_(_Inexpressible_(*_Buffer+2)) char _Buffer)

◆ cprintf()

◆ cputs()

◆ cscanf()

◆ getch()

Definition at line 180 of file mwerks_console_OS_X.c.

181 {
182  return 0;
183 }

Referenced by interact(), main(), and tokenize().

◆ getche()

◆ kbhit()

Definition at line 175 of file mwerks_console_OS_X.c.

176 {
177  return 0;
178 }

◆ putch()

◆ ungetch()