/* 
   snip code for the terminal colors is taken from 
   http://linuxgazette.net/issue65/padala.html 

   Copyright (c)2001, Pradeep Padala.
   Copying license http://www.linuxgazette.com/copying.html
   Published in Issue 65 of Linux Gazette, April 2001

   Note: Francesco Stablum has modified the code on 15/01/04
   to take it useful for my program (tcpick) released under the GPL license.
*/

#include "tcpick.h" 
#include "extern.h"

void textcolor(FILE * out, int attr, int fg, int bg) 
{
	char command[13];
	/* Command is the control command to the terminal */
	sprintf(command, "%c[%d;%dm", 0x1B, attr, fg + 30);
	fprintf(out,"%s", command);
}

void resetcolor(FILE * out) 
{
	/* works on gnome-terminal, xterm and rxvt */
	fprintf(out,"\x1b[0;0m");
}

void
color( int attr, int fg, FILE * out, char *fmt, ... )
{

#define COLOR_CONDITION ( ( out == stdout || out == stderr ) && flags.color )

	va_list list;

	if( COLOR_CONDITION )
		textcolor ( out, attr, fg, GREEN );

	va_start ( list, fmt );
	vfprintf ( out, fmt, list );
	va_end ( list );

	if( COLOR_CONDITION )
		resetcolor(out);
}




syntax highlighted by Code2HTML, v. 0.9.1