/*
10/25/2005 - Rick Collette:
Changed the name to cmcsview - cryptic, I know, but I didn't want someone to think
I was running netcat on thier box...
*/
/**************************************************************************/
/* Ncat - version of Unix cat that displays text files with embedded nuts */
/* colour codes (eg, crypt syslog) */
/* */
/* (c) Bryan McPhail, 1997 */
/**************************************************************************/
#include <stdio.h>
main(argc, argv)
int argc;
char *argv[];
{
if (argc<2) {
printf("Usage: ncat filename\n");
exit(1);
}
if (!ncat(argv[1])) {
printf("ncat: file not found\n");
exit(1);
}
exit(0);
}
/*** ncat function ***/
ncat(filename)
char *filename;
{
char text[256],*str;
FILE *fp;
int i;
char *colcode[]={
"\033[0m\0", "\033[1m\0", "\033[5m\0", "\033[7m\0", "\033[4m",
/* Foreground */
"\033[30m\0","\033[31m\0","\033[32m\0","\033[33m\0",
"\033[34m\0","\033[35m\0","\033[36m\0","\033[37m\0",
/* Background */
"\033[40m\0","\033[41m\0","\033[42m\0","\033[43m\0",
"\033[44m\0","\033[45m\0","\033[46m\0","\033[47m\0"
};
/* Codes used in a string to produce the colours when prepended with a '~' */
char *colcom[]={
"RS","OL","LI","RV","UL",
"FK","FR","FG","FY",
"FB","FM","FT","FW",
"BK","BR","BG","BY",
"BB","BM","BT","BW"
};
if (!(fp=fopen(filename,"r"))) {
return 0;
}
/* Go through file */
while(!feof(fp) ) {
text[0]='\0';
fgets(text,254,fp);
str=text;
/* Process line from file */
while(*str) {
/* Reset colours before newline */
if (*str=='\n') {
printf("\033[0m\n");
str++;
continue;
}
/* Process colour commands in the file */
if (*str=='~') {
++str;
for(i=0;i<20;++i) {
if (!strncmp(str,colcom[i],2)) {
printf("%s",colcode[i]);
str++;
str++;
str++;
continue;
}
}
--str;
}
printf("%c",*str);
str++;
}
}
fclose(fp);
return 1;
}