#!/usr/bin/perl -w # # A script that converts paths in sTeX files from the old \Foosnipppath{bar} # to \snippets{foo/bar}, according to the definition of those path macros in # paths.sty. # # Syntax: convert-paths path/to/paths.sty FILES # # © 2008 Christoph Lange, KWARC, Jacobs University use File::Copy; my %map; my $SNIPPATHRE = '\\\\[[:alnum:]]+(?i:snip|pic)path'; if (open(P, shift(@ARGV))) { print STDERR "Mapping:\n"; while (
) {
if (/^\\def($SNIPPATHRE)#1\{(\\KWARCslides\{[^#]+)#1\}/o) {
printf STDERR "\t%s -> %s\n", $1, $2;
$map{$1} = $2;
}
}
close(P);
}
else {
die "Could not open paths.sty";
}
print STDERR "Processing files:\n";
while ($#ARGV >= 0) {
my $filename = shift(@ARGV);
print STDERR "\t$filename\n";
copy($filename, "$filename~") || print STDERR "\t\tWARN: could not create backup\n";
if (open(T, $filename)) {
# slurp the file into a string
local $/;
$data =