diff options
Diffstat (limited to 'dviware/catdvi/cvsparser.pl')
-rwxr-xr-x | dviware/catdvi/cvsparser.pl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dviware/catdvi/cvsparser.pl b/dviware/catdvi/cvsparser.pl new file mode 100755 index 0000000000..325a617505 --- /dev/null +++ b/dviware/catdvi/cvsparser.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w +# Written by Antti-Juhani Kaijanaho for the GZigZag project + +use strict 'vars'; + +sub main { + my @dirs = (); + my $dn = ""; + push @dirs, "."; + DIRS : while ($#dirs >= 0) { + $dn = pop @dirs; + print STDERR "Finding files in `$dn'..."; + open(ENTRIES, "<$dn/CVS/Entries") || next DIRS; + while (<ENTRIES>) { + if (m|^(D?)/([^/]+)/([0-9]+(\.[0-9]+)*)?/[^/]*/[^/]*/.*$|) { + my $dir = ($1 eq "D"); + my $name = $2; + if ($dir) { + push @dirs, "$dn/$name"; + } else { + print "$dn/$name\n"; + } + } elsif (/^D$/) { + # ignore + } else { + print STDERR "###$_###"; + die "syntax error" + } + } + close(ENTRIES); + print STDERR "done.\n"; + } +} +main(); |