From b9ac7d000f29897eaa09f5ca6b66d5bfb05896d7 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 25 Nov 2011 01:06:07 +0000 Subject: care for update of dvipdfmx.cfg in TEXMFSYSCONFIG git-svn-id: svn://tug.org/texlive/trunk@24659 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/tlpostcode/dvipdfmx.pl | 78 +++++++++++++++++++++++++++++++++++++ Master/tlpkg/tlpsrc/dvipdfmx.tlpsrc | 2 + 2 files changed, 80 insertions(+) create mode 100644 Master/tlpkg/tlpostcode/dvipdfmx.pl diff --git a/Master/tlpkg/tlpostcode/dvipdfmx.pl b/Master/tlpkg/tlpostcode/dvipdfmx.pl new file mode 100644 index 00000000000..856e19645fb --- /dev/null +++ b/Master/tlpkg/tlpostcode/dvipdfmx.pl @@ -0,0 +1,78 @@ +# $Id$ +# post action for dvipdfmx to handle upgrades of map files +# Copyright 2011 Norbert Preining +# This file is licensed under the GNU General Public License version 2 +# or any later version. +# + +my $texdir; +my $mode; + +BEGIN { + $^W = 1; + $mode = lc($ARGV[0]); + $texdir = $ARGV[1]; + # make Perl find our packages first: + unshift (@INC, "$texdir/tlpkg"); +} +use TeXLive::TLUtils qw(win32 mkdirhier conv_to_w32_path log info); + +if ($mode eq 'install') { + do_install(); +} elsif ($mode eq 'remove') { + do_remove(); +} else { + die("unknown mode: $mode\n"); +} + +sub do_remove { + # do nothing +} + +sub do_install { + # bin-installs font-config related stuff + chomp( my $tmfsysconf = `kpsewhich -var-value=TEXMFSYSCONFIG` ) ; + chomp( my $tmfmain = `kpsewhich -var-value=TEXMFMAIN` ) ; + if (-r "$tmfsysconf/dvipdfmx/dvipdfmx.cfg") { + # assume that succeeds, we tested -r above! + open (FOO, "<$tmfsysconf/dvipdfmx/dvipdfmx.cfg"); + my @lines = ; + chomp(@lines); + close(FOO); + my @outlines; + my $isold = 0; + for my $l (@lines) { + if ($l =~ m/^f\s+cid-x\.map\s*$/) { + $isold = 1; + push @outlines, "%f cid-x.map\n\n"; + push @outlines, "% the following file is generated by updmap(-sys) from the +% KanjiMap entries in the updmap.cfg file. +f kanjix.map +% minimal example for Chinese and Korean users +% improvements please to tex-live\@tug.org +f ckx.map\n"; + } else { + push @outlines, "$l\n"; + } + } + if ($isold) { + if (!open (FOO, ">$tmfsysconf/dvipdfmx/dvipdfmx.cfg")) { + fprintf STDERR "dvipdfmx.pl(postcode): Cannot write $tmfsysconf/dvipdfmx/dvipdfmx.cfg + This config file contains an outdated map definition line. + Please see $tmfmain/dvipdfmx/dvipdfmx.cfg for changes +"; + return 0; + } + print FOO @outlines; + close (FOO); + } + } + return 0; +} + +### Local Variables: +### perl-indent-level: 2 +### tab-width: 2 +### indent-tabs-mode: nil +### End: +# vim:set tabstop=2 expandtab: # diff --git a/Master/tlpkg/tlpsrc/dvipdfmx.tlpsrc b/Master/tlpkg/tlpsrc/dvipdfmx.tlpsrc index f7413c3399c..80133bf7988 100644 --- a/Master/tlpkg/tlpsrc/dvipdfmx.tlpsrc +++ b/Master/tlpkg/tlpsrc/dvipdfmx.tlpsrc @@ -1,6 +1,8 @@ category TLCore depend glyphlist depend dvipdfmx-def +postaction script file=tlpkg/tlpostcode/dvipdfmx.pl +runpattern f tlpkg/tlpostcode/dvipdfmx.pl runpattern d texmf/dvipdfmx runpattern d texmf/fonts/cmap runpattern d texmf/fonts/map/dvipdfmx -- cgit v1.2.3