diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl')
-rwxr-xr-x | Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl b/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl deleted file mode 100755 index b3866f0512c..00000000000 --- a/Master/texmf-dist/source/latex/latex-tds/lib/adjust_checksum.pl +++ /dev/null @@ -1,199 +0,0 @@ -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' - if 0; -use strict; -$^W=1; # turn warning on -# -# adjust_checksum.pl -# -# Copyright (C) 2006-2013 by Heiko Oberdiek <heiko.oberdiek at googlemail.com> -# -# This work may be distributed and/or modified under the -# conditions of the LaTeX Project Public License, either -# version 1.3 of this license or (at your option) any later -# version. The latest version of this license is in -# http://www.latex-project.org/lppl.txt -# and version 1.3 or later is part of all distributions of -# LaTeX version 2005/12/01 or later. -# -# This work has the LPPL maintenance status "maintained". -# -# This Current Maintainer of this work is Heiko Oberdiek. -# -# This work consists of this file. -# -# This file "adjust_checksum.pl" may be renamed to "adjust_checksum" -# for installation purposes. -# -my $file = "adjust_checksum.pl"; -my $program = uc($&) if $file =~ /^\w+/; -my $version = "1.6"; -my $date = "2013/01/24"; -my $author = "Heiko Oberdiek"; -my $copyright = "Copyright (c) 2002, 2006-2013 by $author."; -# -# Reqirements: Perl5, Linux -# History: -# 2002/03/15 v1.0: First release. -# 2006/02/12 v1.1: Fix for \Checksum{0}. -# 2007/06/15 v1.2: -draftmode added. -# 2007/09/25 v1.3: ltxdoc.cfg added to speed up. -# 2008/07/16 v1.4: Use of package `syntonly' for speed. -# 2011/04/15 v1.5: Email address updated. -# 2013/01/26 v1.6: License updated. -# - -my $prg_latex = 'latex -draftmode'; - -my $tempdir = "tmp_\L$program\E_$$"; - -### program identification -my $title = "$program $version, $date - $copyright\n"; - -my $usage = <<"END_OF_USAGE"; -${title}Syntax: \L$program\E <file.dtx> -Function: Correction of "\\Checksum{...}" entry in <file.dtx>. -END_OF_USAGE - -### error strings -my $Error = "!!! Error:"; # error prefix - -### parse command line arguments -@ARGV == 1 or die $usage; -my $dtxfile = $ARGV[0]; - -print $title; - -### check dtx file --f $dtxfile or die "$Error File not found: '$dtxfile'!\n"; - -### signals -$SIG{__DIE__} = \&clean; -$SIG{'HUP'} = \&clean; -$SIG{'INT'} = \&clean; -$SIG{'QUIT'} = \&clean; -$SIG{'TERM'} = \&clean; - -### make temp dir -mkdir $tempdir; --d $tempdir or die "$Error Cannot create directory '$tempdir'!\n"; - -### copy dtx file -my $tempdtxfile = $dtxfile; -$tempdtxfile =~ s/.*\///; -my $latexfile = $tempdtxfile; -$tempdtxfile = $tempdir . "/" . $tempdtxfile; - -system("cp $dtxfile $tempdtxfile"); --f $tempdtxfile or die "$Error Cannot copy dtx file!\n"; - -### create ltxdoc.cfg -my $ltxdocfile = $tempdir . "/" . 'ltxdoc.cfg'; -open(OUT, '>', $ltxdocfile) - or die "!!! Error: Cannot open file `$ltxdocfile'!\n"; -print OUT <<'__END__LTXDOC_CFG__'; -\typeout{* version for adjust_checksum} -\AtEndOfClass{% - \DontCheckModules - \DisableCrossrefs - \def\DisableCrossrefs{\@bsphack\@esphack}% - \let\EnableCrossrefs\DisableCrossrefs - \let\CodelineIndex\relax - \let\PageIndex\relax - \let\CodelineNumbered\relax - \let\PrintChanges\relax - \let\PrintIndex\relax - \let\tableofcontents\relax - \PassOptionsToPackage{hyperref}{bookmarks=false}% - \PassOptionsToPackage{hypdoc}{numbered}% - \expandafter\xdef\csname ver@hypdoc.sty\endcsname{}% - \expandafter\xdef\csname ver@bmhydoc.sty\endcsname{}% - \nofiles - \hfuzz\maxdimen - \pretolerance10000 % - \tolerance10000 % -} -\endinput -__END__LTXDOC_CFG__ -close(OUT); - -### run latex -print "*** Running LaTeX ...\n"; -my $argcode = "'\\AtBeginDocument{\\usepackage{syntonly}\\syntaxonly}" - . "\\input{$latexfile}'"; -system("(cd $tempdir; $prg_latex --interaction=batchmode $argcode)"); - -my $logfile = $tempdtxfile; -$logfile =~ s/\.[^\.]+$//; -$logfile .= ".log"; --f $logfile or die "$Error Cannot find log file '$logfile'!\n"; - -### parse log file for CheckSum -print "*** Looking for checksum statement ...\n"; -my $found = 0; -my $changed = 0; -my $old = 0; -my $new = 0; -open(LOG, $logfile) or die "$Error Cannot open log file '$logfile'!\n"; -while (<LOG>) { - if (/\* Checksum passed \*/) { - $found = 1; - $changed = 0; - print "==> Checksum passed.\n"; - last; - } - if (/Checksum not passed \((\d+)<>(\d+)\)/) { - $found = 1; - $changed = 1; - $old = $1; - $new = $2; - last; - } - if (/The checksum should be (\d+)!/) { - $found = 1; - $changed = 1; - $old = 0; - $new = $1; - last; - } -} -close(LOG); - -$found or die "$Error Checksum statement not found in log file!\n"; - -if ($changed) { - print "==> Checksum not passed ($old<>$new).\n"; - - ### write changed dtx file - print "*** Fixing Checksum ...\n"; - my $fixed = 0; - open(IN, $tempdtxfile) or die "$Error Cannot open '$tempdtxfile'!\n"; - open(OUT, ">$dtxfile") or die "$Error Cannot write '$dtxfile'!\n"; - while (<IN>) { - if (s/\\CheckSum\{\d+\}/\\CheckSum{$new}/) { - $fixed++; - print "==> Checksum fixed:\n$_"; - } - print OUT; - } - close(IN); - close(OUT); - - $fixed > 0 or - die "$Error: \"\\CheckSum{...}\" not found!\n"; - $fixed == 1 or - die "$Error: More than one \"\\CheckSum\" command found!\n"; -} - -### cleaning -sub clean { - if (-d $tempdir) { - unlink glob("$tempdir/*"); - rmdir $tempdir; - } -} - -clean(); - -print "*** Ready.\n"; - -__END__ |