LUFA Library  130303
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ANSI Terminal Escape Codes - LUFA/Drivers/Misc/TerminalCodes.h

ANSI terminal special escape code macros. More...

Macros

#define ANSI_ESCAPE_SEQUENCE(EscapeSeq)   "\33[" EscapeSeq
 

Text Display Modifier Control Sequences

#define ESC_BOLD_ON   ANSI_ESCAPE_SEQUENCE("1m")
 
#define ESC_ITALICS_ON   ANSI_ESCAPE_SEQUENCE("3m")
 
#define ESC_UNDERLINE_ON   ANSI_ESCAPE_SEQUENCE("4m")
 
#define ESC_INVERSE_ON   ANSI_ESCAPE_SEQUENCE("7m")
 
#define ESC_STRIKETHROUGH_ON   ANSI_ESCAPE_SEQUENCE("9m")
 
#define ESC_BOLD_OFF   ANSI_ESCAPE_SEQUENCE("22m")
 
#define ESC_ITALICS_OFF   ANSI_ESCAPE_SEQUENCE("23m")
 
#define ESC_UNDERLINE_OFF   ANSI_ESCAPE_SEQUENCE("24m")
 
#define ESC_INVERSE_OFF   ANSI_ESCAPE_SEQUENCE("27m")
 
#define ESC_STRIKETHROUGH_OFF   ANSI_ESCAPE_SEQUENCE("29m")
 

Text Colour Control Sequences

#define ESC_FG_BLACK   ANSI_ESCAPE_SEQUENCE("30m")
 
#define ESC_FG_RED   ANSI_ESCAPE_SEQUENCE("31m")
 
#define ESC_FG_GREEN   ANSI_ESCAPE_SEQUENCE("32m")
 
#define ESC_FG_YELLOW   ANSI_ESCAPE_SEQUENCE("33m")
 
#define ESC_FG_BLUE   ANSI_ESCAPE_SEQUENCE("34m")
 
#define ESC_FG_MAGENTA   ANSI_ESCAPE_SEQUENCE("35m")
 
#define ESC_FG_CYAN   ANSI_ESCAPE_SEQUENCE("36m")
 
#define ESC_FG_WHITE   ANSI_ESCAPE_SEQUENCE("37m")
 
#define ESC_FG_DEFAULT   ANSI_ESCAPE_SEQUENCE("39m")
 
#define ESC_BG_BLACK   ANSI_ESCAPE_SEQUENCE("40m")
 
#define ESC_BG_RED   ANSI_ESCAPE_SEQUENCE("41m")
 
#define ESC_BG_GREEN   ANSI_ESCAPE_SEQUENCE("42m")
 
#define ESC_BG_YELLOW   ANSI_ESCAPE_SEQUENCE("43m")
 
#define ESC_BG_BLUE   ANSI_ESCAPE_SEQUENCE("44m")
 
#define ESC_BG_MAGENTA   ANSI_ESCAPE_SEQUENCE("45m")
 
#define ESC_BG_CYAN   ANSI_ESCAPE_SEQUENCE("46m")
 
#define ESC_BG_WHITE   ANSI_ESCAPE_SEQUENCE("47m")
 
#define ESC_BG_DEFAULT   ANSI_ESCAPE_SEQUENCE("49m")
 

Cursor Positioning Control Sequences

#define ESC_CURSOR_POS_SAVE   ANSI_ESCAPE_SEQUENCE("s")
 
#define ESC_CURSOR_POS_RESTORE   ANSI_ESCAPE_SEQUENCE("u")
 
#define ESC_CURSOR_POS(Line, Column)   ANSI_ESCAPE_SEQUENCE(#Line ";" #Column "H")
 
#define ESC_CURSOR_UP(Lines)   ANSI_ESCAPE_SEQUENCE(#Lines "A")
 
#define ESC_CURSOR_DOWN(Lines)   ANSI_ESCAPE_SEQUENCE(#Lines "B")
 
