#!/usr/bin/perl -w
# -*- perl -*-
package colorView ;
use strict ;
#
#
#################################################################
# Configuration file for color view of files
#################################################################
#
#
# This module is designed to add colors to
# file view.
# The idea is to apply a filter (in this case
# eval a perl script) that adds color to
# the file. The filter is selected using
# one of two methods:
# 1. Check file name (typicall extension)
# 2. Check first line in file
my %fileNameRegexp ;
# Store filter name by regexp for file name
my %firstLineRegexp ;
# Store filter name by regexp for first line in file to color
# Initialize variables
BEGIN()
{
%fileNameRegexp = ("\\\.html\$" => "colorHtml.pl" ,
"\\\.htm\$" => "colorHtml.pl" ,
"\\\.pl\$" => "colorPerl.pl",
"\\\.c\$" => "colorC.pl",
"\\\.C\$" => "colorC.pl",
"\\\.cxx\$" => "colorC.pl",
"\\\.cpp\$" => "colorC.pl",
"\\\.h\$" => "colorC.pl",
"\\\.H\$" => "colorC.pl",
"\\\.hxx\$" => "colorC.pl",
"\\\.hpp\$" => "colorC.pl",
) ;
%firstLineRegexp = ("perl" => "colorPerl.pl") ;
} ;
# Subroutine to call
sub color($;\$) {
my $filename = shift @_ ;
my $textref = shift @_ ;
my $t ;
my $FILE = $$textref ;
foreach $t (keys %fileNameRegexp) {
if($filename =~ /$t/) {
eval `cat $fileNameRegexp{$t}` ;
$$textref = $FILE unless $@ ;
return ;
}
} ;
$FILE =~ /^(.*?)\n/ ;
my $firstLine = $1 ;
foreach $t (keys %firstLineRegexp) {
if($firstLine =~ /$t/) {
eval `cat $firstLineRegexp{$t}` ;
$$textref = $FILE unless $@ ;
return ;
}
}
} ;
1;