xref: /minix3/external/bsd/bind/dist/contrib/zkt-1.1.3/tcap.c (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek /*	$NetBSD: tcap.c,v 1.1.1.1 2015/07/08 15:37:48 christos Exp $	*/
2*00b67f09SDavid van Moolenbroek 
3*00b67f09SDavid van Moolenbroek /*****************************************************************
4*00b67f09SDavid van Moolenbroek **
5*00b67f09SDavid van Moolenbroek **	tcap.c	-- termcap color capabilities
6*00b67f09SDavid van Moolenbroek **
7*00b67f09SDavid van Moolenbroek **	(c) Jan 1991 - Feb 2010 by hoz
8*00b67f09SDavid van Moolenbroek **
9*00b67f09SDavid van Moolenbroek **	Feb 2002	max line size increased to 512 byte
10*00b67f09SDavid van Moolenbroek **			default terminal "html" added
11*00b67f09SDavid van Moolenbroek **	Feb 2010	color capabilities added
12*00b67f09SDavid van Moolenbroek **
13*00b67f09SDavid van Moolenbroek *****************************************************************/
14*00b67f09SDavid van Moolenbroek 
15*00b67f09SDavid van Moolenbroek #include <stdio.h>
16*00b67f09SDavid van Moolenbroek #include <string.h>
17*00b67f09SDavid van Moolenbroek 
18*00b67f09SDavid van Moolenbroek #ifdef HAVE_CONFIG_H
19*00b67f09SDavid van Moolenbroek # include <config.h>
20*00b67f09SDavid van Moolenbroek #endif
21*00b67f09SDavid van Moolenbroek 
22*00b67f09SDavid van Moolenbroek # include "config_zkt.h"
23*00b67f09SDavid van Moolenbroek 
24*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
25*00b67f09SDavid van Moolenbroek # ifdef HAVE_TERM_H
26*00b67f09SDavid van Moolenbroek #  include <term.h>
27*00b67f09SDavid van Moolenbroek # endif
28*00b67f09SDavid van Moolenbroek # ifdef HAVE_CURSES_H
29*00b67f09SDavid van Moolenbroek #  include <curses.h>
30*00b67f09SDavid van Moolenbroek # endif
31*00b67f09SDavid van Moolenbroek #endif
32*00b67f09SDavid van Moolenbroek 
33*00b67f09SDavid van Moolenbroek #define extern
34*00b67f09SDavid van Moolenbroek # include "tcap.h"
35*00b67f09SDavid van Moolenbroek #undef extern
36*00b67f09SDavid van Moolenbroek 
37*00b67f09SDavid van Moolenbroek /*****************************************************************
38*00b67f09SDavid van Moolenbroek **	global vars
39*00b67f09SDavid van Moolenbroek *****************************************************************/
40*00b67f09SDavid van Moolenbroek /* termcap strings */
41*00b67f09SDavid van Moolenbroek static	const	char	*is1 = "";
42*00b67f09SDavid van Moolenbroek static	const	char	*is2 = "";
43*00b67f09SDavid van Moolenbroek static	const	char	*r1 = "";
44*00b67f09SDavid van Moolenbroek static	const	char	*r2 = "";
45*00b67f09SDavid van Moolenbroek static	const	char	*bold_on = "";
46*00b67f09SDavid van Moolenbroek static	const	char	*bold_off = "";
47*00b67f09SDavid van Moolenbroek static	const	char	*italic_on = "";
48*00b67f09SDavid van Moolenbroek static	const	char	*italic_off = "";
49*00b67f09SDavid van Moolenbroek static	char	colortab[8][31+1];
50*00b67f09SDavid van Moolenbroek 
51*00b67f09SDavid van Moolenbroek /* termcap numbers */
52*00b67f09SDavid van Moolenbroek static	int	maxcolor;
53*00b67f09SDavid van Moolenbroek 
54*00b67f09SDavid van Moolenbroek /* function declaration */
55*00b67f09SDavid van Moolenbroek static	int	tc_printattr (FILE *fp, const char *attstr);
56*00b67f09SDavid van Moolenbroek static	int	tc_color (FILE *fp, int color);
57*00b67f09SDavid van Moolenbroek 
58*00b67f09SDavid van Moolenbroek static	int	html = 0;
59*00b67f09SDavid van Moolenbroek 
60*00b67f09SDavid van Moolenbroek 
61*00b67f09SDavid van Moolenbroek 
62*00b67f09SDavid van Moolenbroek /*****************************************************************
63*00b67f09SDavid van Moolenbroek **	global functions
64*00b67f09SDavid van Moolenbroek *****************************************************************/
65*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
tc_init(FILE * fp,const char * term)66*00b67f09SDavid van Moolenbroek int	 tc_init (FILE *fp, const char *term)
67*00b67f09SDavid van Moolenbroek {
68*00b67f09SDavid van Moolenbroek 	static	char	area[1024];
69*00b67f09SDavid van Moolenbroek 	char		buf[1024];
70*00b67f09SDavid van Moolenbroek 	char		*ap = area;
71*00b67f09SDavid van Moolenbroek 	char		*af = "";		/* AF */	/* ansi foreground */
72*00b67f09SDavid van Moolenbroek 	int		i;
73*00b67f09SDavid van Moolenbroek 
74*00b67f09SDavid van Moolenbroek 	/* clear all color strings */
75*00b67f09SDavid van Moolenbroek 	for ( i = 0; i < 8; i++ )
76*00b67f09SDavid van Moolenbroek 		colortab[i][0] = '\0';
77*00b67f09SDavid van Moolenbroek 
78*00b67f09SDavid van Moolenbroek 	if ( term == NULL || *term == '\0' ||
79*00b67f09SDavid van Moolenbroek 	     strcmp (term, "none") == 0 || strcmp (term, "dumb") == 0 )
80*00b67f09SDavid van Moolenbroek 		return 0;
81*00b67f09SDavid van Moolenbroek 
82*00b67f09SDavid van Moolenbroek 	if ( strcmp (term, "html") == 0 || strcmp (term, "HTML") == 0 )
83*00b67f09SDavid van Moolenbroek 	{
84*00b67f09SDavid van Moolenbroek 		bold_on = "<B>";
85*00b67f09SDavid van Moolenbroek 		bold_off = "</B>";
86*00b67f09SDavid van Moolenbroek 		italic_on = "<I>";
87*00b67f09SDavid van Moolenbroek 		italic_off = "</I>";
88*00b67f09SDavid van Moolenbroek 		af = "";
89*00b67f09SDavid van Moolenbroek 		maxcolor = 8;
90*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_BLACK], sizeof colortab[0], "<font color=black>");
91*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_BLUE], sizeof colortab[0], "<font color=blue>");
92*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_GREEN], sizeof colortab[0], "<font color=green>");
93*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_CYAN], sizeof colortab[0], "<font color=cyan>");
94*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_RED], sizeof colortab[0], "<font color=red>");
95*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_MAGENTA], sizeof colortab[0], "<font color=magenta>");
96*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_YELLOW], sizeof colortab[0], "<font color=yellow>");
97*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_WHITE], sizeof colortab[0], "<font color=white>");
98*00b67f09SDavid van Moolenbroek 		html = 1;
99*00b67f09SDavid van Moolenbroek 		return 0;
100*00b67f09SDavid van Moolenbroek 	}
101*00b67f09SDavid van Moolenbroek #if 0
102*00b67f09SDavid van Moolenbroek 	if ( !istty (fp) )
103*00b67f09SDavid van Moolenbroek 		return 0;
104*00b67f09SDavid van Moolenbroek #endif
105*00b67f09SDavid van Moolenbroek 	switch ( tgetent (buf, term) )
106*00b67f09SDavid van Moolenbroek 	{
107*00b67f09SDavid van Moolenbroek 	case -1:	perror ("termcap file");
108*00b67f09SDavid van Moolenbroek 			return -1;
109*00b67f09SDavid van Moolenbroek 	case 0:		fprintf (stderr, "unknown terminal %s\n", term);
110*00b67f09SDavid van Moolenbroek 			return -1;
111*00b67f09SDavid van Moolenbroek 	}
112*00b67f09SDavid van Moolenbroek 
113*00b67f09SDavid van Moolenbroek 	if ( !(is1 = tgetstr ("is1", &ap)) )
114*00b67f09SDavid van Moolenbroek 		is1 = "";
115*00b67f09SDavid van Moolenbroek 	if ( !(is2 = tgetstr ("is2", &ap)) )
116*00b67f09SDavid van Moolenbroek 		is2 = "";
117*00b67f09SDavid van Moolenbroek 	if ( !(r1 = tgetstr ("r1", &ap)) )
118*00b67f09SDavid van Moolenbroek 		r1 = "";
119*00b67f09SDavid van Moolenbroek 	if ( !(r2 = tgetstr ("r2", &ap)) )
120*00b67f09SDavid van Moolenbroek 		r2 = "";
121*00b67f09SDavid van Moolenbroek 
122*00b67f09SDavid van Moolenbroek 		/* if bold is not present */
123*00b67f09SDavid van Moolenbroek 	if ( !(bold_on = tgetstr ("md", &ap)) )
124*00b67f09SDavid van Moolenbroek 			/* use standout mode */
125*00b67f09SDavid van Moolenbroek 		if ( !(bold_on = tgetstr ("so", &ap)) )
126*00b67f09SDavid van Moolenbroek 			bold_on = bold_off = "";
127*00b67f09SDavid van Moolenbroek 		else
128*00b67f09SDavid van Moolenbroek 			bold_off = tgetstr ("se", &ap);
129*00b67f09SDavid van Moolenbroek 	else
130*00b67f09SDavid van Moolenbroek 		bold_off = tgetstr ("me", &ap);
131*00b67f09SDavid van Moolenbroek 
132*00b67f09SDavid van Moolenbroek 		/* if italic not present */
133*00b67f09SDavid van Moolenbroek 	if ( !(italic_on = tgetstr ("ZH", &ap)) )
134*00b67f09SDavid van Moolenbroek 			/* use underline mode */
135*00b67f09SDavid van Moolenbroek 		if ( !(italic_on = tgetstr ("us", &ap)) )
136*00b67f09SDavid van Moolenbroek 			italic_on = italic_off = "";
137*00b67f09SDavid van Moolenbroek 		else
138*00b67f09SDavid van Moolenbroek 			italic_off = tgetstr ("ue", &ap);
139*00b67f09SDavid van Moolenbroek 	else
140*00b67f09SDavid van Moolenbroek 		italic_off = tgetstr ("ZR", &ap);
141*00b67f09SDavid van Moolenbroek 
142*00b67f09SDavid van Moolenbroek 	maxcolor = tgetnum ("Co");
143*00b67f09SDavid van Moolenbroek 	if ( maxcolor < 0 )	/* no colors ? */
144*00b67f09SDavid van Moolenbroek 		return 0;
145*00b67f09SDavid van Moolenbroek 	if ( maxcolor > 8 )
146*00b67f09SDavid van Moolenbroek 		maxcolor = 8;
147*00b67f09SDavid van Moolenbroek 
148*00b67f09SDavid van Moolenbroek 	if ( (af = tgetstr ("AF", &ap)) )	/* set ansi color foreground */
149*00b67f09SDavid van Moolenbroek 	{
150*00b67f09SDavid van Moolenbroek 		for ( i = 0; i < maxcolor; i++ )
151*00b67f09SDavid van Moolenbroek 			snprintf (colortab[i], sizeof colortab[0], "%s", tparm (af, i));
152*00b67f09SDavid van Moolenbroek 	}
153*00b67f09SDavid van Moolenbroek 	else if ( (af = tgetstr ("Sf", &ap)) )	/* or set color foreground */
154*00b67f09SDavid van Moolenbroek 	{
155*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_BLACK], sizeof colortab[0], "%s", tparm (af, 0));
156*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_BLUE], sizeof colortab[0], "%s", tparm (af, 1));
157*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_GREEN], sizeof colortab[0], "%s", tparm (af, 2));
158*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_CYAN], sizeof colortab[0], "%s", tparm (af, 3));
159*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_RED], sizeof colortab[0], "%s", tparm (af, 4));
160*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_MAGENTA], sizeof colortab[0], "%s", tparm (af, 5));
161*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_YELLOW], sizeof colortab[0], "%s", tparm (af, 6));
162*00b67f09SDavid van Moolenbroek 		snprintf (colortab[TC_WHITE], sizeof colortab[0], "%s", tparm (af, 7));
163*00b67f09SDavid van Moolenbroek 	}
164*00b67f09SDavid van Moolenbroek 
165*00b67f09SDavid van Moolenbroek #if 0
166*00b67f09SDavid van Moolenbroek 	if ( is1 && *is1 )
167*00b67f09SDavid van Moolenbroek 		tc_printattr (fp, is1);
168*00b67f09SDavid van Moolenbroek 	if ( is2 && *is2 )
169*00b67f09SDavid van Moolenbroek 		tc_printattr (fp, is2);
170*00b67f09SDavid van Moolenbroek #endif
171*00b67f09SDavid van Moolenbroek 
172*00b67f09SDavid van Moolenbroek 	return 0;
173*00b67f09SDavid van Moolenbroek }
174*00b67f09SDavid van Moolenbroek #else
tc_init(FILE * fp,const char * term)175*00b67f09SDavid van Moolenbroek int	 tc_init (FILE *fp, const char *term)
176*00b67f09SDavid van Moolenbroek {
177*00b67f09SDavid van Moolenbroek 	int	i;
178*00b67f09SDavid van Moolenbroek 
179*00b67f09SDavid van Moolenbroek 	is1 = "";
180*00b67f09SDavid van Moolenbroek 	is2 = "";
181*00b67f09SDavid van Moolenbroek 	r1 = "";
182*00b67f09SDavid van Moolenbroek 	r2 = "";
183*00b67f09SDavid van Moolenbroek 	bold_on = "";
184*00b67f09SDavid van Moolenbroek 	bold_off = "";
185*00b67f09SDavid van Moolenbroek 	italic_on = "";
186*00b67f09SDavid van Moolenbroek 	italic_off = "";
187*00b67f09SDavid van Moolenbroek 	for ( i = 0; i < 8; i++ )
188*00b67f09SDavid van Moolenbroek 		colortab[i][0] = '\0';
189*00b67f09SDavid van Moolenbroek 	maxcolor = 0;
190*00b67f09SDavid van Moolenbroek 	html = 0;
191*00b67f09SDavid van Moolenbroek 
192*00b67f09SDavid van Moolenbroek 	return 0;
193*00b67f09SDavid van Moolenbroek }
194*00b67f09SDavid van Moolenbroek #endif
195*00b67f09SDavid van Moolenbroek 
196*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
tc_end(FILE * fp,const char * term)197*00b67f09SDavid van Moolenbroek int	tc_end (FILE *fp, const char *term)
198*00b67f09SDavid van Moolenbroek {
199*00b67f09SDavid van Moolenbroek #if 0
200*00b67f09SDavid van Moolenbroek 	if ( term )
201*00b67f09SDavid van Moolenbroek 	{
202*00b67f09SDavid van Moolenbroek //		if ( r1 && *r1 ) tc_printattr (fp, r1);
203*00b67f09SDavid van Moolenbroek 		if ( r2 && *r2 )
204*00b67f09SDavid van Moolenbroek 			tc_printattr (fp, r2);
205*00b67f09SDavid van Moolenbroek 	}
206*00b67f09SDavid van Moolenbroek #endif
207*00b67f09SDavid van Moolenbroek 	return 0;
208*00b67f09SDavid van Moolenbroek }
209*00b67f09SDavid van Moolenbroek #else
tc_end(FILE * fp,const char * term)210*00b67f09SDavid van Moolenbroek int	tc_end (FILE *fp, const char *term)
211*00b67f09SDavid van Moolenbroek {
212*00b67f09SDavid van Moolenbroek 	return 0;
213*00b67f09SDavid van Moolenbroek }
214*00b67f09SDavid van Moolenbroek #endif
215*00b67f09SDavid van Moolenbroek 
216*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
tc_attr(FILE * fp,tc_att_t attr,int on)217*00b67f09SDavid van Moolenbroek int	tc_attr (FILE *fp, tc_att_t attr, int on)
218*00b67f09SDavid van Moolenbroek {
219*00b67f09SDavid van Moolenbroek 	int	len;
220*00b67f09SDavid van Moolenbroek 
221*00b67f09SDavid van Moolenbroek 	len = 0;
222*00b67f09SDavid van Moolenbroek 	if ( on )	/* turn attributes on ? */
223*00b67f09SDavid van Moolenbroek 	{
224*00b67f09SDavid van Moolenbroek 		if ( (attr & TC_BOLD) == TC_BOLD )
225*00b67f09SDavid van Moolenbroek 			len += tc_printattr (fp, bold_on);
226*00b67f09SDavid van Moolenbroek 		if ( (attr & TC_ITALIC) == TC_ITALIC )
227*00b67f09SDavid van Moolenbroek 			len += tc_printattr (fp, italic_on);
228*00b67f09SDavid van Moolenbroek 
229*00b67f09SDavid van Moolenbroek 		if ( attr & 0xFF )
230*00b67f09SDavid van Moolenbroek 			len += tc_color (fp, attr & 0xFF);
231*00b67f09SDavid van Moolenbroek 	}
232*00b67f09SDavid van Moolenbroek 	else	/* turn attributes off */
233*00b67f09SDavid van Moolenbroek 	{
234*00b67f09SDavid van Moolenbroek 		if ( html )
235*00b67f09SDavid van Moolenbroek 			len += fprintf (fp, "</font>");
236*00b67f09SDavid van Moolenbroek 		else
237*00b67f09SDavid van Moolenbroek 			len += tc_color (fp, TC_BLACK);
238*00b67f09SDavid van Moolenbroek 
239*00b67f09SDavid van Moolenbroek 		if ( (attr & TC_ITALIC) == TC_ITALIC )
240*00b67f09SDavid van Moolenbroek 			len += tc_printattr (fp, italic_off);
241*00b67f09SDavid van Moolenbroek 		if ( !html || (attr & TC_BOLD) == TC_BOLD )
242*00b67f09SDavid van Moolenbroek 			len += tc_printattr (fp, bold_off);
243*00b67f09SDavid van Moolenbroek 	}
244*00b67f09SDavid van Moolenbroek 
245*00b67f09SDavid van Moolenbroek 	return len;
246*00b67f09SDavid van Moolenbroek }
247*00b67f09SDavid van Moolenbroek #else
tc_attr(FILE * fp,tc_att_t attr,int on)248*00b67f09SDavid van Moolenbroek int	tc_attr (FILE *fp, tc_att_t attr, int on)
249*00b67f09SDavid van Moolenbroek {
250*00b67f09SDavid van Moolenbroek 	return 0;
251*00b67f09SDavid van Moolenbroek }
252*00b67f09SDavid van Moolenbroek #endif
253*00b67f09SDavid van Moolenbroek 
254*00b67f09SDavid van Moolenbroek /*****************************************************************
255*00b67f09SDavid van Moolenbroek **	internal functions
256*00b67f09SDavid van Moolenbroek *****************************************************************/
257*00b67f09SDavid van Moolenbroek static	FILE	*tc_outfp;
put(int c)258*00b67f09SDavid van Moolenbroek static	int	put (int c)
259*00b67f09SDavid van Moolenbroek {
260*00b67f09SDavid van Moolenbroek 	return putc (c, tc_outfp);
261*00b67f09SDavid van Moolenbroek }
262*00b67f09SDavid van Moolenbroek 
263*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
tc_printattr(FILE * fp,const char * attstr)264*00b67f09SDavid van Moolenbroek static	int	tc_printattr (FILE *fp, const char *attstr)
265*00b67f09SDavid van Moolenbroek {
266*00b67f09SDavid van Moolenbroek 	tc_outfp = fp;
267*00b67f09SDavid van Moolenbroek 	return tputs (attstr, 0, put);
268*00b67f09SDavid van Moolenbroek }
269*00b67f09SDavid van Moolenbroek #else
tc_printattr(FILE * fp,const char * attstr)270*00b67f09SDavid van Moolenbroek static	int	tc_printattr (FILE *fp, const char *attstr)
271*00b67f09SDavid van Moolenbroek {
272*00b67f09SDavid van Moolenbroek 	return 0;
273*00b67f09SDavid van Moolenbroek }
274*00b67f09SDavid van Moolenbroek #endif
275*00b67f09SDavid van Moolenbroek 
276*00b67f09SDavid van Moolenbroek #if defined(COLOR_MODE) && COLOR_MODE && HAVE_LIBNCURSES
tc_color(FILE * fp,int color)277*00b67f09SDavid van Moolenbroek static	int	tc_color (FILE *fp, int color)
278*00b67f09SDavid van Moolenbroek {
279*00b67f09SDavid van Moolenbroek 	tc_outfp = fp;
280*00b67f09SDavid van Moolenbroek 
281*00b67f09SDavid van Moolenbroek 	if ( color < 0 || color >= maxcolor )
282*00b67f09SDavid van Moolenbroek 		return 0;
283*00b67f09SDavid van Moolenbroek 	return tputs (colortab[color], 0, put);
284*00b67f09SDavid van Moolenbroek }
285*00b67f09SDavid van Moolenbroek #else
tc_color(FILE * fp,int color)286*00b67f09SDavid van Moolenbroek static	int	tc_color (FILE *fp, int color)
287*00b67f09SDavid van Moolenbroek {
288*00b67f09SDavid van Moolenbroek 	return 0;
289*00b67f09SDavid van Moolenbroek }
290*00b67f09SDavid van Moolenbroek #endif
291*00b67f09SDavid van Moolenbroek 
292*00b67f09SDavid van Moolenbroek 
293*00b67f09SDavid van Moolenbroek #ifdef TEST
294*00b67f09SDavid van Moolenbroek static	const char	*progname;
295*00b67f09SDavid van Moolenbroek /*****************************************************************
296*00b67f09SDavid van Moolenbroek **	test main()
297*00b67f09SDavid van Moolenbroek *****************************************************************/
main(int argc,const char * argv[])298*00b67f09SDavid van Moolenbroek main (int argc, const char *argv[])
299*00b67f09SDavid van Moolenbroek {
300*00b67f09SDavid van Moolenbroek 	extern	char	*getenv ();
301*00b67f09SDavid van Moolenbroek 	char	*term = getenv ("TERM");
302*00b67f09SDavid van Moolenbroek 	int	i;
303*00b67f09SDavid van Moolenbroek 	const	char	*text;
304*00b67f09SDavid van Moolenbroek 
305*00b67f09SDavid van Moolenbroek 	progname = *argv;
306*00b67f09SDavid van Moolenbroek 
307*00b67f09SDavid van Moolenbroek 	tc_init (stdout, term);
308*00b67f09SDavid van Moolenbroek 
309*00b67f09SDavid van Moolenbroek 	// printattr (is);	/* Initialisierungsstring ausgeben */
310*00b67f09SDavid van Moolenbroek 
311*00b67f09SDavid van Moolenbroek 	text = "Test";
312*00b67f09SDavid van Moolenbroek 	if ( argc > 1 )
313*00b67f09SDavid van Moolenbroek 		text = *++argv;
314*00b67f09SDavid van Moolenbroek 
315*00b67f09SDavid van Moolenbroek 	tc_attr (stdout, TC_BOLD, 1);
316*00b67f09SDavid van Moolenbroek 	printf ("Bold Headline\n");
317*00b67f09SDavid van Moolenbroek 	tc_attr (stdout, TC_BOLD, 0);
318*00b67f09SDavid van Moolenbroek 	for ( i = 0; i < 8; i++ )
319*00b67f09SDavid van Moolenbroek 	{
320*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, i, 1);
321*00b67f09SDavid van Moolenbroek 		printf ("%s", text);
322*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, i, 0);
323*00b67f09SDavid van Moolenbroek 
324*00b67f09SDavid van Moolenbroek #if 0
325*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_BOLD), 1);
326*00b67f09SDavid van Moolenbroek 		printf ("\t%s", text);
327*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_BOLD), 0);
328*00b67f09SDavid van Moolenbroek 
329*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_ITALIC), 1);
330*00b67f09SDavid van Moolenbroek 		printf ("\t%s", text);
331*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_ITALIC), 0);
332*00b67f09SDavid van Moolenbroek 
333*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_BOLD | TC_ITALIC), 1);
334*00b67f09SDavid van Moolenbroek 		printf ("\t%s", text);
335*00b67f09SDavid van Moolenbroek 		tc_attr (stdout, (i | TC_BOLD | TC_ITALIC), 0);
336*00b67f09SDavid van Moolenbroek #endif
337*00b67f09SDavid van Moolenbroek 		printf ("\n");
338*00b67f09SDavid van Moolenbroek 	}
339*00b67f09SDavid van Moolenbroek 	printf ("now back to black\n");
340*00b67f09SDavid van Moolenbroek 
341*00b67f09SDavid van Moolenbroek 	// printattr (r2);	/* Zuruecksetzen */
342*00b67f09SDavid van Moolenbroek 
343*00b67f09SDavid van Moolenbroek 	return (0);
344*00b67f09SDavid van Moolenbroek }
345*00b67f09SDavid van Moolenbroek #endif
346