#define ESC_CURSOR_FORWARD(Columns)   ANSI_ESCAPE_SEQUENCE(#Columns "C")
 
#define ESC_CURSOR_BACKWARD(Columns)   ANSI_ESCAPE_SEQUENCE(#Columns "D")
 

Miscellaneous Control Sequences

#define ESC_RESET   ANSI_ESCAPE_SEQUENCE("0m")
 
#define ESC_ERASE_DISPLAY   ANSI_ESCAPE_SEQUENCE("2J")
 
#define ESC_ERASE_LINE   ANSI_ESCAPE_SEQUENCE("K")
 

Detailed Description

Module Source Dependencies

The following files must be built with any user project that uses this module:

Module Description

Escape code macros for ANSI compliant text terminals.

Note
If desired, the macro DISABLE_TERMINAL_CODES can be defined in the project makefile and passed to the GCC compiler via the -D switch to disable the terminal codes without modifying the source, for use with non compatible terminals (any terminal codes then equate to empty strings).

Example Usage

The following snippet is an example of how this module may be used within a typical application.

printf("Normal String, "
ESC_BOLD_ON "Bold String, "
ESC_UNDERLINE_ON "Bold and Underlined String"
ESC_RESET ESC_FG_BLUE ESC_BG_YELLOW "Normal Blue-on-Yellow String");

Macro Definition Documentation

#define ANSI_ESCAPE_SEQUENCE (   EscapeSeq)    "\33[" EscapeSeq

Creates an ANSI escape sequence with the specified payload.

Parameters
[in]EscapeSeqPayload to encode as an ANSI escape sequence, a ESC_* mask.
#define ESC_BG_BLACK   ANSI_ESCAPE_SEQUENCE("40m")

Sets the text background colour to black.

#define ESC_BG_BLUE   ANSI_ESCAPE_SEQUENCE("44m")

Sets the text background colour to blue.

#define ESC_BG_CYAN   ANSI_ESCAPE_SEQUENCE("46m")

Sets the text background colour to cyan.

#define ESC_BG_DEFAULT   ANSI_ESCAPE_SEQUENCE("49m")

Sets the text background colour to the terminal's default.

#define ESC_BG_GREEN   ANSI_ESCAPE_SEQUENCE("42m")

Sets the text background colour to green.

#define ESC_BG_MAGENTA   ANSI_ESCAPE_SEQUENCE("45m")

Sets the text background colour to magenta.

#define ESC_BG_RED   ANSI_ESCAPE_SEQUENCE("41m")

Sets the text background colour to red.

#define ESC_BG_WHITE   ANSI_ESCAPE_SEQUENCE("47m")

Sets the text background colour to white.

#define ESC_BG_YELLOW   ANSI_ESCAPE_SEQUENCE("43m")

Sets the text background colour to yellow.

#define ESC_BOLD_OFF   ANSI_ESCAPE_SEQUENCE("22m")

Turns off bold so that any following text is printed to the terminal in non bold.

#define ESC_BOLD_ON   ANSI_ESCAPE_SEQUENCE("1m")

Turns on bold so that any following text is printed to the terminal in bold.

#define ESC_CURSOR_BACKWARD (   Columns)    ANSI_ESCAPE_SEQUENCE(#Columns "D")

Moves the cursor to the left the given number of columns.

Parameters
[in]ColumnsNumber of columns to move the cursor position
#define ESC_CURSOR_DOWN (   Lines)    ANSI_ESCAPE_SEQUENCE(#Lines "B")

Moves the cursor down the given number of lines.

Parameters
[in]LinesNumber of lines to move the cursor position
#define ESC_CURSOR_FORWARD (   Columns)    ANSI_ESCAPE_SEQUENCE(#Columns "C")

Moves the cursor to the right the given number of columns.

