#
#  dtp2nroff
#
#  Command line : dtp2nroff dtpfile prologfile epilogfile nrofffile variablefile
#
$DTPFile = @ARGV[ 0];    # Command line argumente uebernehmen
$PROFile = @ARGV[ 1];
$EPIFile = @ARGV[ 2];
$NROFFFile = @ARGV[ 3];
$VARFile = @ARGV[ 4];

open( OUTFILE, ">$NROFFFile");
open( OUTVAR, ">$VARFile");

$COPFile = $PROFile;    # Prolog uebernehmen
do cop_file();
do transform_report();     # DTP File umsetzen
$COPFile = $EPIFile;    # Epilog uebernehmen
do cop_file();

close( OUTFILE);
close( OUTVAR);
exit;


#
# Inhalt eines Files uebernehmen; insb. Prolog und Epilog
#
sub cop_file          
    {
    open( INFILE, $COPFile);
    while( <INFILE>)
	{
	print( OUTFILE $_ );
	}
    close( INFILE);
    }

#
# Umsetztabelle
#
sub transform_report 
    {
    open( INFILE, $DTPFile);
    while( <INFILE>)
	{
	if( m/<HL1>/)
	    {
	    s/<HL1>//;
            $_ = do transform_string( $_);
	    chop;
	    print( OUTFILE ".bp\n");
	    print( OUTFILE ".(x\n");
	    print( OUTFILE ".sh 1 \"$_\"\n");
	    print( OUTFILE ".)x\n");
	    print( OUTFILE ".sh 1 \"$_\"\n");
	    }
	elsif( m/<HL2>/)
	    {
	    s/<HL2>//;
            $_ = do transform_string( $_);
	    chop;
	    print( OUTFILE ".(x\n");
	    print( OUTFILE ".sh 2 \"$_\"\n");
	    print( OUTFILE ".)x\n");
	    print( OUTFILE ".sh 2 \"$_\"\n");
	    }
	elsif( m/<HL3>/)
	    {
	    s/<HL3>//;
            $_ = do transform_string( $_);
	    chop;
	    print( OUTFILE ".(x\n");
	    print( OUTFILE ".sh 3 \"$_\"\n");
	    print( OUTFILE ".)x\n");
	    print( OUTFILE ".sh 3 \"$_\"\n");
	    }
	elsif( m/<CH>/)
	    {
	    s/<CH>//;
	    chop;
#	    print( OUTFILE ".(b\n");
#	    print( OUTFILE ".sp 11.5cm\n");
#	    print( OUTFILE ".)b\n");
	    print( OUTFILE "    { Chart not inserted into ASCII report }\n");
	    }
	elsif( m/<EM>/)
	    {
	    s/<EM>//;
            $_ = do transform_string( $_);
	    chop;
	    print( OUTFILE ".i \"$_\"\n");
	    }
	elsif( m/<VAR>/)
	    {
	    s/<VAR>//;
            $_ = do transform_string( $_);
	    chop;
	    print( OUTVAR ".ds $_\n");
	    }
	else
	    {
            $_ = do transform_string( $_);
	    print( OUTFILE " $_");
	    }
	}
    close( INFILE);
    }

sub transform_string
	{
	local( $line) = pop( @_);
        local( @chars) = split( //, $line);	
        foreach $ch (@chars)		
            {				
            if( $ch eq '\\')         { $ch = '\\\\'; }
            }
        $line = join( '', @chars);	
	}
