summaryrefslogtreecommitdiff
path: root/dviware/catdvi/cvsparser.pl
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/catdvi/cvsparser.pl')
-rwxr-xr-xdviware/catdvi/cvsparser.pl34
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();