equal
  deleted
  inserted
  replaced
  
    
    
|      1 #!/usr/bin/env perl |         | 
|      2 # |         | 
|      3 # Author: Makarius |         | 
|      4 # |         | 
|      5 # update_sub_sup - update Isabelle symbols involving sub/superscripts |         | 
|      6  |         | 
|      7 use warnings; |         | 
|      8 use strict; |         | 
|      9  |         | 
|     10 sub update_sub_sup { |         | 
|     11     my ($file) = @_; |         | 
|     12  |         | 
|     13     open (FILE, $file) || die $!; |         | 
|     14     undef $/; my $text = <FILE>; $/ = "\n";         # slurp whole file |         | 
|     15     close FILE || die $!; |         | 
|     16  |         | 
|     17     $_ = $text; |         | 
|     18  |         | 
|     19     s/\Q\<^isub>\E/\\<^sub>/g; |         | 
|     20     s/\Q\<^isup>\E/\\<^sup>/g; |         | 
|     21     s/\Q\<onesuperior>\E/\\<^sup>1/g; |         | 
|     22     s/\Q\<twosuperior>\E/\\<^sup>2/g; |         | 
|     23     s/\Q\<threesuperior>\E/\\<^sup>3/g; |         | 
|     24  |         | 
|     25     my $result = $_; |         | 
|     26  |         | 
|     27     if ($text ne $result) { |         | 
|     28         print STDERR "changing $file\n"; |         | 
|     29         if (! -f "$file~~") { |         | 
|     30             rename $file, "$file~~" || die $!; |         | 
|     31         } |         | 
|     32         open (FILE, "> $file") || die $!; |         | 
|     33         print FILE $result; |         | 
|     34         close FILE || die $!; |         | 
|     35     } |         | 
|     36 } |         | 
|     37  |         | 
|     38  |         | 
|     39 ## main |         | 
|     40  |         | 
|     41 foreach my $file (@ARGV) { |         | 
|     42   eval { &update_sub_sup($file); }; |         | 
|     43   if ($@) { print STDERR "*** update_sub_sup $file: ", $@, "\n"; } |         | 
|     44 } |         |