xref: /aosp_15_r20/external/bzip2/format.pl (revision 0ac9a9daea5cce2e775d5da949508593e2ee9206)
1*0ac9a9daSXin Li#!/usr/bin/perl -w
2*0ac9a9daSXin Li#
3*0ac9a9daSXin Li# ------------------------------------------------------------------
4*0ac9a9daSXin Li# This file is part of bzip2/libbzip2, a program and library for
5*0ac9a9daSXin Li# lossless, block-sorting data compression.
6*0ac9a9daSXin Li#
7*0ac9a9daSXin Li# bzip2/libbzip2 version 1.0.8 of 13 July 2019
8*0ac9a9daSXin Li# Copyright (C) 1996-2019 Julian Seward <[email protected]>
9*0ac9a9daSXin Li#
10*0ac9a9daSXin Li# Please read the WARNING, DISCLAIMER and PATENTS sections in the
11*0ac9a9daSXin Li# README file.
12*0ac9a9daSXin Li#
13*0ac9a9daSXin Li# This program is released under the terms of the license contained
14*0ac9a9daSXin Li# in the file LICENSE.
15*0ac9a9daSXin Li# ------------------------------------------------------------------
16*0ac9a9daSXin Li#
17*0ac9a9daSXin Liuse strict;
18*0ac9a9daSXin Li
19*0ac9a9daSXin Li# get command line values:
20*0ac9a9daSXin Liif ( $#ARGV !=1 ) {
21*0ac9a9daSXin Li    die "Usage:  $0 xml_infile xml_outfile\n";
22*0ac9a9daSXin Li}
23*0ac9a9daSXin Li
24*0ac9a9daSXin Limy $infile = shift;
25*0ac9a9daSXin Li# check infile exists
26*0ac9a9daSXin Lidie "Can't find file \"$infile\""
27*0ac9a9daSXin Li  unless -f $infile;
28*0ac9a9daSXin Li# check we can read infile
29*0ac9a9daSXin Liif (! -r $infile) {
30*0ac9a9daSXin Li    die "Can't read input $infile\n";
31*0ac9a9daSXin Li}
32*0ac9a9daSXin Li# check we can open infile
33*0ac9a9daSXin Liopen( INFILE,"<$infile" ) or
34*0ac9a9daSXin Li    die "Can't input $infile $!";
35*0ac9a9daSXin Li
36*0ac9a9daSXin Li#my $outfile = 'fmt-manual.xml';
37*0ac9a9daSXin Limy $outfile = shift;
38*0ac9a9daSXin Li#print "Infile: $infile, Outfile: $outfile\n";
39*0ac9a9daSXin Li# check we can write to outfile
40*0ac9a9daSXin Liopen( OUTFILE,">$outfile" ) or
41*0ac9a9daSXin Li    die "Can't output $outfile $! for writing";
42*0ac9a9daSXin Li
43*0ac9a9daSXin Limy ($prev, $curr, $str);
44*0ac9a9daSXin Li$prev = ''; $curr = '';
45*0ac9a9daSXin Liwhile ( <INFILE> ) {
46*0ac9a9daSXin Li
47*0ac9a9daSXin Li		print OUTFILE $prev;
48*0ac9a9daSXin Li    $prev = $curr;
49*0ac9a9daSXin Li    $curr = $_;
50*0ac9a9daSXin Li    $str = '';
51*0ac9a9daSXin Li
52*0ac9a9daSXin Li    if ( $prev =~ /<programlisting>$|<screen>$/ ) {
53*0ac9a9daSXin Li        chomp $prev;
54*0ac9a9daSXin Li        $curr = join( '', $prev, "<![CDATA[", $curr );
55*0ac9a9daSXin Li				$prev = '';
56*0ac9a9daSXin Li        next;
57*0ac9a9daSXin Li    }
58*0ac9a9daSXin Li    elsif ( $curr =~ /<\/programlisting>|<\/screen>/ ) {
59*0ac9a9daSXin Li        chomp $prev;
60*0ac9a9daSXin Li        $curr = join( '', $prev, "]]>", $curr );
61*0ac9a9daSXin Li				$prev = '';
62*0ac9a9daSXin Li        next;
63*0ac9a9daSXin Li    }
64*0ac9a9daSXin Li}
65*0ac9a9daSXin Liprint OUTFILE $curr;
66*0ac9a9daSXin Liclose INFILE;
67*0ac9a9daSXin Liclose OUTFILE;
68*0ac9a9daSXin Liexit;
69