Blob Blame History Raw
# ANSI escape sequences tapset
# Copyright (C) 2009 Red Hat, Inc., Eugene Teo <eteo@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# Based on some previous work done by Masami Hiramatsu for stapgames.
# Reference: http://en.wikipedia.org/wiki/ANSI_escape_code
#
/**
* sfunction ansi_clear_screen - Move cursor to top left and clear screen.
*
* Description: Sends ansi code for moving cursor to top left and then the
* ansi code for clearing the screen from the cursor position to the end.
**/
function ansi_clear_screen() {
print("\033[1;1H\033[J")
}
/**
* sfunction ansi_set_color - Set the ansi Select Graphic Rendition mode.
* @fg: Foreground color to set.
*
* Description: Sends ansi code for Select Graphic Rendition mode for the
* given forground color. Black (30), Blue (34), Green (32), Cyan (36),
* Red (31), Purple (35), Brown (33), Light Gray (37).
*/
function ansi_set_color(fg:long) {
printf("\033[%dm", fg)
}
/**
* sfunction ansi_set_color - Set the ansi Select Graphic Rendition mode.
* @fg: Foreground color to set.
* @bg: Background color to set.
*
* Description: Sends ansi code for Select Graphic Rendition mode for the
* given forground color, Black (30), Blue (34), Green (32), Cyan (36),
* Red (31), Purple (35), Brown (33), Light Gray (37) and the given
* background color, Black (40), Red (41), Green (42), Yellow (43),
* Blue (44), Magenta (45), Cyan (46), White (47).
*/
function ansi_set_color(fg:long, bg:long) {
printf("\033[%d;%dm", bg, fg)
}
function ansi_set_color2(fg:long, bg:long) {
ansi_set_color(fg, bg);
}
/**
* sfunction ansi_set_color - Set the ansi Select Graphic Rendition mode.
* @fg: Foreground color to set.
* @bg: Background color to set.
* @attr: Color attribute to set.
*
* Description: Sends ansi code for Select Graphic Rendition mode for the
* given forground color, Black (30), Blue (34), Green (32), Cyan (36),
* Red (31), Purple (35), Brown (33), Light Gray (37), the given
* background color, Black (40), Red (41), Green (42), Yellow (43),
* Blue (44), Magenta (45), Cyan (46), White (47) and the color attribute
* All attributes off (0), Intensity Bold (1), Underline Single (4),
* Blink Slow (5), Blink Rapid (6), Image Negative (7).
*/
function ansi_set_color(fg:long, bg:long, attr:long) {
attr_str = attr ? sprintf(";%dm", attr) : "m"
printf("\033[%d;%d%s", bg, fg, attr_str)
}
function ansi_set_color3(fg:long, bg:long, attr:long) {
ansi_set_color(fg, bg, attr);
}
/**
* sfunction ansi_reset_color - Resets Select Graphic Rendition mode.
*
* Description: Sends ansi code to reset foreground, background and color
* attribute to default values.
*/
function ansi_reset_color() {
ansi_set_color(0, 0, 0)
}
/**
* sfunction ansi_new_line - Move cursor to new line.
*
* Description: Sends ansi code new line.
*/
function ansi_new_line() {
printf("\12")
}
/**
* sfunction ansi_cursor_move - Move cursor to new coordinates.
* @x: Row to move the cursor to.
* @y: Colomn to move the cursor to.
*
* Description: Sends ansi code for positioning the cursor at row x
* and column y. Coordinates start at one, (1,1) is the top-left corner.
*/
function ansi_cursor_move(x:long, y:long) {
printf("\033[%d;%dH", y, x)
}
/**
* sfunction ansi_cursor_hide - Hides the cursor.
*
* Description: Sends ansi code for hiding the cursor.
*/
function ansi_cursor_hide() {
print("\033[>5I")
}
/**
* sfunction ansi_cursor_save - Saves the cursor position.
*
* Description: Sends ansi code for saving the current cursor position.
*/
function ansi_cursor_save() {
print("\033[s")
}
/**
* sfunction ansi_cursor_restore - Restores a previously saved cursor position.
*
* Description: Sends ansi code for restoring the current cursor position
* previously saved with ansi_cursor_save().
*/
function ansi_cursor_restore() {
print("\033[u")
}
/**
* sfunction ansi_cursor_show - Shows the cursor.
*
* Description: Sends ansi code for showing the cursor.
*/
function ansi_cursor_show() {
print("\033[>5h")
}