CLISH  0.7.3
Macros | Typedefs | Enumerations | Functions

A simple class for controlling and interacting with a VT100 compatible terminal. More...

Macros

#define KEY_NUL   0
 
#define KEY_SOH   1
 
#define KEY_STX   2
 
#define KEY_ETX   3
 
#define KEY_EOT   4
 
#define KEY_ENQ   5
 
#define KEY_ACK   6
 
#define KEY_BEL   7
 
#define KEY_BS   8
 
#define KEY_HT   9
 
#define KEY_LF   10
 
#define KEY_VT   11
 
#define KEY_FF   12
 
#define KEY_CR   13
 
#define KEY_SO   14
 
#define KEY_SI   15
 
#define KEY_DLE   16
 
#define KEY_DC1   17
 
#define KEY_DC2   18
 
#define KEY_DC3   19
 
#define KEY_DC4   20
 
#define KEY_NAK   21
 
#define KEY_SYN   22
 
#define KEY_ETB   23
 
#define KEY_CAN   24
 
#define KEY_EM   25
 
#define KEY_SUB   26
 
#define KEY_ESC   27
 
#define KEY_FS   28
 
#define KEY_GS   29
 
#define KEY_RS   30
 
#define KEY_US   31
 
#define KEY_DEL   127
 

Typedefs

typedef typedef_BEGIN_C_DECL
struct _tinyrl_vt100 
tinyrl_vt100_t
 

Enumerations

enum  tinyrl_vt100_escape_t {
  tinyrl_vt100_UNKNOWN, tinyrl_vt100_CURSOR_UP, tinyrl_vt100_CURSOR_DOWN, tinyrl_vt100_CURSOR_LEFT,
  tinyrl_vt100_CURSOR_RIGHT
}
 

Functions

tinyrl_vt100_t * tinyrl_vt100_new (FILE *instream, FILE *outstream)
 
void tinyrl_vt100_delete (tinyrl_vt100_t *instance)
 
int tinyrl_vt100_printf (const tinyrl_vt100_t *instance, const char *fmt,...)
 
int tinyrl_vt100_vprintf (const tinyrl_vt100_t *instance, const char *fmt, va_list args)
 
int tinyrl_vt100_oflush (const tinyrl_vt100_t *instance)
 
int tinyrl_vt100_ierror (const tinyrl_vt100_t *instance)
 
int tinyrl_vt100_oerror (const tinyrl_vt100_t *instance)
 
int tinyrl_vt100_ieof (const tinyrl_vt100_t *instance)
 
int tinyrl_vt100_getchar (const tinyrl_vt100_t *instance)
 
unsigned tinyrl_vt100__get_width (const tinyrl_vt100_t *instance)
 
unsigned tinyrl_vt100__get_height (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100__set_istream (tinyrl_vt100_t *instance, FILE *istream)
 
FILE * tinyrl_vt100__get_istream (const tinyrl_vt100_t *instance)
 
FILE * tinyrl_vt100__get_ostream (const tinyrl_vt100_t *instance)
 
tinyrl_vt100_escape_t tinyrl_vt100_escape_decode (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_ding (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_reset (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_bright (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_dim (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_underscore (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_blink (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_reverse (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_attribute_hidden (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_erase_line (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_clear_screen (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_cursor_back (const tinyrl_vt100_t *instance, unsigned count)
 
void tinyrl_vt100_cursor_forward (const tinyrl_vt100_t *instance, unsigned count)
 
void tinyrl_vt100_cursor_up (const tinyrl_vt100_t *instance, unsigned count)
 
void tinyrl_vt100_cursor_down (const tinyrl_vt100_t *instance, unsigned count)
 
void tinyrl_vt100_cursor_home (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_cursor_save (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_cursor_restore (const tinyrl_vt100_t *instance)
 
void tinyrl_vt100_erase (const tinyrl_vt100_t *instance, unsigned count)
 

Detailed Description

A simple class for controlling and interacting with a VT100 compatible terminal.

This class has been implemented pragmatically in an as needed fashion, so doesn't support all the features of a VT100 terminal.

Macro Definition Documentation

#define KEY_ACK   6

^F Acknowledge, clears ENQ logon hand

#define KEY_BEL   7

^G Bell, rings the bell...

#define KEY_BS   8

^H Backspace, works on HP terminals/computers

#define KEY_CAN   24

^X Cancel line, MPE echoes !!!

#define KEY_CR   13

^M Carriage Return

#define KEY_DC1   17

^Q XON, with XOFF to pause listings; "okay to send".

#define KEY_DC2   18

^R Device control 2, block-mode flow control

#define KEY_DC3   19

^S XOFF, with XON is TERM=18 flow control

#define KEY_DC4   20

^T Device control 4

#define KEY_DEL   127

Delete (not a real control character...)

#define KEY_DLE   16

^P Data link escape

#define KEY_EM   25

^Y End of medium, Control-Y interrupt

#define KEY_ENQ   5

^E Enquiry, goes with ACK; old HP flow control

#define KEY_EOT   4

^D End of transmission, not the same as ETB

#define KEY_ESC   27

^[ Escape, next character is not echoed

#define KEY_ETB   23

^W End transmission block, not the same as EOT

#define KEY_ETX   3

^C End of text

#define KEY_FF   12

^L Form Feed, page eject

#define KEY_FS   28

^\ File separator

#define KEY_GS   29

^] Group separator

#define KEY_HT   9

^I Horizontal tab, move to next tab stop

#define KEY_LF   10

^J Line Feed

#define KEY_NAK   21

^U Negative acknowledge

#define KEY_NUL   0

^@ Null character

#define KEY_RS   30

^^ Record separator, block-mode terminator

#define KEY_SI   15

^O Shift In, resume defaultn character set

#define KEY_SO   14

^N Shift Out, alternate character set

#define KEY_SOH   1

^A Start of heading, = console interrupt

#define KEY_STX   2

^B Start of text, maintenance mode on HP console

#define KEY_SUB   26

^Z Substitute

#define KEY_SYN   22

^V Synchronous idle

#define KEY_US   31

^_ Unit separator

#define KEY_VT   11

^K Vertical tab

Enumeration Type Documentation

This enumeration is used to identify the types of escape code

Enumerator
tinyrl_vt100_UNKNOWN 

Undefined escape sequence

tinyrl_vt100_CURSOR_UP 

Move the cursor up

tinyrl_vt100_CURSOR_DOWN 

Move the cursor down

tinyrl_vt100_CURSOR_LEFT 

Move the cursor left

tinyrl_vt100_CURSOR_RIGHT 

Move the cursor right