2005-09-20 23:26:39 +10:00
/** \file input_common.h
Header file for the low level input library
*/
2005-10-05 01:11:39 +10:00
# ifndef INPUT_COMMON_H
# define INPUT_COMMON_H
# include <wchar.h>
2005-09-20 23:26:39 +10:00
2006-01-24 06:40:14 +10:00
/**
2005-10-20 21:27:54 +10:00
Use unencoded private - use keycodes for internal characters
*/
# define INPUT_COMMON_RESERVED 0xe000
2005-09-20 23:26:39 +10:00
enum
{
2005-10-20 21:27:54 +10:00
/**
R_NULL is sometimes returned by the input when a character was
requested but none could be delivered , or when an exception
happened .
*/
2006-05-14 20:16:23 +10:00
R_NULL = INPUT_COMMON_RESERVED ,
R_EOF
2005-09-20 23:26:39 +10:00
}
;
2006-01-24 06:40:14 +10:00
/**
Init the library
*/
2005-09-20 23:26:39 +10:00
void input_common_init ( int ( * ih ) ( ) ) ;
2006-01-24 06:40:14 +10:00
/**
Free memory used by the library
*/
2005-09-20 23:26:39 +10:00
void input_common_destroy ( ) ;
/**
Function used by input_readch to read bytes from stdin until enough
bytes have been read to convert them to a wchar_t . Conversion is
done using mbrtowc . If a character has previously been read and
then ' unread ' using \ c input_common_unreadch , that character is
returned . If timed is true , readch2 will wait at most
WAIT_ON_ESCAPE milliseconds for a character to be available for
reading before returning with the value WEOF .
*/
wchar_t input_common_readch ( int timed ) ;
2006-01-24 06:40:14 +10:00
/**
Push a character or a readline function onto the stack of unread
characters that input_readch will return before actually reading from fd
0.
*/
2005-09-20 23:26:39 +10:00
void input_common_unreadch ( wint_t ch ) ;
# endif