]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
New module 'term-ostream-tests'.
authorBruno Haible <bruno@clisp.org>
Mon, 4 Dec 2006 13:31:45 +0000 (13:31 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:14:26 +0000 (12:14 +0200)
gnulib-local/ChangeLog
gnulib-local/Makefile.am
gnulib-local/modules/term-ostream-tests [new file with mode: 0644]
gnulib-local/tests/test-term-ostream-xterm [new file with mode: 0755]
gnulib-local/tests/test-term-ostream-xterm-16color.out [new file with mode: 0644]
gnulib-local/tests/test-term-ostream-xterm-256color.out [new file with mode: 0644]
gnulib-local/tests/test-term-ostream-xterm-88color.out [new file with mode: 0644]
gnulib-local/tests/test-term-ostream-xterm.out [new file with mode: 0644]
gnulib-local/tests/test-term-ostream.c [new file with mode: 0644]

index b24c90bd2a67d69572f4ec7388b072155632c0a9..5a713bac929913f4c9530c8fcadf528c570efb3c 100644 (file)
@@ -1,3 +1,14 @@
+2006-12-01  Bruno Haible  <bruno@clisp.org>
+
+       * modules/term-ostream-tests: New file.
+       * tests/test-term-ostream.c: New file.
+       * tests/test-term-ostream-xterm: New file.
+       * tests/test-term-ostream-xterm.out: New file.
+       * tests/test-term-ostream-xterm-16color.out: New file.
+       * tests/test-term-ostream-xterm-88color.out: New file.
+       * tests/test-term-ostream-xterm-256color.out: New file.
+       * Makefile.am (EXTRA_DIST): Add the new files.
+
 2006-12-02  Bruno Haible  <bruno@clisp.org>
 
        * lib/term-ostream.oo.c (term_ostream_create): Recognize also the
index 3e51dbd3fda96d9ca2fc6f059922d98cefb5e5a9..ff118289397c8358c657a180c8e7cdea9324e3ec 100644 (file)
@@ -298,10 +298,17 @@ modules/relocatable \
 modules/relocwrapper \
 modules/termcap \
 modules/term-ostream \
+modules/term-ostream-tests \
 modules/vasprintf.diff \
 modules/wait-process.diff \
 modules/xalloc \
 modules/xalloc-die \
 modules/xerror \
 modules/xgetcwd \
-modules/xreadlink
+modules/xreadlink \
+tests/test-term-ostream.c \
+tests/test-term-ostream-xterm \
+tests/test-term-ostream-xterm.out \
+tests/test-term-ostream-xterm-16color.out \
+tests/test-term-ostream-xterm-88color.out \
+tests/test-term-ostream-xterm-256color.out
diff --git a/gnulib-local/modules/term-ostream-tests b/gnulib-local/modules/term-ostream-tests
new file mode 100644 (file)
index 0000000..06bb1db
--- /dev/null
@@ -0,0 +1,17 @@
+Files:
+tests/test-term-ostream.c
+tests/test-term-ostream-xterm
+tests/test-term-ostream-xterm.out
+tests/test-term-ostream-xterm-16color.out
+tests/test-term-ostream-xterm-88color.out
+tests/test-term-ostream-xterm-256color.out
+
+Depends-on:
+
+configure.ac:
+
+Makefile.am:
+TESTS += test-term-ostream-xterm
+TESTS_ENVIRONMENT += srcdir='$(srcdir)'
+check_PROGRAMS += test-term-ostream
+test_term_ostream_LDADD = $(LIBTERMCAP) $(LDADD)
diff --git a/gnulib-local/tests/test-term-ostream-xterm b/gnulib-local/tests/test-term-ostream-xterm
new file mode 100755 (executable)
index 0000000..2b7c747
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles out"
+TERM=xterm ./test-term-ostream > out
+
+: ${DIFF=diff}
+${DIFF} ${srcdir}/test-term-ostream-xterm.out out > /dev/null
+result=$?
+
+rm -fr $tmpfiles
+
+exit $result
diff --git a/gnulib-local/tests/test-term-ostream-xterm-16color.out b/gnulib-local/tests/test-term-ostream-xterm-16color.out
new file mode 100644 (file)
index 0000000..3c13e71
--- /dev/null
@@ -0,0 +1,131 @@
+Colors (foreground/background):
+       |black  |blue   |green  |cyan   |red    |magenta|yellow |white  |default
+black  |\e[30m\e[40m Words \e[39;49m|\e[30m\e[104m Words \e[39;49m|\e[30m\e[102m Words \e[39;49m|\e[30m\e[106m Words \e[39;49m|\e[30m\e[101m Words \e[39;49m|\e[30m\e[105m Words \e[39;49m|\e[30m\e[103m Words \e[39;49m|\e[30m\e[107m Words \e[39;49m|\e[30m Words \e[39;49m
+blue   |\e[94m\e[40m Words \e[39;49m|\e[94m\e[104m Words \e[39;49m|\e[94m\e[102m Words \e[39;49m|\e[94m\e[106m Words \e[39;49m|\e[94m\e[101m Words \e[39;49m|\e[94m\e[105m Words \e[39;49m|\e[94m\e[103m Words \e[39;49m|\e[94m\e[107m Words \e[39;49m|\e[94m Words \e[39;49m
+green  |\e[92m\e[40m Words \e[39;49m|\e[92m\e[104m Words \e[39;49m|\e[92m\e[102m Words \e[39;49m|\e[92m\e[106m Words \e[39;49m|\e[92m\e[101m Words \e[39;49m|\e[92m\e[105m Words \e[39;49m|\e[92m\e[103m Words \e[39;49m|\e[92m\e[107m Words \e[39;49m|\e[92m Words \e[39;49m
+cyan   |\e[96m\e[40m Words \e[39;49m|\e[96m\e[104m Words \e[39;49m|\e[96m\e[102m Words \e[39;49m|\e[96m\e[106m Words \e[39;49m|\e[96m\e[101m Words \e[39;49m|\e[96m\e[105m Words \e[39;49m|\e[96m\e[103m Words \e[39;49m|\e[96m\e[107m Words \e[39;49m|\e[96m Words \e[39;49m
+red    |\e[91m\e[40m Words \e[39;49m|\e[91m\e[104m Words \e[39;49m|\e[91m\e[102m Words \e[39;49m|\e[91m\e[106m Words \e[39;49m|\e[91m\e[101m Words \e[39;49m|\e[91m\e[105m Words \e[39;49m|\e[91m\e[103m Words \e[39;49m|\e[91m\e[107m Words \e[39;49m|\e[91m Words \e[39;49m
+magenta|\e[95m\e[40m Words \e[39;49m|\e[95m\e[104m Words \e[39;49m|\e[95m\e[102m Words \e[39;49m|\e[95m\e[106m Words \e[39;49m|\e[95m\e[101m Words \e[39;49m|\e[95m\e[105m Words \e[39;49m|\e[95m\e[103m Words \e[39;49m|\e[95m\e[107m Words \e[39;49m|\e[95m Words \e[39;49m
+yellow |\e[93m\e[40m Words \e[39;49m|\e[93m\e[104m Words \e[39;49m|\e[93m\e[102m Words \e[39;49m|\e[93m\e[106m Words \e[39;49m|\e[93m\e[101m Words \e[39;49m|\e[93m\e[105m Words \e[39;49m|\e[93m\e[103m Words \e[39;49m|\e[93m\e[107m Words \e[39;49m|\e[93m Words \e[39;49m
+white  |\e[97m\e[40m Words \e[39;49m|\e[97m\e[104m Words \e[39;49m|\e[97m\e[102m Words \e[39;49m|\e[97m\e[106m Words \e[39;49m|\e[97m\e[101m Words \e[39;49m|\e[97m\e[105m Words \e[39;49m|\e[97m\e[103m Words \e[39;49m|\e[97m\e[107m Words \e[39;49m|\e[97m Words \e[39;49m
+default|\e[40m Words \e[39;49m|\e[104m Words \e[39;49m|\e[102m Words \e[39;49m|\e[106m Words \e[39;49m|\e[101m Words \e[39;49m|\e[105m Words \e[39;49m|\e[103m Words \e[39;49m|\e[107m Words \e[39;49m| Words 
+
+Colors (hue/saturation):
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[103m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[102m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[106m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[47m \e[107m    \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[104m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[105m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+\e[101m                                                            \e[107m     \e[39;49m
+
+Weights:
+normal, \e[1mbold, \e[0mdefault 
+
+Postures:
+normal, italic, default 
+
+Text decorations:
+normal, \e[4munderlined, \e[24mdefault 
+
diff --git a/gnulib-local/tests/test-term-ostream-xterm-256color.out b/gnulib-local/tests/test-term-ostream-xterm-256color.out
new file mode 100644 (file)
index 0000000..792b247
--- /dev/null
@@ -0,0 +1,131 @@
+Colors (foreground/background):
+       |black  |blue   |green  |cyan   |red    |magenta|yellow |white  |default
+black  |\e[38;5;0m\e[48;5;0m Words \e[39;49m|\e[38;5;0m\e[48;5;12m Words \e[39;49m|\e[38;5;0m\e[48;5;10m Words \e[39;49m|\e[38;5;0m\e[48;5;14m Words \e[39;49m|\e[38;5;0m\e[48;5;9m Words \e[39;49m|\e[38;5;0m\e[48;5;13m Words \e[39;49m|\e[38;5;0m\e[48;5;11m Words \e[39;49m|\e[38;5;0m\e[48;5;15m Words \e[39;49m|\e[38;5;0m Words \e[39;49m
+blue   |\e[38;5;12m\e[48;5;0m Words \e[39;49m|\e[38;5;12m\e[48;5;12m Words \e[39;49m|\e[38;5;12m\e[48;5;10m Words \e[39;49m|\e[38;5;12m\e[48;5;14m Words \e[39;49m|\e[38;5;12m\e[48;5;9m Words \e[39;49m|\e[38;5;12m\e[48;5;13m Words \e[39;49m|\e[38;5;12m\e[48;5;11m Words \e[39;49m|\e[38;5;12m\e[48;5;15m Words \e[39;49m|\e[38;5;12m Words \e[39;49m
+green  |\e[38;5;10m\e[48;5;0m Words \e[39;49m|\e[38;5;10m\e[48;5;12m Words \e[39;49m|\e[38;5;10m\e[48;5;10m Words \e[39;49m|\e[38;5;10m\e[48;5;14m Words \e[39;49m|\e[38;5;10m\e[48;5;9m Words \e[39;49m|\e[38;5;10m\e[48;5;13m Words \e[39;49m|\e[38;5;10m\e[48;5;11m Words \e[39;49m|\e[38;5;10m\e[48;5;15m Words \e[39;49m|\e[38;5;10m Words \e[39;49m
+cyan   |\e[38;5;14m\e[48;5;0m Words \e[39;49m|\e[38;5;14m\e[48;5;12m Words \e[39;49m|\e[38;5;14m\e[48;5;10m Words \e[39;49m|\e[38;5;14m\e[48;5;14m Words \e[39;49m|\e[38;5;14m\e[48;5;9m Words \e[39;49m|\e[38;5;14m\e[48;5;13m Words \e[39;49m|\e[38;5;14m\e[48;5;11m Words \e[39;49m|\e[38;5;14m\e[48;5;15m Words \e[39;49m|\e[38;5;14m Words \e[39;49m
+red    |\e[38;5;9m\e[48;5;0m Words \e[39;49m|\e[38;5;9m\e[48;5;12m Words \e[39;49m|\e[38;5;9m\e[48;5;10m Words \e[39;49m|\e[38;5;9m\e[48;5;14m Words \e[39;49m|\e[38;5;9m\e[48;5;9m Words \e[39;49m|\e[38;5;9m\e[48;5;13m Words \e[39;49m|\e[38;5;9m\e[48;5;11m Words \e[39;49m|\e[38;5;9m\e[48;5;15m Words \e[39;49m|\e[38;5;9m Words \e[39;49m
+magenta|\e[38;5;13m\e[48;5;0m Words \e[39;49m|\e[38;5;13m\e[48;5;12m Words \e[39;49m|\e[38;5;13m\e[48;5;10m Words \e[39;49m|\e[38;5;13m\e[48;5;14m Words \e[39;49m|\e[38;5;13m\e[48;5;9m Words \e[39;49m|\e[38;5;13m\e[48;5;13m Words \e[39;49m|\e[38;5;13m\e[48;5;11m Words \e[39;49m|\e[38;5;13m\e[48;5;15m Words \e[39;49m|\e[38;5;13m Words \e[39;49m
+yellow |\e[38;5;11m\e[48;5;0m Words \e[39;49m|\e[38;5;11m\e[48;5;12m Words \e[39;49m|\e[38;5;11m\e[48;5;10m Words \e[39;49m|\e[38;5;11m\e[48;5;14m Words \e[39;49m|\e[38;5;11m\e[48;5;9m Words \e[39;49m|\e[38;5;11m\e[48;5;13m Words \e[39;49m|\e[38;5;11m\e[48;5;11m Words \e[39;49m|\e[38;5;11m\e[48;5;15m Words \e[39;49m|\e[38;5;11m Words \e[39;49m
+white  |\e[38;5;15m\e[48;5;0m Words \e[39;49m|\e[38;5;15m\e[48;5;12m Words \e[39;49m|\e[38;5;15m\e[48;5;10m Words \e[39;49m|\e[38;5;15m\e[48;5;14m Words \e[39;49m|\e[38;5;15m\e[48;5;9m Words \e[39;49m|\e[38;5;15m\e[48;5;13m Words \e[39;49m|\e[38;5;15m\e[48;5;11m Words \e[39;49m|\e[38;5;15m\e[48;5;15m Words \e[39;49m|\e[38;5;15m Words \e[39;49m
+default|\e[48;5;0m Words \e[39;49m|\e[48;5;12m Words \e[39;49m|\e[48;5;10m Words \e[39;49m|\e[48;5;14m Words \e[39;49m|\e[48;5;9m Words \e[39;49m|\e[48;5;13m Words \e[39;49m|\e[48;5;11m Words \e[39;49m|\e[48;5;15m Words \e[39;49m| Words 
+
+Colors (hue/saturation):
+\e[48;5;9m                      \e[48;5;210m          \e[48;5;217m             \e[48;5;224m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;9m                      \e[48;5;210m          \e[48;5;217m             \e[48;5;224m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;9m                      \e[48;5;210m         \e[48;5;217m             \e[48;5;224m                \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;202m          \e[48;5;209m                  \e[48;5;216m    \e[48;5;217m \e[48;5;216m \e[48;5;217m        \e[48;5;224m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;202m      \e[48;5;209m                  \e[48;5;216m                  \e[48;5;224m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;209m                   \e[48;5;216m                         \e[48;5;223m      \e[48;5;224m          \e[48;5;15m     \e[39;49m
+\e[48;5;208m           \e[48;5;209m  \e[48;5;216m                           \e[48;5;223m                \e[48;5;224m    \e[48;5;15m     \e[39;49m
+\e[48;5;208m            \e[48;5;215m      \e[48;5;216m               \e[48;5;223m                         \e[48;5;224m  \e[48;5;15m     \e[39;49m
+\e[48;5;208m    \e[48;5;215m                      \e[48;5;223m                                 \e[48;5;224m \e[48;5;15m     \e[39;49m
+\e[48;5;214m    \e[48;5;215m                      \e[48;5;223m                                 \e[48;5;230m \e[48;5;15m     \e[39;49m
+\e[48;5;214m            \e[48;5;215m      \e[48;5;222m              \e[48;5;223m                          \e[48;5;230m  \e[48;5;15m     \e[39;49m
+\e[48;5;214m            \e[48;5;221m \e[48;5;222m                          \e[48;5;223m                 \e[48;5;230m    \e[48;5;15m     \e[39;49m
+\e[48;5;220m \e[48;5;221m                  \e[48;5;222m                        \e[48;5;223m         \e[48;5;230m        \e[48;5;15m     \e[39;49m
+\e[48;5;220m      \e[48;5;221m                  \e[48;5;222m                  \e[48;5;230m                  \e[48;5;15m     \e[39;49m
+\e[48;5;220m          \e[48;5;221m                  \e[48;5;222m    \e[48;5;229m \e[48;5;222m \e[48;5;229m        \e[48;5;230m                  \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m         \e[48;5;229m             \e[48;5;230m                \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m          \e[48;5;229m             \e[48;5;230m               \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m          \e[48;5;229m             \e[48;5;230m               \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m          \e[48;5;229m             \e[48;5;230m               \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m          \e[48;5;229m             \e[48;5;230m               \e[48;5;15m     \e[39;49m
+\e[48;5;11m                      \e[48;5;228m         \e[48;5;229m             \e[48;5;230m                \e[48;5;15m     \e[39;49m
+\e[48;5;190m          \e[48;5;191m                  \e[48;5;192m    \e[48;5;229m \e[48;5;192m \e[48;5;229m        \e[48;5;230m                  \e[48;5;15m     \e[39;49m
+\e[48;5;190m      \e[48;5;191m                  \e[48;5;192m                  \e[48;5;230m                  \e[48;5;15m     \e[39;49m
+\e[48;5;190m \e[48;5;191m                  \e[48;5;192m                        \e[48;5;193m         \e[48;5;230m        \e[48;5;15m     \e[39;49m
+\e[48;5;154m            \e[48;5;191m \e[48;5;192m                          \e[48;5;193m                 \e[48;5;230m    \e[48;5;15m     \e[39;49m
+\e[48;5;154m            \e[48;5;155m      \e[48;5;192m              \e[48;5;193m                          \e[48;5;230m  \e[48;5;15m     \e[39;49m
+\e[48;5;154m    \e[48;5;155m                      \e[48;5;193m                                 \e[48;5;230m \e[48;5;15m     \e[39;49m
+\e[48;5;118m    \e[48;5;155m                      \e[48;5;193m                                 \e[48;5;194m \e[48;5;15m     \e[39;49m
+\e[48;5;118m            \e[48;5;155m      \e[48;5;156m               \e[48;5;193m                         \e[48;5;194m  \e[48;5;15m     \e[39;49m
+\e[48;5;118m           \e[48;5;119m  \e[48;5;156m                           \e[48;5;193m                \e[48;5;194m    \e[48;5;15m     \e[39;49m
+\e[48;5;119m                   \e[48;5;156m                         \e[48;5;193m      \e[48;5;194m          \e[48;5;15m     \e[39;49m
+\e[48;5;82m      \e[48;5;119m                  \e[48;5;156m                  \e[48;5;194m                  \e[48;5;15m     \e[39;49m
+\e[48;5;82m          \e[48;5;119m                  \e[48;5;156m    \e[48;5;157m \e[48;5;156m \e[48;5;157m        \e[48;5;194m                  \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m         \e[48;5;157m             \e[48;5;194m                \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m          \e[48;5;157m             \e[48;5;194m               \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m          \e[48;5;157m             \e[48;5;194m               \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m          \e[48;5;157m             \e[48;5;194m               \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m          \e[48;5;157m             \e[48;5;194m               \e[48;5;15m     \e[39;49m
+\e[48;5;10m                      \e[48;5;120m         \e[48;5;157m             \e[48;5;194m                \e[48;5;15m     \e[39;49m
+\e[48;5;47m          \e[48;5;84m                  \e[48;5;121m    \e[48;5;157m \e[48;5;121m \e[48;5;157m        \e[48;5;194m                  \e[48;5;15m     \e[39;49m
+\e[48;5;47m      \e[48;5;84m                  \e[48;5;121m                  \e[48;5;194m                  \e[48;5;15m     \e[39;49m
+\e[48;5;84m                   \e[48;5;121m                         \e[48;5;158m      \e[48;5;194m          \e[48;5;15m     \e[39;49m
+\e[48;5;48m           \e[48;5;84m  \e[48;5;121m                           \e[48;5;158m                \e[48;5;194m    \e[48;5;15m     \e[39;49m
+\e[48;5;48m            \e[48;5;85m      \e[48;5;121m               \e[48;5;158m                         \e[48;5;194m  \e[48;5;15m     \e[39;49m
+\e[48;5;48m    \e[48;5;85m                      \e[48;5;158m                                 \e[48;5;194m \e[48;5;15m     \e[39;49m
+\e[48;5;49m    \e[48;5;85m                      \e[48;5;158m                                 \e[48;5;195m \e[48;5;15m     \e[39;49m
+\e[48;5;49m            \e[48;5;85m      \e[48;5;122m              \e[48;5;158m                          \e[48;5;195m  \e[48;5;15m     \e[39;49m
+\e[48;5;49m            \e[48;5;86m \e[48;5;122m                          \e[48;5;158m                 \e[48;5;195m    \e[48;5;15m     \e[39;49m
+\e[48;5;50m \e[48;5;86m                  \e[48;5;122m                        \e[48;5;158m         \e[48;5;195m        \e[48;5;15m     \e[39;49m
+\e[48;5;50m      \e[48;5;86m                  \e[48;5;122m                  \e[48;5;195m                  \e[48;5;15m     \e[39;49m
+\e[48;5;50m          \e[48;5;86m                  \e[48;5;122m    \e[48;5;159m \e[48;5;122m \e[48;5;159m        \e[48;5;195m                  \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m         \e[48;5;159m             \e[48;5;195m                \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m          \e[48;5;159m             \e[48;5;195m               \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m          \e[48;5;159m             \e[48;5;195m               \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m          \e[48;5;159m             \e[48;5;195m               \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m          \e[48;5;159m             \e[48;5;195m               \e[48;5;15m     \e[39;49m
+\e[48;5;14m                      \e[48;5;123m         \e[48;5;159m             \e[48;5;195m                \e[48;5;15m     \e[39;49m
+\e[48;5;45m          \e[48;5;81m                  \e[48;5;117m    \e[48;5;159m \e[48;5;117m \e[48;5;159m        \e[48;5;195m                  \e[48;5;15m     \e[39;49m
+\e[48;5;45m      \e[48;5;81m                  \e[48;5;117m                  \e[48;5;195m                  \e[48;5;15m     \e[39;49m
+\e[48;5;45m \e[48;5;81m                  \e[48;5;117m                        \e[48;5;153m         \e[48;5;195m        \e[48;5;15m     \e[39;49m
+\e[48;5;39m            \e[48;5;81m \e[48;5;117m                          \e[48;5;153m                 \e[48;5;195m    \e[48;5;15m     \e[39;49m
+\e[48;5;39m            \e[48;5;75m      \e[48;5;117m              \e[48;5;153m                          \e[48;5;195m  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;39m    \e[48;5;75m                      \e[48;5;153m                                 \e[48;5;195m \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;33m    \e[48;5;75m                      \e[48;5;153m                                 \e[48;5;189m \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;33m            \e[48;5;75m      \e[48;5;111m               \e[48;5;153m                         \e[48;5;189m  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;33m           \e[48;5;69m  \e[48;5;111m                           \e[48;5;153m                \e[48;5;189m    \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;69m                   \e[48;5;111m                         \e[48;5;153m      \e[48;5;189m          \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;27m      \e[48;5;69m                  \e[48;5;111m                  \e[48;5;189m                  \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;27m          \e[48;5;69m                  \e[48;5;111m    \e[48;5;147m \e[48;5;111m \e[48;5;147m        \e[48;5;189m                  \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m         \e[48;5;147m             \e[48;5;189m                \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m          \e[48;5;147m             \e[48;5;189m               \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m          \e[48;5;147m             \e[48;5;189m               \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m          \e[48;5;147m             \e[48;5;189m               \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m          \e[48;5;147m             \e[48;5;189m               \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;12m                      \e[48;5;105m         \e[48;5;147m             \e[48;5;189m                \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;57m          \e[48;5;99m                  \e[48;5;141m    \e[48;5;147m \e[48;5;141m \e[48;5;147m        \e[48;5;189m                  \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;57m      \e[48;5;99m                  \e[48;5;141m                  \e[48;5;189m                  \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;99m                   \e[48;5;141m                         \e[48;5;183m      \e[48;5;189m          \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;93m           \e[48;5;99m  \e[48;5;141m                           \e[48;5;183m                \e[48;5;189m    \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;93m            \e[48;5;135m      \e[48;5;141m               \e[48;5;183m                         \e[48;5;189m  \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;93m    \e[48;5;135m                      \e[48;5;183m                                 \e[48;5;189m \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;129m    \e[48;5;135m                      \e[48;5;183m                                 \e[48;5;225m \e[48;5;255m  \e[48;5;15m   \e[39;49m
+\e[48;5;129m            \e[48;5;135m      \e[48;5;177m              \e[48;5;183m                          \e[48;5;225m  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;129m            \e[48;5;171m \e[48;5;177m                          \e[48;5;183m                 \e[48;5;225m    \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;165m \e[48;5;171m                  \e[48;5;177m                        \e[48;5;183m         \e[48;5;225m        \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;165m      \e[48;5;171m                  \e[48;5;177m                  \e[48;5;225m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;165m          \e[48;5;171m                  \e[48;5;177m    \e[48;5;219m \e[48;5;177m \e[48;5;219m        \e[48;5;225m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m         \e[48;5;219m             \e[48;5;225m                \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m          \e[48;5;219m             \e[48;5;225m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m          \e[48;5;219m             \e[48;5;225m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m          \e[48;5;219m             \e[48;5;225m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m          \e[48;5;219m             \e[48;5;225m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;13m                      \e[48;5;213m         \e[48;5;219m             \e[48;5;225m                \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;200m          \e[48;5;206m                  \e[48;5;212m    \e[48;5;219m \e[48;5;212m \e[48;5;219m        \e[48;5;225m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;200m      \e[48;5;206m                  \e[48;5;212m                  \e[48;5;225m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;200m \e[48;5;206m                  \e[48;5;212m                        \e[48;5;218m         \e[48;5;225m        \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;199m            \e[48;5;206m \e[48;5;212m                          \e[48;5;218m                 \e[48;5;225m    \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;199m            \e[48;5;205m      \e[48;5;212m              \e[48;5;218m                          \e[48;5;225m  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;199m    \e[48;5;205m                      \e[48;5;218m                                 \e[48;5;225m \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;198m    \e[48;5;205m                      \e[48;5;218m                                 \e[48;5;224m \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;198m            \e[48;5;205m      \e[48;5;211m               \e[48;5;218m                         \e[48;5;224m  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;198m           \e[48;5;204m  \e[48;5;211m                           \e[48;5;218m                \e[48;5;224m    \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;204m                   \e[48;5;211m                         \e[48;5;218m      \e[48;5;224m          \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;197m      \e[48;5;204m                  \e[48;5;211m                  \e[48;5;224m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;197m          \e[48;5;204m                  \e[48;5;211m    \e[48;5;217m \e[48;5;211m \e[48;5;217m        \e[48;5;224m                  \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;9m                      \e[48;5;210m         \e[48;5;217m             \e[48;5;224m                \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;9m                      \e[48;5;210m          \e[48;5;217m             \e[48;5;224m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+\e[48;5;9m                      \e[48;5;210m          \e[48;5;217m             \e[48;5;224m               \e[48;5;255m \e[48;5;15m    \e[39;49m
+
+Weights:
+normal, \e[1mbold, \e[0mdefault 
+
+Postures:
+normal, italic, default 
+
+Text decorations:
+normal, \e[4munderlined, \e[24mdefault 
+
diff --git a/gnulib-local/tests/test-term-ostream-xterm-88color.out b/gnulib-local/tests/test-term-ostream-xterm-88color.out
new file mode 100644 (file)
index 0000000..5adb82d
--- /dev/null
@@ -0,0 +1,131 @@
+Colors (foreground/background):
+       |black  |blue   |green  |cyan   |red    |magenta|yellow |white  |default
+black  |\e[38;5;0m\e[48;5;0m Words \e[39;49m|\e[38;5;0m\e[48;5;12m Words \e[39;49m|\e[38;5;0m\e[48;5;10m Words \e[39;49m|\e[38;5;0m\e[48;5;14m Words \e[39;49m|\e[38;5;0m\e[48;5;9m Words \e[39;49m|\e[38;5;0m\e[48;5;13m Words \e[39;49m|\e[38;5;0m\e[48;5;11m Words \e[39;49m|\e[38;5;0m\e[48;5;15m Words \e[39;49m|\e[38;5;0m Words \e[39;49m
+blue   |\e[38;5;12m\e[48;5;0m Words \e[39;49m|\e[38;5;12m\e[48;5;12m Words \e[39;49m|\e[38;5;12m\e[48;5;10m Words \e[39;49m|\e[38;5;12m\e[48;5;14m Words \e[39;49m|\e[38;5;12m\e[48;5;9m Words \e[39;49m|\e[38;5;12m\e[48;5;13m Words \e[39;49m|\e[38;5;12m\e[48;5;11m Words \e[39;49m|\e[38;5;12m\e[48;5;15m Words \e[39;49m|\e[38;5;12m Words \e[39;49m
+green  |\e[38;5;10m\e[48;5;0m Words \e[39;49m|\e[38;5;10m\e[48;5;12m Words \e[39;49m|\e[38;5;10m\e[48;5;10m Words \e[39;49m|\e[38;5;10m\e[48;5;14m Words \e[39;49m|\e[38;5;10m\e[48;5;9m Words \e[39;49m|\e[38;5;10m\e[48;5;13m Words \e[39;49m|\e[38;5;10m\e[48;5;11m Words \e[39;49m|\e[38;5;10m\e[48;5;15m Words \e[39;49m|\e[38;5;10m Words \e[39;49m
+cyan   |\e[38;5;14m\e[48;5;0m Words \e[39;49m|\e[38;5;14m\e[48;5;12m Words \e[39;49m|\e[38;5;14m\e[48;5;10m Words \e[39;49m|\e[38;5;14m\e[48;5;14m Words \e[39;49m|\e[38;5;14m\e[48;5;9m Words \e[39;49m|\e[38;5;14m\e[48;5;13m Words \e[39;49m|\e[38;5;14m\e[48;5;11m Words \e[39;49m|\e[38;5;14m\e[48;5;15m Words \e[39;49m|\e[38;5;14m Words \e[39;49m
+red    |\e[38;5;9m\e[48;5;0m Words \e[39;49m|\e[38;5;9m\e[48;5;12m Words \e[39;49m|\e[38;5;9m\e[48;5;10m Words \e[39;49m|\e[38;5;9m\e[48;5;14m Words \e[39;49m|\e[38;5;9m\e[48;5;9m Words \e[39;49m|\e[38;5;9m\e[48;5;13m Words \e[39;49m|\e[38;5;9m\e[48;5;11m Words \e[39;49m|\e[38;5;9m\e[48;5;15m Words \e[39;49m|\e[38;5;9m Words \e[39;49m
+magenta|\e[38;5;13m\e[48;5;0m Words \e[39;49m|\e[38;5;13m\e[48;5;12m Words \e[39;49m|\e[38;5;13m\e[48;5;10m Words \e[39;49m|\e[38;5;13m\e[48;5;14m Words \e[39;49m|\e[38;5;13m\e[48;5;9m Words \e[39;49m|\e[38;5;13m\e[48;5;13m Words \e[39;49m|\e[38;5;13m\e[48;5;11m Words \e[39;49m|\e[38;5;13m\e[48;5;15m Words \e[39;49m|\e[38;5;13m Words \e[39;49m
+yellow |\e[38;5;11m\e[48;5;0m Words \e[39;49m|\e[38;5;11m\e[48;5;12m Words \e[39;49m|\e[38;5;11m\e[48;5;10m Words \e[39;49m|\e[38;5;11m\e[48;5;14m Words \e[39;49m|\e[38;5;11m\e[48;5;9m Words \e[39;49m|\e[38;5;11m\e[48;5;13m Words \e[39;49m|\e[38;5;11m\e[48;5;11m Words \e[39;49m|\e[38;5;11m\e[48;5;15m Words \e[39;49m|\e[38;5;11m Words \e[39;49m
+white  |\e[38;5;15m\e[48;5;0m Words \e[39;49m|\e[38;5;15m\e[48;5;12m Words \e[39;49m|\e[38;5;15m\e[48;5;10m Words \e[39;49m|\e[38;5;15m\e[48;5;14m Words \e[39;49m|\e[38;5;15m\e[48;5;9m Words \e[39;49m|\e[38;5;15m\e[48;5;13m Words \e[39;49m|\e[38;5;15m\e[48;5;11m Words \e[39;49m|\e[38;5;15m\e[48;5;15m Words \e[39;49m|\e[38;5;15m Words \e[39;49m
+default|\e[48;5;0m Words \e[39;49m|\e[48;5;12m Words \e[39;49m|\e[48;5;10m Words \e[39;49m|\e[48;5;14m Words \e[39;49m|\e[48;5;9m Words \e[39;49m|\e[48;5;13m Words \e[39;49m|\e[48;5;11m Words \e[39;49m|\e[48;5;15m Words \e[39;49m| Words 
+
+Colors (hue/saturation):
+\e[48;5;9m \e[48;5;64m  \e[48;5;9m \e[48;5;64m \e[48;5;9m   \e[48;5;64m  \e[48;5;9m     \e[48;5;64m  \e[48;5;9m \e[48;5;69m                          \e[48;5;74m                \e[48;5;15m     \e[39;49m
+\e[48;5;64m  \e[48;5;9m  \e[48;5;64m    \e[48;5;9m \e[48;5;64m  \e[48;5;9m   \e[48;5;64m \e[48;5;9m  \e[48;5;64m \e[48;5;69m                         \e[48;5;74m                 \e[48;5;15m     \e[39;49m
+\e[48;5;64m  \e[48;5;9m       \e[48;5;64m \e[48;5;9m   \e[48;5;64m  \e[48;5;9m \e[48;5;64m \e[48;5;69m                          \e[48;5;74m                 \e[48;5;15m     \e[39;49m
+\e[48;5;9m \e[48;5;64m  \e[48;5;9m \e[48;5;64m   \e[48;5;9m  \e[48;5;64m  \e[48;5;9m    \e[48;5;69m                         \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;64m  \e[48;5;9m  \e[48;5;64m \e[48;5;9m \e[48;5;64m \e[48;5;9m  \e[48;5;64m \e[48;5;9m  \e[48;5;69m                            \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;68m             \e[48;5;73m                           \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;68m                \e[48;5;73m                                     \e[48;5;74m       \e[48;5;15m     \e[39;49m
+\e[48;5;68m                 \e[48;5;73m                                       \e[48;5;74m    \e[48;5;15m     \e[39;49m
+\e[48;5;68m                  \e[48;5;73m                                        \e[48;5;74m  \e[48;5;15m     \e[39;49m
+\e[48;5;68m                  \e[48;5;73m                                        \e[48;5;78m  \e[48;5;15m     \e[39;49m
+\e[48;5;68m                  \e[48;5;73m                                      \e[48;5;78m    \e[48;5;15m     \e[39;49m
+\e[48;5;68m                \e[48;5;73m                                       \e[48;5;78m     \e[48;5;15m     \e[39;49m
+\e[48;5;72m                  \e[48;5;73m                                 \e[48;5;78m         \e[48;5;15m     \e[39;49m
+\e[48;5;72m                       \e[48;5;73m                    \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;72m                      \e[48;5;77m                  \e[48;5;78m                    \e[48;5;15m     \e[39;49m
+\e[48;5;72m                   \e[48;5;77m                        \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;76m    \e[48;5;11m  \e[48;5;76m \e[48;5;11m   \e[48;5;76m   \e[48;5;11m   \e[48;5;76m  \e[48;5;77m                         \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;11m \e[48;5;76m  \e[48;5;11m \e[48;5;76m \e[48;5;11m   \e[48;5;76m  \e[48;5;11m     \e[48;5;76m  \e[48;5;11m \e[48;5;77m                          \e[48;5;78m                \e[48;5;15m     \e[39;49m
+\e[48;5;11m \e[48;5;76m  \e[48;5;11m \e[48;5;76m \e[48;5;11m   \e[48;5;76m  \e[48;5;11m     \e[48;5;76m  \e[48;5;11m \e[48;5;77m                          \e[48;5;78m                \e[48;5;15m     \e[39;49m
+\e[48;5;76m    \e[48;5;11m      \e[48;5;76m   \e[48;5;11m  \e[48;5;76m \e[48;5;11m  \e[48;5;77m                         \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;60m                   \e[48;5;77m                        \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;60m                      \e[48;5;77m                  \e[48;5;78m                    \e[48;5;15m     \e[39;49m
+\e[48;5;60m                       \e[48;5;61m                    \e[48;5;78m                 \e[48;5;15m     \e[39;49m
+\e[48;5;60m                  \e[48;5;61m                                 \e[48;5;78m         \e[48;5;15m     \e[39;49m
+\e[48;5;44m                \e[48;5;61m                                       \e[48;5;78m     \e[48;5;15m     \e[39;49m
+\e[48;5;44m                  \e[48;5;61m                                      \e[48;5;78m    \e[48;5;15m     \e[39;49m
+\e[48;5;44m                  \e[48;5;61m                                        \e[48;5;78m  \e[48;5;15m     \e[39;49m
+\e[48;5;44m                  \e[48;5;61m                                        \e[48;5;62m  \e[48;5;15m     \e[39;49m
+\e[48;5;44m                 \e[48;5;61m                                       \e[48;5;62m    \e[48;5;15m     \e[39;49m
+\e[48;5;44m                \e[48;5;61m                                     \e[48;5;62m       \e[48;5;15m     \e[39;49m
+\e[48;5;44m             \e[48;5;61m                           \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;28m \e[48;5;10m \e[48;5;28m  \e[48;5;10m \e[48;5;28m \e[48;5;10m   \e[48;5;28m  \e[48;5;10m \e[48;5;45m                            \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;28m     \e[48;5;10m    \e[48;5;28m  \e[48;5;10m   \e[48;5;28m \e[48;5;45m                         \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;28m  \e[48;5;10m  \e[48;5;28m \e[48;5;10m \e[48;5;28m \e[48;5;10m  \e[48;5;28m   \e[48;5;10m   \e[48;5;28m  \e[48;5;45m                          \e[48;5;62m                 \e[48;5;15m     \e[39;49m
+\e[48;5;28m    \e[48;5;10m      \e[48;5;28m   \e[48;5;10m  \e[48;5;28m \e[48;5;10m  \e[48;5;45m                         \e[48;5;62m                 \e[48;5;15m     \e[39;49m
+\e[48;5;10m \e[48;5;28m  \e[48;5;10m \e[48;5;28m \e[48;5;10m   \e[48;5;28m  \e[48;5;10m     \e[48;5;28m  \e[48;5;10m \e[48;5;45m                          \e[48;5;62m                \e[48;5;15m     \e[39;49m
+\e[48;5;10m \e[48;5;28m  \e[48;5;10m \e[48;5;28m \e[48;5;10m   \e[48;5;28m  \e[48;5;10m     \e[48;5;28m  \e[48;5;10m \e[48;5;45m                          \e[48;5;62m                \e[48;5;15m     \e[39;49m
+\e[48;5;28m \e[48;5;10m \e[48;5;28m  \e[48;5;10m      \e[48;5;28m   \e[48;5;10m  \e[48;5;28m \e[48;5;10m  \e[48;5;45m                         \e[48;5;62m                 \e[48;5;15m     \e[39;49m
+\e[48;5;28m   \e[48;5;10m \e[48;5;28m \e[48;5;10m    \e[48;5;28m  \e[48;5;10m    \e[48;5;28m  \e[48;5;45m                          \e[48;5;62m                 \e[48;5;15m     \e[39;49m
+\e[48;5;10m \e[48;5;28m \e[48;5;10m \e[48;5;28m \e[48;5;10m  \e[48;5;28m \e[48;5;10m  \e[48;5;28m  \e[48;5;10m \e[48;5;28m \e[48;5;10m \e[48;5;28m \e[48;5;45m                         \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;28m \e[48;5;10m \e[48;5;28m  \e[48;5;10m \e[48;5;28m  \e[48;5;10m  \e[48;5;28m  \e[48;5;10m \e[48;5;45m                            \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;29m             \e[48;5;46m                           \e[48;5;62m                    \e[48;5;15m     \e[39;49m
+\e[48;5;29m                \e[48;5;46m                                     \e[48;5;62m       \e[48;5;15m     \e[39;49m
+\e[48;5;29m                 \e[48;5;46m                                       \e[48;5;62m    \e[48;5;15m     \e[39;49m
+\e[48;5;29m                  \e[48;5;46m                                        \e[48;5;62m  \e[48;5;15m     \e[39;49m
+\e[48;5;29m                  \e[48;5;46m                                        \e[48;5;63m  \e[48;5;15m     \e[39;49m
+\e[48;5;29m                  \e[48;5;46m                                      \e[48;5;63m    \e[48;5;15m     \e[39;49m
+\e[48;5;29m                \e[48;5;46m                                       \e[48;5;63m     \e[48;5;15m     \e[39;49m
+\e[48;5;30m                  \e[48;5;46m                                 \e[48;5;63m         \e[48;5;15m     \e[39;49m
+\e[48;5;30m                       \e[48;5;46m                    \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;30m                      \e[48;5;47m                  \e[48;5;63m                    \e[48;5;15m     \e[39;49m
+\e[48;5;30m                   \e[48;5;47m                        \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;31m \e[48;5;14m \e[48;5;31m  \e[48;5;14m      \e[48;5;31m   \e[48;5;14m  \e[48;5;31m \e[48;5;14m  \e[48;5;47m                         \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;14m \e[48;5;31m  \e[48;5;14m \e[48;5;31m \e[48;5;14m   \e[48;5;31m  \e[48;5;14m     \e[48;5;31m  \e[48;5;14m \e[48;5;47m                          \e[48;5;63m                \e[48;5;15m     \e[39;49m
+\e[48;5;14m \e[48;5;31m  \e[48;5;14m \e[48;5;31m \e[48;5;14m   \e[48;5;31m  \e[48;5;14m     \e[48;5;31m  \e[48;5;14m \e[48;5;47m                          \e[48;5;63m                \e[48;5;15m     \e[39;49m
+\e[48;5;31m \e[48;5;14m \e[48;5;31m  \e[48;5;14m      \e[48;5;31m   \e[48;5;14m  \e[48;5;31m \e[48;5;14m  \e[48;5;47m                         \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;27m                   \e[48;5;47m                        \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;27m                      \e[48;5;47m                  \e[48;5;63m                    \e[48;5;15m     \e[39;49m
+\e[48;5;27m                       \e[48;5;43m                    \e[48;5;63m                 \e[48;5;15m     \e[39;49m
+\e[48;5;27m                  \e[48;5;43m                                 \e[48;5;63m         \e[48;5;15m     \e[39;49m
+\e[48;5;23m                \e[48;5;43m                                       \e[48;5;63m     \e[48;5;15m     \e[39;49m
+\e[48;5;23m                  \e[48;5;43m                                      \e[48;5;63m    \e[48;5;15m     \e[39;49m
+\e[48;5;23m                  \e[48;5;43m                                        \e[48;5;63m  \e[48;5;15m     \e[39;49m
+\e[48;5;23m                  \e[48;5;43m                                        \e[48;5;59m  \e[48;5;15m     \e[39;49m
+\e[48;5;23m                 \e[48;5;43m                                       \e[48;5;59m    \e[48;5;15m     \e[39;49m
+\e[48;5;23m                \e[48;5;43m                                     \e[48;5;59m       \e[48;5;15m     \e[39;49m
+\e[48;5;23m             \e[48;5;43m                           \e[48;5;59m                    \e[48;5;15m     \e[39;49m
+\e[48;5;19m \e[48;5;12m \e[48;5;19m  \e[48;5;12m \e[48;5;19m  \e[48;5;12m  \e[48;5;19m  \e[48;5;12m \e[48;5;39m                            \e[48;5;59m                    \e[48;5;15m     \e[39;49m
+\e[48;5;12m \e[48;5;19m \e[48;5;12m \e[48;5;19m \e[48;5;12m  \e[48;5;19m \e[48;5;12m  \e[48;5;19m  \e[48;5;12m \e[48;5;19m \e[48;5;12m \e[48;5;19m \e[48;5;39m                         \e[48;5;59m                    \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;19m   \e[48;5;12m \e[48;5;19m \e[48;5;12m    \e[48;5;19m  \e[48;5;12m    \e[48;5;19m  \e[48;5;39m                          \e[48;5;59m                 \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;19m \e[48;5;12m \e[48;5;19m  \e[48;5;12m      \e[48;5;19m   \e[48;5;12m  \e[48;5;19m \e[48;5;12m  \e[48;5;39m                         \e[48;5;59m                 \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;12m \e[48;5;19m  \e[48;5;12m \e[48;5;19m \e[48;5;12m   \e[48;5;19m  \e[48;5;12m     \e[48;5;19m  \e[48;5;12m \e[48;5;39m                          \e[48;5;59m                \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;12m \e[48;5;19m  \e[48;5;12m \e[48;5;19m \e[48;5;12m   \e[48;5;19m  \e[48;5;12m     \e[48;5;19m  \e[48;5;12m \e[48;5;39m                          \e[48;5;59m                \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;19m \e[48;5;12m    \e[48;5;19m \e[48;5;12m  \e[48;5;19m     \e[48;5;12m  \e[48;5;19m \e[48;5;12m  \e[48;5;39m                         \e[48;5;59m                 \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;19m  \e[48;5;12m \e[48;5;19m \e[48;5;12m  \e[48;5;19m \e[48;5;12m  \e[48;5;19m  \e[48;5;12m   \e[48;5;19m \e[48;5;12m \e[48;5;19m \e[48;5;39m                          \e[48;5;59m                 \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;12m \e[48;5;19m   \e[48;5;12m  \e[48;5;19m \e[48;5;12m   \e[48;5;19m \e[48;5;12m   \e[48;5;19m \e[48;5;39m                         \e[48;5;59m                    \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;19m \e[48;5;12m    \e[48;5;19m   \e[48;5;12m \e[48;5;19m  \e[48;5;12m \e[48;5;39m                            \e[48;5;59m                    \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;35m             \e[48;5;55m                           \e[48;5;59m                    \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;35m                \e[48;5;55m                                     \e[48;5;59m       \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;35m                 \e[48;5;55m                                       \e[48;5;59m    \e[48;5;87m \e[48;5;15m    \e[39;49m
+\e[48;5;35m                  \e[48;5;55m                                        \e[48;5;59m  \e[48;5;15m     \e[39;49m
+\e[48;5;35m                  \e[48;5;55m                                        \e[48;5;75m  \e[48;5;15m     \e[39;49m
+\e[48;5;35m                  \e[48;5;55m                                      \e[48;5;75m    \e[48;5;15m     \e[39;49m
+\e[48;5;35m                \e[48;5;55m                                       \e[48;5;75m     \e[48;5;15m     \e[39;49m
+\e[48;5;51m                  \e[48;5;55m                                 \e[48;5;75m         \e[48;5;15m     \e[39;49m
+\e[48;5;51m                       \e[48;5;55m                    \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;51m                      \e[48;5;71m                  \e[48;5;75m                    \e[48;5;15m     \e[39;49m
+\e[48;5;51m                   \e[48;5;71m                        \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;67m \e[48;5;13m    \e[48;5;67m \e[48;5;13m  \e[48;5;67m     \e[48;5;13m  \e[48;5;67m \e[48;5;13m  \e[48;5;71m                         \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;13m \e[48;5;67m  \e[48;5;13m \e[48;5;67m \e[48;5;13m   \e[48;5;67m  \e[48;5;13m     \e[48;5;67m  \e[48;5;13m \e[48;5;71m                          \e[48;5;75m                \e[48;5;15m     \e[39;49m
+\e[48;5;13m \e[48;5;67m  \e[48;5;13m \e[48;5;67m \e[48;5;13m   \e[48;5;67m  \e[48;5;13m     \e[48;5;67m  \e[48;5;13m \e[48;5;71m                          \e[48;5;75m                \e[48;5;15m     \e[39;49m
+\e[48;5;67m \e[48;5;13m    \e[48;5;67m \e[48;5;13m  \e[48;5;67m     \e[48;5;13m  \e[48;5;67m \e[48;5;13m  \e[48;5;71m                         \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;66m                   \e[48;5;71m                        \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;66m                      \e[48;5;71m                  \e[48;5;75m                    \e[48;5;15m     \e[39;49m
+\e[48;5;66m                       \e[48;5;70m                    \e[48;5;75m                 \e[48;5;15m     \e[39;49m
+\e[48;5;66m                  \e[48;5;70m                                 \e[48;5;75m         \e[48;5;15m     \e[39;49m
+\e[48;5;65m                \e[48;5;70m                                       \e[48;5;75m     \e[48;5;15m     \e[39;49m
+\e[48;5;65m                  \e[48;5;70m                                      \e[48;5;75m    \e[48;5;15m     \e[39;49m
+\e[48;5;65m                  \e[48;5;70m                                        \e[48;5;75m  \e[48;5;15m     \e[39;49m
+\e[48;5;65m                  \e[48;5;70m                                        \e[48;5;74m  \e[48;5;15m     \e[39;49m
+\e[48;5;65m                 \e[48;5;70m                                       \e[48;5;74m    \e[48;5;15m     \e[39;49m
+\e[48;5;65m                \e[48;5;70m                                     \e[48;5;74m       \e[48;5;15m     \e[39;49m
+\e[48;5;65m             \e[48;5;70m                           \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;64m \e[48;5;9m    \e[48;5;64m   \e[48;5;9m \e[48;5;64m  \e[48;5;9m \e[48;5;69m                            \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;9m \e[48;5;64m   \e[48;5;9m  \e[48;5;64m \e[48;5;9m   \e[48;5;64m \e[48;5;9m   \e[48;5;64m \e[48;5;69m                         \e[48;5;74m                    \e[48;5;15m     \e[39;49m
+\e[48;5;64m  \e[48;5;9m \e[48;5;64m \e[48;5;9m  \e[48;5;64m \e[48;5;9m  \e[48;5;64m  \e[48;5;9m   \e[48;5;64m \e[48;5;9m \e[48;5;64m \e[48;5;69m                          \e[48;5;74m                 \e[48;5;15m     \e[39;49m
+\e[48;5;64m \e[48;5;9m    \e[48;5;64m \e[48;5;9m  \e[48;5;64m     \e[48;5;9m  \e[48;5;64m \e[48;5;9m  \e[48;5;69m                         \e[48;5;74m                 \e[48;5;15m     \e[39;49m
+\e[48;5;9m \e[48;5;64m  \e[48;5;9m \e[48;5;64m \e[48;5;9m   \e[48;5;64m  \e[48;5;9m     \e[48;5;64m  \e[48;5;9m \e[48;5;69m                          \e[48;5;74m                \e[48;5;15m     \e[39;49m
+
+Weights:
+normal, \e[1mbold, \e[0mdefault 
+
+Postures:
+normal, italic, default 
+
+Text decorations:
+normal, \e[4munderlined, \e[24mdefault 
+
diff --git a/gnulib-local/tests/test-term-ostream-xterm.out b/gnulib-local/tests/test-term-ostream-xterm.out
new file mode 100644 (file)
index 0000000..c569f9c
--- /dev/null
@@ -0,0 +1,131 @@
+Colors (foreground/background):
+       |black  |blue   |green  |cyan   |red    |magenta|yellow |white  |default
+black  |\e[30m\e[40m Words \e[39;49m|\e[30m\e[44m Words \e[39;49m|\e[30m\e[42m Words \e[39;49m|\e[30m\e[46m Words \e[39;49m|\e[30m\e[41m Words \e[39;49m|\e[30m\e[45m Words \e[39;49m|\e[30m\e[43m Words \e[39;49m|\e[30m\e[47m Words \e[39;49m|\e[30m Words \e[39;49m
+blue   |\e[34m\e[40m Words \e[39;49m|\e[34m\e[44m Words \e[39;49m|\e[34m\e[42m Words \e[39;49m|\e[34m\e[46m Words \e[39;49m|\e[34m\e[41m Words \e[39;49m|\e[34m\e[45m Words \e[39;49m|\e[34m\e[43m Words \e[39;49m|\e[34m\e[47m Words \e[39;49m|\e[34m Words \e[39;49m
+green  |\e[32m\e[40m Words \e[39;49m|\e[32m\e[44m Words \e[39;49m|\e[32m\e[42m Words \e[39;49m|\e[32m\e[46m Words \e[39;49m|\e[32m\e[41m Words \e[39;49m|\e[32m\e[45m Words \e[39;49m|\e[32m\e[43m Words \e[39;49m|\e[32m\e[47m Words \e[39;49m|\e[32m Words \e[39;49m
+cyan   |\e[36m\e[40m Words \e[39;49m|\e[36m\e[44m Words \e[39;49m|\e[36m\e[42m Words \e[39;49m|\e[36m\e[46m Words \e[39;49m|\e[36m\e[41m Words \e[39;49m|\e[36m\e[45m Words \e[39;49m|\e[36m\e[43m Words \e[39;49m|\e[36m\e[47m Words \e[39;49m|\e[36m Words \e[39;49m
+red    |\e[31m\e[40m Words \e[39;49m|\e[31m\e[44m Words \e[39;49m|\e[31m\e[42m Words \e[39;49m|\e[31m\e[46m Words \e[39;49m|\e[31m\e[41m Words \e[39;49m|\e[31m\e[45m Words \e[39;49m|\e[31m\e[43m Words \e[39;49m|\e[31m\e[47m Words \e[39;49m|\e[31m Words \e[39;49m
+magenta|\e[35m\e[40m Words \e[39;49m|\e[35m\e[44m Words \e[39;49m|\e[35m\e[42m Words \e[39;49m|\e[35m\e[46m Words \e[39;49m|\e[35m\e[41m Words \e[39;49m|\e[35m\e[45m Words \e[39;49m|\e[35m\e[43m Words \e[39;49m|\e[35m\e[47m Words \e[39;49m|\e[35m Words \e[39;49m
+yellow |\e[33m\e[40m Words \e[39;49m|\e[33m\e[44m Words \e[39;49m|\e[33m\e[42m Words \e[39;49m|\e[33m\e[46m Words \e[39;49m|\e[33m\e[41m Words \e[39;49m|\e[33m\e[45m Words \e[39;49m|\e[33m\e[43m Words \e[39;49m|\e[33m\e[47m Words \e[39;49m|\e[33m Words \e[39;49m
+white  |\e[37m\e[40m Words \e[39;49m|\e[37m\e[44m Words \e[39;49m|\e[37m\e[42m Words \e[39;49m|\e[37m\e[46m Words \e[39;49m|\e[37m\e[41m Words \e[39;49m|\e[37m\e[45m Words \e[39;49m|\e[37m\e[43m Words \e[39;49m|\e[37m\e[47m Words \e[39;49m|\e[37m Words \e[39;49m
+default|\e[40m Words \e[39;49m|\e[44m Words \e[39;49m|\e[42m Words \e[39;49m|\e[46m Words \e[39;49m|\e[41m Words \e[39;49m|\e[45m Words \e[39;49m|\e[43m Words \e[39;49m|\e[47m Words \e[39;49m| Words 
+
+Colors (hue/saturation):
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[43m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[42m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[46m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[44m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[45m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+\e[41m                                                            \e[47m     \e[39;49m
+
+Weights:
+normal, \e[1mbold, \e[0mdefault 
+
+Postures:
+normal, italic, default 
+
+Text decorations:
+normal, \e[4munderlined, \e[24mdefault 
+
diff --git a/gnulib-local/tests/test-term-ostream.c b/gnulib-local/tests/test-term-ostream.c
new file mode 100644 (file)
index 0000000..e0a61ab
--- /dev/null
@@ -0,0 +1,213 @@
+/* Test for the term-ostream API.  */
+
+#include <config.h>
+
+#include "term-ostream.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+  static struct { const char *name; term_color_t c; int r; int g; int b; }
+         colors[] =
+    {
+      { "black",   -2,   0,   0,   0 },
+      { "blue",    -2,   0,   0, 255 },
+      { "green",   -2,   0, 255,   0 },
+      { "cyan",    -2,   0, 255, 255 },
+      { "red",     -2, 255,   0,   0 },
+      { "magenta", -2, 255,   0, 255 },
+      { "yellow",  -2, 255, 255,   0 },
+      { "white",   -2, 255, 255, 255 },
+      { "default", COLOR_DEFAULT }
+    };
+  term_ostream_t stream;
+  int i, row, col;
+
+  stream = term_ostream_create (1, "stdout");
+
+  for (i = 0; i < 8; i++)
+    colors[i].c =
+      term_ostream_rgb_to_color (stream, colors[i].r, colors[i].g, colors[i].b);
+
+  ostream_write_str (stream, "Colors (foreground/background):\n");
+  ostream_write_str (stream, "       ");
+  for (col = 0; col <= 8; col++)
+    {
+      const char *name = colors[col].name;
+      ostream_write_str (stream, "|");
+      ostream_write_str (stream, name);
+      ostream_write_mem (stream, "        ", 7 - strlen (name));
+    }
+  ostream_write_str (stream, "\n");
+  for (row = 0; row <= 8; row++)
+    {
+      const char *name = colors[row].name;
+      ostream_write_str (stream, name);
+      ostream_write_mem (stream, "        ", 7 - strlen (name));
+      for (col = 0; col <= 8; col++)
+       {
+         term_color_t row_color = colors[row].c;
+         term_color_t col_color = colors[col].c;
+
+         ostream_write_str (stream, "|");
+         term_ostream_set_color (stream, row_color);
+         term_ostream_set_bgcolor (stream, col_color);
+         if (!(term_ostream_get_color (stream) == row_color
+               && term_ostream_get_bgcolor (stream) == col_color))
+           abort ();
+         ostream_write_str (stream, " Words ");
+         term_ostream_set_color (stream, COLOR_DEFAULT);
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+         if (!(term_ostream_get_color (stream) == COLOR_DEFAULT
+               && term_ostream_get_bgcolor (stream) == COLOR_DEFAULT))
+           abort ();
+       }
+      ostream_write_str (stream, "\n");
+    }
+  ostream_write_str (stream, "\n");
+
+  ostream_write_str (stream, "Colors (hue/saturation):\n");
+  /* Hue from 0 to 1.  */
+  for (row = 0; row <= 17; row++)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int r = 255;
+         int b = (int) (255.0f / 64.0f * col + 0.5f);
+         int g = b + (int) (row / 17.0f * (r - b) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  /* Hue from 1 to 2.  */
+  for (row = 17; row >= 0; row--)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int g = 255;
+         int b = (int) (255.0f / 64.0f * col + 0.5f);
+         int r = b + (int) (row / 17.0f * (g - b) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  /* Hue from 2 to 3.  */
+  for (row = 0; row <= 17; row++)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int g = 255;
+         int r = (int) (255.0f / 64.0f * col + 0.5f);
+         int b = r + (int) (row / 17.0f * (g - r) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  /* Hue from 3 to 4.  */
+  for (row = 17; row >= 0; row--)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int b = 255;
+         int r = (int) (255.0f / 64.0f * col + 0.5f);
+         int g = r + (int) (row / 17.0f * (b - r) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  /* Hue from 4 to 5.  */
+  for (row = 0; row <= 17; row++)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int b = 255;
+         int g = (int) (255.0f / 64.0f * col + 0.5f);
+         int r = g + (int) (row / 17.0f * (b - g) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  /* Hue from 5 to 6.  */
+  for (row = 17; row >= 0; row--)
+    {
+      for (col = 0; col <= 64; col++)
+       {
+         int r = 255;
+         int g = (int) (255.0f / 64.0f * col + 0.5f);
+         int b = g + (int) (row / 17.0f * (r - g) + 0.5f);
+         term_color_t c = term_ostream_rgb_to_color (stream, r, g, b);
+         term_ostream_set_bgcolor (stream, c);
+         ostream_write_str (stream, " ");
+         term_ostream_set_bgcolor (stream, COLOR_DEFAULT);
+       }
+      ostream_write_str (stream, "\n");
+    }
+  ostream_write_str (stream, "\n");
+
+  ostream_write_str (stream, "Weights:\n");
+  term_ostream_set_weight (stream, WEIGHT_NORMAL);
+  if (term_ostream_get_weight (stream) != WEIGHT_NORMAL)
+    abort ();
+  ostream_write_str (stream, "normal, ");
+  term_ostream_set_weight (stream, WEIGHT_BOLD);
+  if (term_ostream_get_weight (stream) != WEIGHT_BOLD)
+    abort ();
+  ostream_write_str (stream, "bold, ");
+  term_ostream_set_weight (stream, WEIGHT_DEFAULT);
+  if (term_ostream_get_weight (stream) != WEIGHT_DEFAULT)
+    abort ();
+  ostream_write_str (stream, "default \n");
+  ostream_write_str (stream, "\n");
+
+  ostream_write_str (stream, "Postures:\n");
+  term_ostream_set_posture (stream, POSTURE_NORMAL);
+  if (term_ostream_get_posture (stream) != POSTURE_NORMAL)
+    abort ();
+  ostream_write_str (stream, "normal, ");
+  term_ostream_set_posture (stream, POSTURE_ITALIC);
+  if (term_ostream_get_posture (stream) != POSTURE_ITALIC)
+    abort ();
+  ostream_write_str (stream, "italic, ");
+  term_ostream_set_posture (stream, POSTURE_DEFAULT);
+  if (term_ostream_get_posture (stream) != POSTURE_DEFAULT)
+    abort ();
+  ostream_write_str (stream, "default \n");
+  ostream_write_str (stream, "\n");
+
+  ostream_write_str (stream, "Text decorations:\n");
+  term_ostream_set_underline (stream, UNDERLINE_OFF);
+  if (term_ostream_get_underline (stream) != UNDERLINE_OFF)
+    abort ();
+  ostream_write_str (stream, "normal, ");
+  term_ostream_set_underline (stream, UNDERLINE_ON);
+  if (term_ostream_get_underline (stream) != UNDERLINE_ON)
+    abort ();
+  ostream_write_str (stream, "underlined, ");
+  term_ostream_set_underline (stream, UNDERLINE_DEFAULT);
+  if (term_ostream_get_underline (stream) != UNDERLINE_DEFAULT)
+    abort ();
+  ostream_write_str (stream, "default \n");
+  ostream_write_str (stream, "\n");
+
+  ostream_free (stream);
+
+  return 0;
+}