This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1/2] new ANSI escape sequences tapset


This adds a new tapset for ANSI escape sequences. It is based on an
existing tapset that was written by Masami Hiramatsu for the stapgames
project. This also adds a modified version of the ansi_color.stp script
so that it displays other attributes other than the bold effect.
---
 tapset/ansi.stp                                    |   70 ++++++++++++++++++++
 .../systemtap.examples/general/ansi_colors2.stp    |   31 +++++++++
 2 files changed, 101 insertions(+), 0 deletions(-)
 create mode 100644 tapset/ansi.stp
 create mode 100755 testsuite/systemtap.examples/general/ansi_colors2.stp

diff --git a/tapset/ansi.stp b/tapset/ansi.stp
new file mode 100644
index 0000000..77bd762
--- /dev/null
+++ b/tapset/ansi.stp
@@ -0,0 +1,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 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 set_color(fg:long) {
+	printf("\033[%dm", fg)
+}
+
+function 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 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 reset_color() {
+	set_color3(0, 0, 0)
+}
+
+function new_line() {
+	printf("\12")
+}
+
+function cursor_move(x:long, y:long) {
+	printf("\033[%d;%dH", y, x)
+}
+
+function cursor_hide() {
+	print("\033[>5I")
+}
+
+function cursor_save() {
+	print("\033[s")
+}
+
+function cursor_restore() {
+	print("\033[u")
+}
+
+function cursor_show() {
+	print("\033[>5h")
+}
diff --git a/testsuite/systemtap.examples/general/ansi_colors2.stp b/testsuite/systemtap.examples/general/ansi_colors2.stp
new file mode 100755
index 0000000..9e6ee67
--- /dev/null
+++ b/testsuite/systemtap.examples/general/ansi_colors2.stp
@@ -0,0 +1,31 @@
+#!/usr/bin/env stap
+# ansi_colors2.stp
+# 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.
+#
+
+probe begin {
+	printf("a \\ b |");
+	for (c = 40; c < 48; c++)
+		printf("   %d   ", c);
+	new_line()
+	for (l = 0; l < 71; l++)
+		printf("-");
+	new_line()
+
+	for (r = 30; r < 38; r++)
+		# this displays more attributes
+		for (t = 0; t < 8; !t ? ++t : t+=3) {
+			printf("%d    |", r);
+			for (c = 40; c < 48; c++) {
+				set_color3(r, c, t)
+				printf(" %s ", !t ? "Normal" : "Bold  ")
+				reset_color()
+			}
+			new_line()
+		}
+	exit();
+}
-- 
1.6.0.6


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]