iPXE
|
ANSI escape sequences. More...
Go to the source code of this file.
Data Structures | |
struct | ansiesc_handler |
A handler for an escape sequence. More... | |
struct | ansiesc_context |
ANSI escape sequence context. More... | |
Macros | |
#define | ANSIESC_MAX_PARAMS 5 |
Maximum number of parameters within a single escape sequence. More... | |
#define | ESC 0x1b |
Escape character. More... | |
#define | CSI "\033[" |
Control Sequence Introducer. More... | |
#define | ANSIESC_CUP 'H' |
Cursor position. More... | |
#define | ANSIESC_ED 'J' |
Erase in page. More... | |
#define | ANSIESC_ED_TO_END 0 |
Erase from cursor to end of page. More... | |
#define | ANSIESC_ED_FROM_START 1 |
Erase from start of page to cursor. More... | |
#define | ANSIESC_ED_ALL 2 |
Erase whole page. More... | |
#define | ANSIESC_SGR 'm' |
Select graphic rendition. More... | |
#define | ANSIESC_LOG_PRIORITY 'p' |
Explicit log message priority. More... | |
#define | ANSIESC_DECTCEM_SET ( ( '?' << 8 ) | 'h' ) |
Show cursor. More... | |
#define | ANSIESC_DECTCEM_RESET ( ( '?' << 8 ) | 'l' ) |
Hide cursor. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
int | ansiesc_process (struct ansiesc_context *ctx, int c) |
Process character that may be part of ANSI escape sequence. More... | |
ANSI escape sequences.
ANSI X3.64 (aka ECMA-48 or ISO/IEC 6429, available from http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf) defines escape sequences consisting of:
A Control Sequence Introducer (CSI) Zero or more Parameter Bytes (P) Zero or more Intermediate Bytes (I) A Final Byte (F)
The CSI consists of ESC (0x1b) followed by "[" (0x5b). The Parameter Bytes, for a standardised (i.e. not private or experimental) sequence, consist of a list of ASCII decimal integers separated by semicolons. The Intermediate Bytes (in the range 0x20 to 0x2f) and the Final Byte (in the range 0x40 to 0x4f) determine the control function.
Definition in file ansiesc.h.
#define ANSIESC_MAX_PARAMS 5 |
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
int ansiesc_process | ( | struct ansiesc_context * | ctx, |
int | c | ||
) |
Process character that may be part of ANSI escape sequence.
ctx | ANSI escape sequence context |
c | Character |
c | Original character if not part of escape sequence |
<0 | Character was part of escape sequence |
ANSI escape sequences will be plucked out of the character stream and interpreted; once complete they will be passed to the appropriate handler if one exists in this ANSI escape sequence context.
In the interests of code size, we are rather liberal about the sequences we are prepared to accept as valid.
Definition at line 74 of file ansiesc.c.
References ansiesc_call_handler(), c, count, ctx, DBG, ESC, memset(), and param.
Referenced by bios_putchar(), efi_putchar(), fbcon_putchar(), and line_putchar().