Blame format.pl

Packit 71fd91
#!/usr/bin/perl -w
Packit 71fd91
#
Packit 71fd91
# ------------------------------------------------------------------
Packit 71fd91
# This file is part of bzip2/libbzip2, a program and library for
Packit 71fd91
# lossless, block-sorting data compression.
Packit 71fd91
#
Packit 71fd91
# bzip2/libbzip2 version 1.0.6 of 6 September 2010
Packit 71fd91
# Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
Packit 71fd91
#
Packit 71fd91
# Please read the WARNING, DISCLAIMER and PATENTS sections in the 
Packit 71fd91
# README file.
Packit 71fd91
#
Packit 71fd91
# This program is released under the terms of the license contained
Packit 71fd91
# in the file LICENSE.
Packit 71fd91
# ------------------------------------------------------------------
Packit 71fd91
#
Packit 71fd91
use strict;
Packit 71fd91
Packit 71fd91
# get command line values:
Packit 71fd91
if ( $#ARGV !=1 ) {
Packit 71fd91
    die "Usage:  $0 xml_infile xml_outfile\n";
Packit 71fd91
}
Packit 71fd91
Packit 71fd91
my $infile = shift;
Packit 71fd91
# check infile exists
Packit 71fd91
die "Can't find file \"$infile\""
Packit 71fd91
  unless -f $infile;
Packit 71fd91
# check we can read infile
Packit 71fd91
if (! -r $infile) {
Packit 71fd91
    die "Can't read input $infile\n";
Packit 71fd91
}
Packit 71fd91
# check we can open infile
Packit 71fd91
open( INFILE,"<$infile" ) or 
Packit 71fd91
    die "Can't input $infile $!";
Packit 71fd91
Packit 71fd91
#my $outfile = 'fmt-manual.xml';
Packit 71fd91
my $outfile = shift;
Packit 71fd91
#print "Infile: $infile, Outfile: $outfile\n";
Packit 71fd91
# check we can write to outfile
Packit 71fd91
open( OUTFILE,">$outfile" ) or 
Packit 71fd91
    die "Can't output $outfile $! for writing";
Packit 71fd91
Packit 71fd91
my ($prev, $curr, $str);
Packit 71fd91
$prev = ''; $curr = '';
Packit 71fd91
while ( <INFILE> ) {
Packit 71fd91
Packit 71fd91
		print OUTFILE $prev;
Packit 71fd91
    $prev = $curr;
Packit 71fd91
    $curr = $_;
Packit 71fd91
    $str = '';
Packit 71fd91
Packit 71fd91
    if ( $prev =~ /<programlisting>$|<screen>$/ ) {
Packit 71fd91
        chomp $prev;
Packit 71fd91
        $curr = join( '', $prev, "
Packit 71fd91
				$prev = '';
Packit 71fd91
        next;
Packit 71fd91
    }
Packit 71fd91
    elsif ( $curr =~ /<\/programlisting>|<\/screen>/ ) {
Packit 71fd91
        chomp $prev;
Packit 71fd91
        $curr = join( '', $prev, "]]>", $curr );
Packit 71fd91
				$prev = '';
Packit 71fd91
        next;
Packit 71fd91
    }
Packit 71fd91
}
Packit 71fd91
print OUTFILE $curr;
Packit 71fd91
close INFILE;
Packit 71fd91
close OUTFILE;
Packit 71fd91
exit;