summaryrefslogtreecommitdiffstats
path: root/tapset/ansi.stp
blob: 0152fb379f76a5faaad4607d76eae696ff064323 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# 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
#

function ansi_clear_screen() {
	print("\033[1;1H\033[J")
}

# Foreground colors | Background colors
# Black       30    | Black       40
# Blue        34    | Red         41
# Green       32    | Green       42
# Cyan        36    | Yellow      43
# Red         31    | Blue        44
# Purple      35    | Magenta     45
# Brown       33    | Cyan        46
# Light Gray  37    | White       47
function ansi_set_color(fg:long) {
	printf("\033[%dm", fg)
}

function ansi_set_color2(fg:long, bg:long) {
	printf("\033[%d;%dm", bg, fg)
}

# All attributes off  0
# Intensity: Bold     1
# Underline: Single   4
# Blink: Slow         5
# Blink: Rapid        6
# Image: Negative     7
function ansi_set_color3(fg:long, bg:long, attr:long) {
	attr_str = attr ? sprintf(";%dm", attr) : "m"
	printf("\033[%d;%d%s", bg, fg, attr_str)
}

function ansi_reset_color() {
	ansi_set_color3(0, 0, 0)
}

function ansi_new_line() {
	printf("\12")
}

function ansi_cursor_move(x:long, y:long) {
	printf("\033[%d;%dH", y, x)
}

function ansi_cursor_hide() {
	print("\033[>5I")
}

function ansi_cursor_save() {
	print("\033[s")
}

function ansi_cursor_restore() {
	print("\033[u")
}

function ansi_cursor_show() {
	print("\033[>5h")
}