lib/scripts/update_sub_sup
author wenzelm
Fri, 12 Jul 2013 14:54:17 +0200
changeset 52618 2077168aa8f7
child 52921 0ea2b657eb42
permissions -rwxr-xr-x
added "isabelle update_sub_sup" tool;

#!/usr/bin/env perl
#
# Author: Makarius
#
# update_sub_sup - update sub/sup control symbols

use warnings;
use strict;

sub update_sub_sup {
    my ($file) = @_;

    open (FILE, $file) || die $!;
    undef $/; my $text = <FILE>; $/ = "\n";         # slurp whole file
    close FILE || die $!;

    $_ = $text;

    s/\Q\<^isub>\E/\\<^sub>/g;
    s/\Q\<^isup>\E/\\<^sup>/g;

    my $result = $_;

    if ($text ne $result) {
        print STDERR "changing $file\n";
        if (! -f "$file~~") {
            rename $file, "$file~~" || die $!;
        }
        open (FILE, "> $file") || die $!;
        print FILE $result;
        close FILE || die $!;
    }
}


## main

foreach my $file (@ARGV) {
  eval { &update_sub_sup($file); };
  if ($@) { print STDERR "*** update_sub_sup $file: ", $@, "\n"; }
}