Parameters
[in]ColumnsNumber of columns to move the cursor position
#define ESC_CURSOR_POS (   Line,
  Column 
)    ANSI_ESCAPE_SEQUENCE(#Line ";" #Column "H")

Sets the cursor position to the given line and column.

Parameters
[in]LineLine number to position the cursor at.
[in]ColumnColumn number to position the cursor at.
#define ESC_CURSOR_POS_RESTORE   ANSI_ESCAPE_SEQUENCE("u")

Restores the cursor position to the last position saved with ESC_CURSOR_POS_SAVE.

#define ESC_CURSOR_POS_SAVE   ANSI_ESCAPE_SEQUENCE("s")

Saves the current cursor position so that it may be restored with ESC_CURSOR_POS_RESTORE.

#define ESC_CURSOR_UP (   Lines)    ANSI_ESCAPE_SEQUENCE(#Lines "A")

Moves the cursor up the given number of lines.

Parameters
[in]LinesNumber of lines to move the cursor position
#define ESC_ERASE_DISPLAY   ANSI_ESCAPE_SEQUENCE("2J")

Erases the entire display, returning the cursor to the top left.

#define ESC_ERASE_LINE   ANSI_ESCAPE_SEQUENCE("K")

Erases the current line, returning the cursor to the far left.

#define ESC_FG_BLACK   ANSI_ESCAPE_SEQUENCE("30m")

Sets the foreground (text) colour to black.

#define ESC_FG_BLUE   ANSI_ESCAPE_SEQUENCE("34m")

Sets the foreground (text) colour to blue.

#define ESC_FG_CYAN   ANSI_ESCAPE_SEQUENCE("36m")

Sets the foreground (text) colour to cyan.

#define ESC_FG_DEFAULT   ANSI_ESCAPE_SEQUENCE("39m")

Sets the foreground (text) colour to the terminal's default.

#define ESC_FG_GREEN   ANSI_ESCAPE_SEQUENCE("32m")

Sets the foreground (text) colour to green.

#define ESC_FG_MAGENTA   ANSI_ESCAPE_SEQUENCE("35m")

Sets the foreground (text) colour to magenta.

#define ESC_FG_RED   ANSI_ESCAPE_SEQUENCE("31m")

Sets the foreground (text) colour to red.

#define ESC_FG_WHITE   ANSI_ESCAPE_SEQUENCE("37m")

Sets the foreground (text) colour to white.

#define ESC_FG_YELLOW   ANSI_ESCAPE_SEQUENCE("33m")

Sets the foreground (text) colour to yellow.

#define ESC_INVERSE_OFF   ANSI_ESCAPE_SEQUENCE("27m")

Turns off inverse so that any following text is printed to the terminal in non inverted colours.

#define ESC_INVERSE_ON   ANSI_ESCAPE_SEQUENCE("7m")

Turns on inverse so that any following text is printed to the terminal in inverted colours.

#define ESC_ITALICS_OFF   ANSI_ESCAPE_SEQUENCE("23m")

Turns off italics so that any following text is printed to the terminal in non italics.

#define ESC_ITALICS_ON   ANSI_ESCAPE_SEQUENCE("3m")

Turns on italics so that any following text is printed to the terminal in italics.

#define ESC_RESET   ANSI_ESCAPE_SEQUENCE("0m")

Resets any escape sequence modifiers back to their defaults.

#define ESC_STRIKETHROUGH_OFF   ANSI_ESCAPE_SEQUENCE("29m")

Turns off strikethrough so that any following text is printed to the terminal without a line through the center.

#define ESC_STRIKETHROUGH_ON   ANSI_ESCAPE_SEQUENCE("9m")

Turns on strikethrough so that any following text is printed to the terminal with a line through the center.

#define ESC_UNDERLINE_OFF   ANSI_ESCAPE_SEQUENCE("24m")

Turns off underline so that any following text is printed to the terminal non underlined.

#define ESC_UNDERLINE_ON   ANSI_ESCAPE_SEQUENCE("4m")

Turns on underline so that any following text is printed to the terminal underlined.