gstreamer/examples/manual/extract.pl
Thomas Vander Stichele f98c840f6a adding automatic example extraction from manual
Original commit message from CVS:
adding automatic example extraction from manual
2002-09-14 13:17:10 +00:00

52 lines
1,019 B
Perl
Executable file

#!/usr/bin/perl
# extract code fragments from xml program listings
# first argument: source code file to find
# second argument: xml files to extract code from
# main
# decodes xml by translating & < > back to what they should be
sub
xml_decode ($)
{
my $input = shift;
$input =~ s/\&/&/g;
$input =~ s/&lt;/</g;
$input =~ s/&gt;/>/g;
return $input;
}
# main
my $output = shift @ARGV;
foreach $file (@ARGV)
{
open FILE, $file or die "Cannot open file $file";
while ($line = <FILE>)
{
if ($line =~ /\/\* example-begin $output \*\//)
{
print "Extracting $output from $file\n";
open OUTPUT, ">$output";
print OUTPUT xml_decode ($line);
my $example = 1;
while (($line = <FILE>) && $example)
{
if ($line =~ /\/\* example-end/)
{
print OUTPUT xml_decode ($line);
close OUTPUT;
$example = 0;
}
else
{
print OUTPUT xml_decode ($line);
}
}
}
}
}