diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-08-13 16:00:38 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2012-08-13 16:00:38 +0000 |
commit | fc0c0b69fa369126796915687cdcd9faea6cdbc6 (patch) | |
tree | 555c7fbd01c65c6e0ca62284fb5c73db5177df77 /Build/source/texk/tetex | |
parent | d5209d536850b6e29f0e67bc54f8fe02a897e10d (diff) |
texlive: install some linked ConTeXt scripts
tetex: remove obsolete files
git-svn-id: svn://tug.org/texlive/trunk@27387 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/tetex')
-rw-r--r-- | Build/source/texk/tetex/ChangeLog | 742 | ||||
-rw-r--r-- | Build/source/texk/tetex/Makefile.am | 5 | ||||
-rw-r--r-- | Build/source/texk/tetex/Makefile.in | 7 | ||||
-rw-r--r-- | Build/source/texk/tetex/old-fontinst.bat | 2 | ||||
-rwxr-xr-x | Build/source/texk/tetex/old-updmap | 1449 | ||||
-rwxr-xr-x | Build/source/texk/tetex/updmap-single.pl | 1546 |
6 files changed, 3 insertions, 3748 deletions
diff --git a/Build/source/texk/tetex/ChangeLog b/Build/source/texk/tetex/ChangeLog deleted file mode 100644 index 459ffe2f408..00000000000 --- a/Build/source/texk/tetex/ChangeLog +++ /dev/null @@ -1,742 +0,0 @@ -2012-08-08 Peter Breitenlohner <peb@mppmu.mpg.de> - - * fmtutil*, tcfmgr*, texconfig*, texlinks* (removed): - Moved from here to ../texlive/tetex/. - * Makefile.am: Adapted; run-texlinks rule - -2012-08-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - * tests/, all*, dvi2fax*, dvired*, fontinst*, kpsetool*, - kpsewhere*, ps2frag*, pslatex*, rubibtex*, rumakeindex*, - updmap* (removed): Moved from here to ../texlive/tetex/. - * Makefile.am: Adapted. - -2012-08-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * e2pall.man, texdoctk.man, texdoctk.man (removed): Moved from - here to ../texlive/tetex/. - * Makefile.am: Adapted. - -2012-08-04 Karl Berry <karl@tug.org> - - * tl-sys-wrapper: not needed. The Windows wrapper, runscript.tlu, - already handles -sys, as does the Windows fmtutil.c. - * Makefile.am (EXTRA_DIST): remove it again. - -2012-08-03 Karl Berry <karl@tug.org> - - * tl-sys-wrapper.pl: initial attempt. - -2012-07-31 Norbert Preining <preining@logic.at> - - * updmap.pl (main): fix quoting and var expansion on Windows. - * updmap.pl (main): and another fix, this time for PATH separator - -2012-07-30 Norbert Preining <preining@logic.at> - - * updmap.pl (main): support for multiple entry TEXMFLOCAL. - Tell the user which config files is used for writing. - -2012-07-23 Karl Berry <karl@tug.org> - - * updmap.pl (help): we have both --showoption and --showoptions. - Ugh. Found by Bruno Voisin, 11 Jun 2012 21:34:44. - -2012-06-10 Norbert Preining <preining@logic.at> - - * updmap.pl: fix ordering of how updmap.cfg files are read - and add documentation. - -2012-06-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (EXTRA_DIST): Add the new file updmap.help2man. - -2012-06-01 Karl Berry <karl@tug.org> - - * Makefile.am (xupdmap.man): new (phony) target to run help2man. - * updmap.help2man: new file. - - * updmap.pl: consistently use $prg, and remove .pl suffix. - -2012-05-31 Karl Berry <karl@tug.org> - - * updmap.pl (reset_root_home): accept /var/root. - -2012-05-31 Norbert Preining <preining@logic.at> - - * updmap.pl: reset root $HOME if it is not the real one, since - sudo does not reset it - -2012-05-21 Norbert Preining <preining@logic.at> - - * updmap.pl - . on win32, ensure file names are in lower case - . add --dvipdfmxoutputdir, make --dvipdfmoutputdir synonym - (more or less) - . make sure that the file name database is properly updated - when creating a new config file - . remove --old-mode cmd line option - -2012-05-15 Peter Breitenlohner <peb@mppmu.mpg.de> - - * updmap.pl: Moved from ../texlive/linked_scripts/texlive/ - back to here. - * tests/ (new): Moved from ../texlive/ to here and adapted. - * Makefile.am: Adapted. - -2012-05-14 Peter Breitenlohner <peb@mppmu.mpg.de> - - * tests/ (removed): Moved from here to ../texlive/. - * Makefile.am: Adapted. - - * fmtutil.cnf: Updated from Master. - -2012-05-14 Norbert Preining <preining@logic.at> - - * updmap.pl: rename to updmap-single.pl, we ship updmap.pl now - via ../texlive/linked_scripts/texlive/updmap.pl - -2012-04-10 Karl Berry <karl@tug.org> - - * fmtutil (main): eradicate double slashes in tmpdir. - tex-k mail from Alexey Vikhlinin, 8 Apr 2012 17:32:02. - -2012-03-12 Karl Berry <karl@tug.org> - - * updmap.cfg.5: avoid ... at beginning of line. - Replace Debian-specific text. - -2012-02-21 Karl Berry <karl@tug.org> - - * updmap.pl (help): updates for kanji. - -2012-02-10 Norbert Preining <preining@logic.at> - - * updmap.pl: fix breakage of updmap if a generated file does - not exist (wrong double substitution of @kanji*@ strings) - -2012-02-01 Norbert Preining <preining@logic.at> - - * updmap.pl: - . support -showoption key that shows the current setting - . fix not-acceptance of empty values in key/val -setoption - -2012-01-19 Norbert Preining <preining@logic.at> - - * updmap.pl: - . allow --enable Map foo.map again - . support kanjiVariant options and replacement - -2011-12-12 Karl Berry <karl@tug.org> - - * updmap.pl: untabify, formatting. - -2011-12-06 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Replace ${prefix}/texmf => $(datarootdir)/texmf. - -2011-11-16 Norbert Preining <preining@logic.at> - - * updmap.pl: make sure that kanjiEmbed is set to a default value - if not found in the config file. - -2011-11-09 Norbert Preining <preining@logic.at> - - * updmap.pl: add support for pxdviUse config option in updmap, - and generate xdvi-ptex.map if it is set in a similar way as kanjix.map, - patch based on work of Hironori Kitagawa - -2011-11-04 Norbert Preining <preining@logic.at> - - * updmap.pl: small fixes to documentation of updmap.pl, and fixes - to --syncwithtrees and --listavail, patch from Hironori Kitagawa - -2011-11-02 Norbert Preining <preining@logic.at> - - * updmap.pl: apply patch from Hironori Kitagawa that fixes - a --syncwithtrees problem in searching for map names. - -2011-10-26 Norbert Preining <preining@logic.at> - - * updmap.pl: apply patch from ptexlive Tsuchimura to support - kanjiEmbed setting, and generate kanjix.map. - -2011-09-09 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Adapt to script_links.am using relpath. - (run-texlinks): Declare as .PHONY; skip texlinks for WIN32. - -2011-09-09 Karl Berry <karl@tug.org> - - * tests: new subdir, with first updmap test, that doesn't really - work yet but passes anyway. - * Makefile.am (TESTS): add tests/updmap-cmdline-test.pl. - * updmap.pl (read_option_vals): don't call getopt twice (from Norbert). - Don't complain about non-option args, that is how --enable/--disable - are currently (mis)handled. - (writeLines, copyFile, setupOutputDir, SetupCfgFile): do nothing - if $dry_run. - -2011-09-05 Karl Berry <karl@tug.org> - - * texconfig-dialog (runDialog): only clear screen if we actually - run the dialog program. - (findDialog): do not bother setting DIALOG_TERM and - DIALOG_TERMINFO if we don't find a system dialog program, - since we're just going to abort anyway. - * texmf: remove subdir with terminfo definitions. - * Makefile.am (texconfdir, nobase_dist_texconf_DATA): likewise rm. - -2011-09-04 Norbert Preining <preining@logic.at> - - * updmap.pl (BEGIN): older versions are supported again. - (read_for_set_options): new fn. - (processOptions): call it, so we call getopt twice, - so we can avoid using the =s{1,2} specifier (for --setoption) - which needs perl 5.8.8. - Also, complain about non-option arguments. - http://tug.org/pipermail/tex-live/2011-July/029764.html - http://tug.org/pipermail/tex-k/2011-September/002329.html - -2011-08-26 Karl Berry <karl@tug.org> - - * texconfig-dialog: do not invoke tcdialog as fallback, - give up instead. We don't want to install our own (tc)dialog any - more, induces curses dependencies. More importantly, texconfig, - and especially this interactive configuration, has not been the - way we have been moving (or testing) for years now. If there is - anyone left who wants to do it, they can install their own dialog - (or whiptail) program. - -2011-06-27 Karl Berry <karl@tug.org> - - * fmtutil (version): rename to versionfunc, or Solaris sh dies - with "bad substitution". - Report from Nelson, 23 Jun 2011 09:42:09. - -2011-06-18 Karl Berry <karl@tug.org> - - * updmap.pl (locateMap): allow "Map foo" (without the ".map"), - as the sh updmap map. (The actual file still being foo.map.) - Report from Peter Dyballa, 15 Jun 2011 10:04:36. - -2011-06-16 Karl Berry <karl@tug.org> - - * updmap.pl (help): add more info and modify to work with help2man. - * updmap.man: generate with help2man. - - * updmap.pl (progname): eliminate fn in favor of $0 - or hardwired "updmap" as appropriate. - - * old-updmap: rename from updmap, to make it clearer this - (sh version) is not used any more. - * old-fontinst.bat: rename from fontinst.bat. - - * updmap.pl ($pdftexStripEnc): set to zero. - (to_pdftex): return the input, not empty. - (ProcessOptions): accept and ignore dvipdfmoutputdir. - - * updmap.pl (@psADOBE): use the same list as from sh updmap, - including the spaces, to be sure we are getting the same behavior. - - Related: - * Master/texmf/fonts/map/dvips/tetex/pdftex35.map, - * Master/texmf/fonts/map/dvips/tetex/ps2pk35.map (phvbo8rn,phvbo8yn): - ever since at least TL 7, these have had - spurious "-Narrow-BoldOblique" suffixes on the correct - NimbusSanL-BoldCondItal, left over from the Adobe - Helvetica-Narrow-BoldOblique. - (Yet the fonts could still be used.) - * Master/texmf/fonts/map/{dvips,pdftex}/updmap: regenerate. - - * updmap.pl: support --setoption foo bar as well as foo=bar, - for compatibility. - (setOptions): new fn. - (ProcessOptions): use "setoption=s{1,2}" => \@setoptions - instead of "setoption=s" => \%setOption, since we have to parse - the values manually. - (Getopt::Long::Configure): removing bundling, disallows the - =s{1,2} Getopt directive we specify for parsing. - Original report from Herbert Schulz, - mactex mail 13 Jun 2011 07:56:50. - - Unrelated, sorry: - Add $0 to die commands. - (setOption): silently accept dvipdfmDownloadBase14. - ($verbose): remove unused variable. - -2011-06-15 Karl Berry <karl@tug.org> - - * updmap.pl: reformat long lists, reduce ####, other formatting. - (processOptions): do not mkdirhier the output directories - if it is a dry run. - - * updmap.pl (@psADOBE): do BoldItalic (etc.) before Bold (etc.), - other generated pdftex.map has bogus names with spaces. - Original report from Herbert Schulz, - mactex mail 13 Jun 2011 08:27:46. - - Unrelated, sorry: - (Getopt::Long::Configure): set ignore_case_always. - (Case-insensitive option matching is the default?!) - (--force, $opt_force): new option. - (processOptions): sort and indent option list consistently. - -2011-05-31 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use ../am/bin_links.am for $(bindir) links. - -2011-05-12 Karl Berry <karl@tug.org> - - * updmap.pl (pdftexNoEnc): rename to pdftexStripEnc. - (to_pdftex): change uses. - (Reinhard K made an equivalent change.) - -2011-04-04 Peter Breitenlohner <peb@mppmu.mpg.de> - - Rename updmap-sys => updmap-sys.sh. - * Makefile.am: Install updmap and updmap-sys as linked scripts - and use the ../am/script_links.am fragment. - -2011-02-08 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am: Use ../am/man1_links.am for manpage links. - -2011-01-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am, configure.ac [WIN32]: Install wrapper binary for - fontinst (handled as alias by runscript.tlu). - - * texconfig, texconfig-sys: Drop texconfig_sys shell variable; - now done via TEXMFVAR and TEXMFCONFIG in the environment. - -2011-01-04 Karl Berry <karl@tug.org> - - * updmap: add many more verbose messages, to help understand what - files are being created from what sources. - -2010-12-27 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (install-exec-hook, install-data-hook): Check - symlink creation. - -2010-12-25 Karl Berry <karl@tug.org> - - * doc, - * pdfetex-pl.pool, - * README.a2ping: remove these seemingly not useful files. - * Makefile.am: update accordingly. - -2010-12-22 Peter Breitenlohner <peb@mppmu.mpg.de> - - * configure.ac: Added KPSE_CHECK_WIN32. - * context/ (removed): Files moved to ../texlive/context/. - * Makefile.am: Adapted. - -2010-12-19 Peter Breitenlohner <peb@mppmu.mpg.de> - - * ps4pdf: Removed, replaced by newer version under ../texlive/. - * Makefile.am: Adapted. - -2010-12-18 Peter Breitenlohner <peb@mppmu.mpg.de> - - * context/texmfstart.man: Fix typo. - -2010-07-05 Peter Breitenlohner <peb@mppmu.mpg.de> - - * fmtutil.man: Adapt to fmtutil. - -2010-07-04 Norbert Preining <preining@logic.at> - - * fmtutil: add --no-error-if-no-format, don't abort in some cases of - missing formats - -2010-06-12 Karl Berry <karl@tug.org> - - * fmtutil (--edit): disable. - (help): document this, other tweaks. - -2010-05-31 Manuel Pégourié-Gonnard <mpg@elzevir.fr> - - * fmtutil: allow more than one language file per format. - -2010-05-20 Karl Berry <karl@tug.org> - - * doc/TETEXDOC.dvi, - * doc/TETEXDOC.ps: rm files. - * doc/Makefile: do not bother remaking .dvi + .ps. - * Makefile.am (dist_tetexdoc_DATA): rm. - -2010-04-29 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (run_texlinks, run_texlinks): Respect DESTDIR. - -2010-04-28 Manuel Pégourié-Gonnard <mpg@elzevir.fr> - - * texlinks: Append exeext to engine names. - * Makefile.am (run_texlinks): Invoke texlinks with explicit dir. - -2010-03-12 Peter Breitenlohner <peb@mppmu.mpg.de> - - * texlinks (version): Add missing quote in svn id. - -2010-03-11 Karl Berry <karl@tug.org> - - * updmap, - * texlinks, - * texconfig (version): use svn id. - (help): regularize info at end of msg. - - * fmtutil (help): describe mktexfmt operation. - (main): give more error message in mktexfmt mode. - Report from Ludovic Courtes, 08 Mar 2010 21:55:53. - -2010-01-17 Karl Berry <karl@tug.org> - - * updmap, - * fmtutil: tweak help messages. - - * tcfmgr (setupMap), - * fmtutil (main), - * updmap (setupCfgFile): maybe ls-R missing when basic config - files not found. - -2009-12-23 Norbert Preining <preining@logic.at> - - * fmtutil: check for infinite loop only in mktexfmt mode so that - multiple defined format/engine combinations are accepted. - -2009-10-24 Peter Breitenlohner <peb@mppmu.mpg.de> - - * Makefile.am (bin_links, man1_links): - New lists of symlinks within bindir and man1dir. - Moved handling of texhash symlinks to ../kpathsea/man/. - Moved handling of lambda, ctangle, cweave, odvicopy, odvitype, - mf-nowin, and pdflatex symlinks to ../web2c/man/. - (install-data-hook, install-exec-hook, uninstall-hook): - Use `bin_links' and `man1_links'. - - * mkocp.man, mkofm.man, otp2ocp.man, outocp.man: Moved from - here to ../web2c/otps/. - * ofm2opl.man, opl2ofm.man, ovf2ovp.man, ovp2ovf.man, - ttf2afm.man: Moved from here to ../web2c/man/. - * Makefile.am (dist_man1_MANS): Adjusted. - -2009-10-09 Karl Berry <karl@tug.org> - - * fmtutil (run_initex): if it doesn't already exist, create - mplib-luatex.mem when we create mpost.mem. - -2009-08-24 Reinhard Kotucha <reinhard.kotucha@web.de> - - * updmap.pl (mkMaps): replace dir/ls shell commands by Perl code. - -2009-08-22 Tomek Trzeciak <t.m.trzeciak@gmail.com> - - * updmap.pl (mkmaps): remove unneeded COMSPEC from backticks - -2009-08-19 Karl Berry <karl@tug.org> - - * updmap.pl (mkmaps): quote invocation of COMSPEC. - From Dan Luecking, 19 Aug 2009 15:13:31. - -2009-08-15 Karl Berry <karl@tug.org> - - * fmtutil (--byengine): new option, from Norbert. - (help): mention it; other tweaks. - * fmtutil.man: also update. - -2009-07-23 Karl Berry <karl@tug.org> - - * updmap (help): mention tug.org/fonts/fontinstall.html. - -2009-06-23 Karl Berry <karl@tug.org> - - * Makefile.am (run_texlinks): add -e "$(EXEEXT)". - * texlinks: new option -e to specify executable extension (for - cygwin). - -2009-06-11 Norbert Preining <preining@logic.at> - - * fmtutil (log_warning): new fn, related code, so that - LaTeX's five-year-old warning does not trigger failure. - Debian bug #531595. - -2009-05-28 Karl Berry <karl@tug.org> - - * texconfig.man: update from Frank K, 27 May 2009 23:17:49. - -2009-05-07 Peter Breitenlohner <peb@mppmu.mpg.de> - - Adapt to TL2009 build system. - -2009-04-03 Karl Berry <karl@tug.org> - - * Makefile.am (EXTRA_DIST): remove texdoc.man from list. - * texdoc.man: remove file; maintained separately now - (http://tug.org/texdoc) - -2009-03-17 Karl Berry <karl@tug.org> - - * updmap (main, cleanup): cd back to the original pwd instead of /, - to work around - rm: cannot get current directory: Permission denied - error in (at least) coreutils 5.2.1 in some ill-defined circumstance. - Report from Lars Madsen. - -2008-10-27 Karl Berry <karl@tug.org> - - * updmap.pl: also adjust printed output. - From Aaron Chen, 25 Oct 2008 16:40:59. - -2008-10-24 Karl Berry <karl@tug.org> - - * Makefile.in (run-texlinks): quote the PATH - argument in case there are spaces lurking. - Report from Angelo Graziosi, 23 Oct 2008 16:08:59. - -2008-10-22 Karl Berry <karl@tug.org> - - * updmap.pl (cfgval): only consider falsish strings to be 0, else - leave the value as-is, for the sake of LW35, which does not take a - boolean. Report and patch from Aaron Chen, 17 Oct 2008 01:22:24. - -2008-09-22 Karl Berry <karl@tug.org> - - * fmtutil (parse_line): pass --format=mp to kpsewhich when - engine=mpost, instead of --format=mpost. - -2008-07-08 Karl Berry <karl@tug.org> - - * texconfig (hyphen, formats): disable these functions, - fmtutil.cnf and language.dat/def must not be manually edited, - since they are now automatically regenerated, as tlmgr regenerates. - -2008-07-05 Karl Berry <karl@tug.org> - - * Makefile.in (run_texlinks): use -f $(web2cdir)/fmtutil.cnf. - (run_mktexlsr): no longer needed. - From Francois Charette, tldistro 04 Jul 2008 09:22:42. - -2008-06-18 Karl Berry <karl@tug.org> - - * texlinks: metafun is not created specially by ConTeXt, so we'll - create it here. - -2008-06-17 Norbert Preining <preining@logic.at> - - * fmtutil: add the engine setting to the infinite-loop-detection - variable. - -2008-06-15 Karl Berry <karl@tug.org> - - * Makefile.in (run_mktexlsr): no need to set TEXMFDBS, cmdline - dir is respected again. - (CONTEXTSCRIPTS): remove texexec, the version here was old. - -2008-05-28 Karl Berry <karl@tug.org> - - * fmtutil.cnf: new file, a slave of Master/texmf/web2c/fmtutil.cnf, - which we keep in sync via TL infrastructure scripts. - * Makefile.in (install-data): install fmtutil.cnf. - (run-texlinks): new target, invoked by top-level make. - * texlinks: doc fixes. - -2008-05-19 Karl Berry <karl@tug.org> - - * texdoc: remove, master is now the lua version in texmf/scripts. - -2008-05-11 Norbert Preining <preining@logic.at> - - * Makefile.in: do not install texdoc(.man) since we will use the - texlua version from Frank (to be found in ../texlive) - -2008-05-08 Norbert Preining <preining@logic.at> - - * updmap, tcfmgr: quote various calls containing env variables - taken from texmf.cnf which could contain spaces - -2008-05-05 Karl Berry <karl@tug.org> - - * texconfig (generate): remove this, now done in tlmgr. - -2008-05-04 Karl Berry <karl@tug.org> - - * Makefile.in (LINKED_SCRIPTS): add ps4pdf. - -2008-04-25 Karl Berry <karl@tug.org> - - * Makefile.in (LINKED_SCRIPTS): now tlmgr.tlu. - -2008-04-16 Norbert Preining <preining@logic.at> - - * fmtutil: fix creation of dirs with spaces - -2008-04-14 Karl Berry <karl@tug.org> - - * Makefile.in (LINKED_SCRIPTS): no more *xindy, the xindy Makefile - itself takes care of those. - -2008-04-12 Karl Berry <karl@tug.org> - - * Makefile.in (LINKED_SCRIPTS): pdfcrop now in texmf-dist. - Add xindy.pl, texindy.pl. - -2008-03-18 Karl Berry <karl@tug.org> - - * Makefile.in (install-linked-scripts): use $(LINKSUFFIX). - (LINKSUFFIX): new variable, for passing -sys. - (install-linked-sys-scripts): make install-linked-scripts - instead of repeating code. - -2008-03-15 Reinhard Kotucha <reinhard.kotucha@web.de> - - * Makefile.in (LINKEDSCRIPTS): add pdfthumb. - -2008-03-14 Reinhard Kotucha <reinhard.kotucha@web.de> - - * Makefile.in (LINKED_SYS_SCRIPTS): new list for -sys progs. - Add getnonfreefonts.pl. - -2008-03-14 Karl Berry <karl@tug.org> - - * Makefile.in (LINKEDSCRIPTS): add ppower4, no longer in tetex. - - * fmtutil: check for infinite loops. - From Stepan Kasal, http://bugzilla.redhat.com/show_bug.cgi?id=437008. - -2008-03-07 Karl Berry <karl@tug.org> - - * Makefile.in (LINKEDPLSCRIPTS): rename from LINKEDPERLSCRIPTS. - (LINKEDNOEXTSCRIPTS): new variable for makeglossaries. - (install-linkedscripts): install them. - -2008-03-03 Karl Berry <karl@tug.org> - - * latex.info, latex2e.texi: remove; this will become a separate - package. - * Makefile.in: remove info-related stuff. - (LINKEDPERLSCRIPTS): add e2pall, pkfix, ps2eps. - -2008-03-02 Karl Berry <karl@tug.org> - - * Makefile.in: more doc - -2008-02-16 Karl Berry <karl@tug.org> - - * texconfig (doGenerate): new fn to call generate-* scripts. - (help): document it. - -2008-01-30 Peter Breitenlohner <peb@mppmu.mpg.de> - - Convert from autoconf-2.13 to autoconf-2.59+: - * Makefile.in: Add @configure_input@ line. - * aclocal.m4 (new): Generated (aclocal -I ../m4). - * configure: Regenerated (autoconf). - -2008-01-14 Karl Berry <karl@tug.org> - - * pdfcrop: update to 1.8 from CTAN. - -2007-11-03 Karl Berry <karl@tug.org> - - * texlinks.man: --unlink, sort. From Edd. - -2007-10-25 Karl Berry <karl@tug.org> - - * updmap: make last bit of log nicer, since we may have copies - instead of symlinks now. - -2007-10-24 Karl Berry <karl@tug.org> - - * texconfig: update and augment help message; - accept version and --version; - show TeX Live version info from release-texlive.txt. - -2007-10-19 Karl Berry <karl@tug.org> - - * updmap (processOptions): add --copy and -n options. - (setupSymlinks): with --copy, cp instead of ln -s. - We want this for TL. - (mkMaps): with -n, exit before actually doing anything. - (setupLog): with -n, do not log. - (help): update and augment. - -2007-10-12 Karl Berry <karl@tug.org> - - * texlinks: new option -u[nlink] for uninstall. - From Edd Barrett, 10 Oct 2007 11:05:55. - -2007-09-30 Karl Berry <karl@tug.org> - - * texconfig-sys: export texconfig_sys. - * texconfig <init>: use it to figure out which fmtutil/updmap. - Report from Frank K, 11 Jun 2007 17:05:43. - -2007-09-10 Karl Berry <karl@tug.org> - - * updmap.pl: TEXMFVAR rather than VARTEXMF. - -2007-09-04 Karl Berry <karl@tug.org> - - * updmap.pl: ! to clearly check against both empty string and - undef, rather than eq undef (Jjgod 3 Sep 2007 16:16:50). - -2007-07-16 Karl Berry <karl@tug.org> - - * texconfig (findDialogProg, runDialog): these fns not used here, - remove. - (findprog): new mode of operation, like which(1). - * texconfig-dialog (findDialog): check for whiptail/dialog on any - system, not just FreeBSD, Linux, cygwin. - -2007-05-31 Karl Berry <karl@tug.org> - - * fmtutil (run_initex): do not remove the log file. - -2007-01-16 Karl Berry <karl@tug.org> - - * texconfig (init): only run texlinks and updmap if fmtutil succeeds. - -2007-01-14 Karl Berry <karl@tug.org> - - * texconfig: check for pdftex rather than pdfetex. - Reported by Artemio, 13 Jan 2007 14:54:40. - -2006-12-29 Karl Berry <karl@tug.org> - - * texconfig: replace sort +1 with sort -k 2. I hate POSIX. - Reported by gnwiii, 28 Dec 2006 14:53:54. - -2006-12-27 Karl Berry <karl@tug.org> - - * Makefile.in (install-exec): now the binary is named pdftex again. - -2006-12-25 Karl Berry <karl@tug.org> - - * updmap: update version. - -2006-12-13 Karl Berry <karl@tug.org> - - * latex2e.texi: FSF never held copyright (checked with authors). - Starting latexrefman project at gna.org, with hopes. - -2006-11-20 Karl Berry <karl@tug.org> - - * Makefile.in (CONTEXTSCRIPTS): new variable. - (context): new subdir of stubs, updated from Hans' releases. - -2006-11-14 Karl Berry <karl@tug.org> - - * updmap (normalizeLines): remove CR characters (for skaknew), so - that the generted map files have consistent line endings for svn. - -2006-07-13 Karl Berry <karl@tug.org> - - * ps4pdf (tmpdir): don't lose check for TMPDIR and TEMP which te - had. - -Sat Dec 18 14:19:43 CET 1999 te - - * added manpages for epstopdf and dvi2fax (contributed by "James - R. Van Zandt" <jrv@vanzandt.mv.com>) diff --git a/Build/source/texk/tetex/Makefile.am b/Build/source/texk/tetex/Makefile.am index fec265ce561..6d34cecd4c2 100644 --- a/Build/source/texk/tetex/Makefile.am +++ b/Build/source/texk/tetex/Makefile.am @@ -6,8 +6,5 @@ ACLOCAL_AMFLAGS = -I ../../m4 EXTRA_DIST = \ - README.texdoctk \ - old-fontinst.bat \ - old-updmap \ - updmap-single.pl + README.texdoctk diff --git a/Build/source/texk/tetex/Makefile.in b/Build/source/texk/tetex/Makefile.in index 559b558560c..d9897830f05 100644 --- a/Build/source/texk/tetex/Makefile.in +++ b/Build/source/texk/tetex/Makefile.in @@ -54,7 +54,7 @@ DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ ../../build-aux/config.guess ../../build-aux/config.sub \ ../../build-aux/depcomp ../../build-aux/install-sh \ ../../build-aux/ltmain.sh ../../build-aux/missing \ - ../../build-aux/texinfo.tex ../../build-aux/ylwrap ChangeLog + ../../build-aux/texinfo.tex ../../build-aux/ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -164,10 +164,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I ../../m4 EXTRA_DIST = \ - README.texdoctk \ - old-fontinst.bat \ - old-updmap \ - updmap-single.pl + README.texdoctk all: all-am diff --git a/Build/source/texk/tetex/old-fontinst.bat b/Build/source/texk/tetex/old-fontinst.bat deleted file mode 100644 index fe9be9b7187..00000000000 --- a/Build/source/texk/tetex/old-fontinst.bat +++ /dev/null @@ -1,2 +0,0 @@ -@echo off
-tex -progname=fontinst -fmt=tex %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/Build/source/texk/tetex/old-updmap b/Build/source/texk/tetex/old-updmap deleted file mode 100755 index 15c6e738927..00000000000 --- a/Build/source/texk/tetex/old-updmap +++ /dev/null @@ -1,1449 +0,0 @@ -#!/bin/sh -# updmap - utility to maintain map files for outline fonts. -# Public domain. Originally written by Thomas Esser. -# Run with --help for usage. - -############################################################################### -# program history: -# further changes in texk/tetex/ChangeLog. -# Sun May 25 21:05:32 CEST 2008 (Reinhard Kotucha) -# add function symlink_or_copy needed by tl-portable. -# Post-te retirement, now maintained in TeX Live; see -# Build/texk/tetex/ChangeLog for further changes. -# Fr Jul 22 07:22:38 CEST 2005 -# write hint about log file into output files -# Fr Apr 8 19:15:05 CEST 2005 -# cleanup now has an argument for the return code -# So Mär 27 18:52:06 CEST 2005 -# honor $TMPDIR, $TEMP and $TMP, not just $TMP -# Do Mär 10 19:31:39 CET 2005 -# add a few quotes for $cnfFile with whitespace -# Sa Jan 15 18:13:46 CET 2005 -# avoid multiple variable assignments in one statement -# Sa Dez 25 12:44:23 CET 2004 -# implementaion adopted for teTeX-3.0 (tcfmgr) -# Mi Nov 3 16:33:22 CET 2004 -# add "--setoption option=value" syntax -# Fr Okt 29 21:05:53 CEST 2004 -# add --enable Map=... / --enable MixedMap=... -# Mi Okt 20 19:17:19 CEST 2004 -# transcript added; even better warnings / error messages -# So Okt 17 19:07:17 CEST 2004 -# improved warnings / error messages -# added --syncwithtrees -# added --listavailablemaps -# Mi Okt 6 16:37:49 CEST 2004 -# commenty may start with any of *#;% -# Sun Aug 1 11:42:14 CEST 2004, te -# remove pdftex related hacks; pdftex no longer needs them! -# Thu May 13 22:04:23 CEST 2004, te -# support user with new map file locations -# Fri Mar 19 15:22:55 CET 2004, te -# output "xxx yyy" instead of " xxx yyy " (less blanks) -# Fri Jan 2 22:41:11 CET 2004, te: -# add version string -# Wed Aug 20 18:51:47 CEST 2003 -# store map files to fonts/map, add options for dvipsoutputdir, -# pdftexoutputdir, dvipdfmoutputdir -# Mon Mar 24 13:40:55 CET 2003 -# fix fmex[789] for dvipdfm (no -r option) -# Sun Mar 23 18:58:00 CET 2003 -# make the script robust against whitespace in filenames -# Mon Jan 27 22:38:44 CET 2003 -# don't call a function before processOptions; we may loose our -# argument list with some broken shells -# Mon Jan 27 06:55:28 CET 2003 -# fix unportable egrep / sed -# Sat Jan 18 10:10:26 CET 2003 -# use $tmp8 in dvips2dvipdfm() -# Thu Jan 2 23:14:34 CET 2003 -# add umask 022, so generated files are always world-readable -# Sun Oct 27 11:33:04 CET 2002 -# write output in normalized format -# add support for dvipdfm -# Mon Sep 22 19:18:57 CEST 2002 -# fix typo: buildin -> builtin -# Mon Sep 2 19:18:57 CEST 2002 -# fix condensed <-> narrow mapping -# Sun Sep 1 15:02:28 CEST 2002 -# add dvipsDownloadBase35 / pdftexDownloadBase14 options -# Wed May 22 20:00:13 CEST 2002 -# listmaps option added by Gerben Wierda -# Tue May 21 05:27:37 CEST 2002 -# now removing map files before rewriting them; fixes permission problems -# Tue May 21 05:05:34 CEST 2002: -# cli options added: showoptions, setoption, enable, disable, nomkmap -# now even more verbose; now reporting non-existing map files -# fixing trap for MAC OS/X compatibility -# Fri May 17 22:38:37 CEST 2002: -# rewritten from teTeX-1.0 version; Completely new designed. -############################################################################### - -test -f /bin/ksh && test -z "$RUNNING_KSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ - && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } -unset RUNNING_KSH - -test -f /bin/bsh && test -z "$RUNNING_BSH" \ - && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ - && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } -unset RUNNING_BSH - -export PATH - -# hack around a bug in zsh: -test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' - -# the version string -version='$Id$' - -# -############################################################################### -# help() -# display help message and exit -############################################################################### -help() -{ - cat <<eof -$version -Usage: updmap [OPTION]... [COMMAND]... - -Update the default font map files used by pdftex, dvips, and dvipdfm, as -determined by updmap.cfg (the one returned by running "kpsewhich -updmap.cfg"). - -Among other things, these font map files are used to determine which -fonts should be used as bitmaps and which as outlines, and to determine -which fonts are included in the output. - -By default, the TeX filename database is also rebuilt (with mktexlsr). - -Valid options: - --cnffile FILE read FILE for the updmap configuration - --pdftexoutputdir DIR specify output directory (pdftex syntax) - --dvipsoutputdir DIR specify output directory (dvips syntax) - --dvipdfmoutputdir DIR specify output directory (dvipdfm syntax) - --outputdir DIR specify output directory (for all files) - --copy cp generic files rather than using symlinks - --nomkmap do not recreate map files - --nohash do not run texhash - -n, --dry-run only show the configuration, no output - --quiet reduce verbosity - -Valid commands: - --help show this message - --edit edit $cnfFileShort file - --showoptions ITEM show alternatives for options - --setoption OPTION VALUE set option, where OPTION is one of: - dvipsPreferOutline LW35 dvipsDownloadBase35 - pdftexDownloadBase14 dvipdfmDownloadBase14 - --setoption OPTION=VALUE see above, just different syntax - --enable MAPTYPE MAPFILE add "MAPTYPE MAPFILE" to updmap.cfg, - where MAPTYPE is either Map or MixedMap - --enable Map=MAPFILE add "Map MAPFILE" to updmap.cfg - --enable MixedMap=MAPFILE add "MixedMap MAPFILE" to updmap.cfg - --disable MAPFILE disable MAPFILE, whether Map or MixedMap - --syncwithtrees entries with unavailable map files will be - disabled in the config file - --listmaps list all active and inactive maps - --listavailablemaps same as --listmaps, but without - unavailable map files - -Explanation of the map types: the (only) difference between Map and -MixedMap is that MixedMap entries are not added to psfonts_pk.map. The -purpose is to help users with printers that render Type 1 outline fonts -worse than mode-tuned Type 1 bitmap fonts. So MixedMap is used for -fonts that are available as both Type 1 and Metafont. - -To see the precise locations of the various files that will be read and -written, run updmap -n. - -For step-by-step instructions on making new fonts known to TeX, see -http://tug.org/fonts/fontinstall.html. - -Report bugs to: tex-k@tug.org -TeX Live home page: <http://tug.org/texlive/> -eof - (exit 0); exit -} - -# -############################################################################### -# verboseMsg(msg) -# print `msg' to stderr is $verbose is true -############################################################################### -verboseMsg() { - test -n "$log" && echo ${1+"$@"} >> "$log" - $verbose && echo ${1+"$@"} >&2 -} - -############################################################################### -# verboseCat() -# cat to stderr is $verbose is true -############################################################################### -verboseCat() { - if $verbose; then - if test -n "$log"; then - cat ${1+"$@"} | tee -a "$log" >&2 - else - cat ${1+"$@"} >&2 - fi - else - test -n "$log" && cat ${1+"$@"} >> "$log" - fi -} - -############################################################################### -# warn(msg) -# print `msg' to stderr -############################################################################### -warn() -{ - test -n "$log" && echo ${1+"$@"} >> "$log" - echo ${1+"$@"} >&2 -} - -############################################################################### -# abort(errmsg) -# print `errmsg' to stderr and exit with error code 1 -############################################################################### -abort() -{ - warn "$progname: $1." - cleanup 1 -} - -############################################################################### -# cfgval(variable) -# read variable ($1) from config file, first match wins -############################################################################### -cfgval() -{ - cat "$cnfFile" | sed -n 's/^'"$1"'[ =][ =]*//p' | sed q -} - -############################################################################### -# symlink_or_copy() -# if --copy is not set, try to create a symlink. If this fails, write -# a message to stderr and copy the file instead. -############################################################################### -symlink_or_copy() -{ - if $copy; then - $copy_cmd "$1" "$2" - else - $link_cmd "$1" "$2" || - { - echo "Creating symbolic link failed, the file is copied instead." 1>&2 && - $copy_cmd "$1" "$2" - } - fi -} - -############################################################################### -# setupSymlinks() -# set symlink (or copy) -# for psfonts.map according to dvipsPreferOutline variable, -# and for pdftex.map and dvipdfm.map according to pdftexDownloadBase14. -############################################################################### -setupSymlinks() -{ - ( - cd "$dvipsoutputdir" || exit 1 - rm -f psfonts.map - if test "x$dvipsPreferOutline" = xtrue; then - symlink_or_copy psfonts_t1.map psfonts.map - else - symlink_or_copy psfonts_pk.map psfonts.map - fi - - cd "$pdftexoutputdir" || exit 1 - rm -f pdftex.map - if test "x$pdftexDownloadBase14" = xtrue; then - symlink_or_copy pdftex_dl14.map pdftex.map - else - symlink_or_copy pdftex_ndl14.map pdftex.map - fi - - cd "$dvipdfmoutputdir" || exit 1 - rm -f dvipdfm.map - if test "x$dvipdfmDownloadBase14" = xtrue; then - symlink_or_copy dvipdfm_dl14.map dvipdfm.map - else - symlink_or_copy dvipdfm_ndl14.map dvipdfm.map - fi - ) -} - -############################################################################### -# transLW35(args ...) -# transform fontname and filenames according to transformation specified -# by mode -############################################################################### -transLW35() -{ - verboseMsg "$progname: transLW35 according to: $mode" - case $mode in - ""|URWkb) - cat ${1+"$@"} - ;; - URW) - fileURW ${1+"$@"} - ;; - ADOBE|ADOBEkb) - psADOBE ${1+"$@"} | file$mode - ;; - esac -} - -############################################################################### -# catMaps(regex) -# filter config file by regex for map lines and extract the map filenames. -# These are then looked up (by kpsewhich in locateMap) and the content of -# all map files is send to stdout. -############################################################################### -catMaps() -{ - rm -f $catMapsFailed - egrep "$1" "$cnfFile" \ - | sed 's@#.*@@' \ - | awk '{print $2}' \ - | sort \ - | uniq \ - | grep . > $tmp4 - - while read map; do - file=`locateMap "$map"` || { touch $catMapsFailed; break; } - - # output the file; also output a newline, because the final newline - # might be missing in the map file; Empty lines are filtered out later, - # so it does not really hurt do do this here. - test -n "$file" && { cat "$file"; echo; } - done < $tmp4 - if test -f $catMapsFailed; then - false; return 1 - else - true; return 0 - fi -} - -############################################################################### -# configReplace(file, pattern, line) -# The first line in file that matches pattern gets replaced by line. -# line will be added at the end of the file if pattern does not match. -############################################################################### -configReplace() -{ - file=$1; pat=$2; line=$3 - - if grep "$pat" "$file" >/dev/null; then - ed "$file" >/dev/null 2>&1 <<-eof - /$pat/ - c - $line - . - w - q -eof - else - echo "$line" >> "$file" - fi -} - -############################################################################### -# setOption (option, value) -# sets option to value in the config file (replacing the existing setting -# or by adding a new line to the config file). -############################################################################### -setOption() -{ - opt=$1 - val=$2 - case "$opt" in - LW35) - case "$val" in - URWkb|URW|ADOBE|ADOBEkb) - ;; - *) - abort "invalid value $val for option $opt" - ;; - esac - ;; - dvipsPreferOutline|dvipsDownloadBase35|pdftexDownloadBase14|dvipdfmDownloadBase14) - case "$val" in - true|false) - ;; - *) - abort "invalid value $val for option $opt" - esac - ;; - *) - abort "unsupported option $opt" - ;; - esac - - configReplace "$cnfFile" "^$opt[ ]" "$opt $val" -} - -############################################################################### -# enableMap (type, map) -# enables an entry in the config file for map with a given type. -############################################################################### -enableMap() -{ - case $1 in - Map|MixedMap) - ;; - *) - abort "invalid mapType $1" - ;; - esac - - # a map can only have one type, so we carefully disable everything - # about map here: - disableMap "$2" - - # now enable with the right type: - configReplace "$cnfFile" "^#![ ]*$1[ ]*$2" "$1 $2" -} - -############################################################################### -# disableMap (map) -# disables map in config file (any type) -############################################################################### -disableMap() -{ - #mapType=`awk '($1 == "MixedMap" || $1 == "Map") && $2 == map { print $1 }' \ - # map=$1 <"$cnfFile" | sort | uniq` - map=$1 - mapType=`egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$cnfFile" | awk '{print $1}' | sort | uniq` - for type in $mapType; do - configReplace "$cnfFile" "^$type[ ]*$1" "#! $type $1" - done -} - -############################################################################### -# psADOBE() -# transform fontnames from URW to Adobe -############################################################################### -psADOBE() -{ - sed \ - -e 's/ URWGothicL-Demi / AvantGarde-Demi /' \ - -e 's/ URWGothicL-DemiObli / AvantGarde-DemiOblique /' \ - -e 's/ URWGothicL-Book / AvantGarde-Book /' \ - -e 's/ URWGothicL-BookObli / AvantGarde-BookOblique /' \ - -e 's/ URWBookmanL-DemiBold / Bookman-Demi /' \ - -e 's/ URWBookmanL-DemiBoldItal / Bookman-DemiItalic /' \ - -e 's/ URWBookmanL-Ligh / Bookman-Light /' \ - -e 's/ URWBookmanL-LighItal / Bookman-LightItalic /' \ - -e 's/ NimbusMonL-Bold / Courier-Bold /' \ - -e 's/ NimbusMonL-BoldObli / Courier-BoldOblique /' \ - -e 's/ NimbusMonL-Regu / Courier /' \ - -e 's/ NimbusMonL-ReguObli / Courier-Oblique /' \ - -e 's/ NimbusSanL-Bold / Helvetica-Bold /' \ - -e 's/ NimbusSanL-BoldCond / Helvetica-Narrow-Bold /' \ - -e 's/ NimbusSanL-BoldItal / Helvetica-BoldOblique /' \ - -e 's/ NimbusSanL-BoldCondItal / Helvetica-Narrow-BoldOblique /' \ - -e 's/ NimbusSanL-Regu / Helvetica /' \ - -e 's/ NimbusSanL-ReguCond / Helvetica-Narrow /' \ - -e 's/ NimbusSanL-ReguItal / Helvetica-Oblique /' \ - -e 's/ NimbusSanL-ReguCondItal / Helvetica-Narrow-Oblique /' \ - -e 's/ CenturySchL-Bold / NewCenturySchlbk-Bold /' \ - -e 's/ CenturySchL-BoldItal / NewCenturySchlbk-BoldItalic /' \ - -e 's/ CenturySchL-Roma / NewCenturySchlbk-Roman /' \ - -e 's/ CenturySchL-Ital / NewCenturySchlbk-Italic /' \ - -e 's/ URWPalladioL-Bold / Palatino-Bold /' \ - -e 's/ URWPalladioL-BoldItal / Palatino-BoldItalic /' \ - -e 's/ URWPalladioL-Roma / Palatino-Roman /' \ - -e 's/ URWPalladioL-Ital / Palatino-Italic /' \ - -e 's/ StandardSymL / Symbol /' \ - -e 's/ NimbusRomNo9L-Medi / Times-Bold /' \ - -e 's/ NimbusRomNo9L-MediItal / Times-BoldItalic /' \ - -e 's/ NimbusRomNo9L-Regu / Times-Roman /' \ - -e 's/ NimbusRomNo9L-ReguItal / Times-Italic /' \ - -e 's/ URWChanceryL-MediItal / ZapfChancery-MediumItalic /' \ - -e 's/ Dingbats / ZapfDingbats /' \ - ${1+"$@"} -} - -############################################################################### -# fileADOBEkb() -# transform filenames from URW to ADOBE (both berry names) -############################################################################### -fileADOBEkb() -{ - sed \ - -e 's/\([^A-Za-z]\)uagd8a.pfb/\1pagd8a.pfb/' \ - -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1pagdo8a.pfb/' \ - -e 's/\([^A-Za-z]\)uagk8a.pfb/\1pagk8a.pfb/' \ - -e 's/\([^A-Za-z]\)uagko8a.pfb/\1pagko8a.pfb/' \ - -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1pbkd8a.pfb/' \ - -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1pbkdi8a.pfb/' \ - -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1pbkl8a.pfb/' \ - -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1pbkli8a.pfb/' \ - -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1pcrb8a.pfb/' \ - -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1pcrbo8a.pfb/' \ - -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1pcrr8a.pfb/' \ - -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1pcrro8a.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1phvb8a.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1phvb8an.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1phvbo8a.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1phvbo8an.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1phvr8a.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1phvr8an.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1phvro8a.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1phvro8an.pfb/' \ - -e 's/\([^A-Za-z]\)uncb8a.pfb/\1pncb8a.pfb/' \ - -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1pncbi8a.pfb/' \ - -e 's/\([^A-Za-z]\)uncr8a.pfb/\1pncr8a.pfb/' \ - -e 's/\([^A-Za-z]\)uncri8a.pfb/\1pncri8a.pfb/' \ - -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pplb8a.pfb/' \ - -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pplbi8a.pfb/' \ - -e 's/\([^A-Za-z]\)uplr8a.pfb/\1pplr8a.pfb/' \ - -e 's/\([^A-Za-z]\)uplri8a.pfb/\1pplri8a.pfb/' \ - -e 's/\([^A-Za-z]\)usyr.pfb/\1psyr.pfb/' \ - -e 's/\([^A-Za-z]\)utmb8a.pfb/\1ptmb8a.pfb/' \ - -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1ptmbi8a.pfb/' \ - -e 's/\([^A-Za-z]\)utmr8a.pfb/\1ptmr8a.pfb/' \ - -e 's/\([^A-Za-z]\)utmri8a.pfb/\1ptmri8a.pfb/' \ - -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1pzcmi8a.pfb/' \ - -e 's/\([^A-Za-z]\)uzdr.pfb/\1pzdr.pfb/' \ - ${1+"$@"} -} - -############################################################################### -# fileURW() -# transform filenames from URWkb (berry names) to URW (vendor names) -############################################################################### -fileURW() -{ - sed \ - -e 's/\([^A-Za-z]\)uagd8a.pfb/\1a010015l.pfb/' \ - -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1a010035l.pfb/' \ - -e 's/\([^A-Za-z]\)uagk8a.pfb/\1a010013l.pfb/' \ - -e 's/\([^A-Za-z]\)uagko8a.pfb/\1a010033l.pfb/' \ - -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1b018015l.pfb/' \ - -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1b018035l.pfb/' \ - -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1b018012l.pfb/' \ - -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1b018032l.pfb/' \ - -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1n022004l.pfb/' \ - -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1n022024l.pfb/' \ - -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1n022003l.pfb/' \ - -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1n022023l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1n019004l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1n019044l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1n019024l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1n019064l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1n019003l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1n019043l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1n019023l.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1n019063l.pfb/' \ - -e 's/\([^A-Za-z]\)uncb8a.pfb/\1c059016l.pfb/' \ - -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1c059036l.pfb/' \ - -e 's/\([^A-Za-z]\)uncr8a.pfb/\1c059013l.pfb/' \ - -e 's/\([^A-Za-z]\)uncri8a.pfb/\1c059033l.pfb/' \ - -e 's/\([^A-Za-z]\)uplb8a.pfb/\1p052004l.pfb/' \ - -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1p052024l.pfb/' \ - -e 's/\([^A-Za-z]\)uplr8a.pfb/\1p052003l.pfb/' \ - -e 's/\([^A-Za-z]\)uplri8a.pfb/\1p052023l.pfb/' \ - -e 's/\([^A-Za-z]\)usyr.pfb/\1s050000l.pfb/' \ - -e 's/\([^A-Za-z]\)utmb8a.pfb/\1n021004l.pfb/' \ - -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1n021024l.pfb/' \ - -e 's/\([^A-Za-z]\)utmr8a.pfb/\1n021003l.pfb/' \ - -e 's/\([^A-Za-z]\)utmri8a.pfb/\1n021023l.pfb/' \ - -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1z003034l.pfb/' \ - -e 's/\([^A-Za-z]\)uzdr.pfb/\1d050000l.pfb/' \ - ${1+"$@"} -} - -############################################################################### -# fileADOBE() -# transform filenames from URWkb (berry names) to ADOBE (vendor names) -############################################################################### -fileADOBE() -{ - sed \ - -e 's/\([^A-Za-z]\)uagd8a.pfb/\1agd_____.pfb/' \ - -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1agdo____.pfb/' \ - -e 's/\([^A-Za-z]\)uagk8a.pfb/\1agw_____.pfb/' \ - -e 's/\([^A-Za-z]\)uagko8a.pfb/\1agwo____.pfb/' \ - -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1bkd_____.pfb/' \ - -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1bkdi____.pfb/' \ - -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1bkl_____.pfb/' \ - -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1bkli____.pfb/' \ - -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1cob_____.pfb/' \ - -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1cobo____.pfb/' \ - -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1com_____.pfb/' \ - -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1coo_____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1hvb_____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1hvnb____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1hvbo____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1hvnbo___.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1hv______.pfb/' \ - -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1hvn_____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1hvo_____.pfb/' \ - -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1hvno____.pfb/' \ - -e 's/\([^A-Za-z]\)uncb8a.pfb/\1ncb_____.pfb/' \ - -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1ncbi____.pfb/' \ - -e 's/\([^A-Za-z]\)uncr8a.pfb/\1ncr_____.pfb/' \ - -e 's/\([^A-Za-z]\)uncri8a.pfb/\1nci_____.pfb/' \ - -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pob_____.pfb/' \ - -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pobi____.pfb/' \ - -e 's/\([^A-Za-z]\)uplr8a.pfb/\1por_____.pfb/' \ - -e 's/\([^A-Za-z]\)uplri8a.pfb/\1poi_____.pfb/' \ - -e 's/\([^A-Za-z]\)usyr.pfb/\1sy______.pfb/' \ - -e 's/\([^A-Za-z]\)utmb8a.pfb/\1tib_____.pfb/' \ - -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1tibi____.pfb/' \ - -e 's/\([^A-Za-z]\)utmr8a.pfb/\1tir_____.pfb/' \ - -e 's/\([^A-Za-z]\)utmri8a.pfb/\1tii_____.pfb/' \ - -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1zcmi____.pfb/' \ - -e 's/\([^A-Za-z]\)uzdr.pfb/\1zd______.pfb/' \ - ${1+"$@"} -} - -############################################################################### -# locateWeb2c (file ...) -# apply kpsewhich with format 'web2c files' -############################################################################### -locateWeb2c() -{ - kpsewhich --format='web2c files' ${1+"$@"} -} - -############################################################################### -# locateMap (file ...) -# apply kpsewhich with format 'map' -############################################################################### -locateMap() -{ - - # Always use the "migration checking version". This might become - # consigurable, but for now, we always want to check. - if :; then - locateMapMigrate "$@" - return $? - fi - - # The old version of the code; not used at the moment. - for map - do - file=`kpsewhich --format=map "$map"` - if test -f "$file"; then - verboseMsg "$progname: using map file \`$file'" - echo "$file" - else - warn "map file not found: \`$map'" - fi - done -} - -############################################################################### -# locateMapMigrate (file ...) -# look for map file; assist user with possibly files in wrong locations; -# also watch out for possibly hidden conflicts -############################################################################### -locateMapMigrate() -{ - for map - do - # look up using the new search path - file=`kpsewhich --format=map "$map"` - - # look up using the old search path - file2=`kpsewhich --format='dvips config' "$map"` - - # Well, the search paths should not overlap. If they do, and if - # file1 = file2, we don't want to complain about file2, so: - test "x$file" = "x$file2" && file2= - - if test -f "$file"; then - - verboseMsg "$progname: using map file \`$file'" - echo "$file" - - # we have found the file where we should. If we have additional - # ones: complain! - if test -f "$file2"; then - mapCmp "$file" "$file2" \ - && mapWarn obsoleteCopy "$map" "$file2" \ - || mapWarn manualResolve "$map" "$file" "$file2" - fi - - else - if test -f "$file2"; then - # bad: map file exists in the wrong location only - mapWarn badLocation "$map" "$file2" - else - # bad: map file does not exist at all - mapWarn notFound "$map" - fi - false; return 1 - fi - done - true; return 0 -} - -############################################################################### -# mapCmp(file, file2) -# compare two map files like cmp; but less strict, so changes regarding -# whitespaces, comments etc. are tolerated. Important is only the -# return value here. -############################################################################### -mapCmp() -{ - file=$1; file2=$2 - - # For reasons of speed only. Avoid normalizeLines if files are 100% - # the same. - cmp "$file" "$file2" >/dev/null 2>&1 && return 0 - - normalizeLines <"$file" >"$tmpdir/mapCmp-1" - normalizeLines <"$file2" >"$tmpdir/mapCmp-2" - cmp "$tmpdir/mapCmp-1" "$tmpdir/mapCmp-2" >/dev/null 2>&1 -} - -############################################################################### -# mapWarn() -############################################################################### -mapWarn() -{ - - case $1 in - obsoleteCopy) - warn " -!!! WARNING: Identical copy of used file for \`$2' - exists in obsolete location - $3 - Please, consider removing this file. -" - touch $mapWarnCalled - ;; - manualResolve) - warn " -!!! WARNING: While searching for the right map file for \`$2', we have - found the file - $3 - in the right location and we are using this - file. However, a map file with different content has been found in - the obsolete location - $4 - Please, see which version you want to use and eventually update the - content of the used map file. Additionally, consider removing the - obsolete file. -" - touch $mapWarnCalled - ;; - badLocation) - map=$2 - location=$3 - - m=" -!!! ERROR: The right location for map files has been - changed for this release and the map file \`$map' has - not been found in the right location, but in the obsolete - location - $location - instead. - - To fix this, please move this file into an appropriate - subdirectory of fonts/map in one of your texmf trees. - - For more information about the changed search paths, see - the release notes section in the teTeX manual. You probably - can read this document by executing the command - texdoc TETEXDOC - else visit the web page - http://tug.org/texlive/mapenc.html -" - warn "$m" - false; return 1 - ;; - notFound) - warn " -!!! ERROR! The map file \`$2' has not been found at all. - - Either put this file into the right place or remove the - reference from the configuration file. An automatic way - to disable unavailable map files is to call - $progname --syncwithtrees - - For manual editing, call - $progname --edit -" - - false; return 1 - ;; - esac -} - -############################################################################### -# cleanup() -# clean up the temp area and exit with proper exit status -############################################################################### -cleanup() -{ - rc=$1 - $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ - && { cd $orig_pwd && rm -rf "$tmpdir"; } - (exit $rc); exit $rc -} - -############################################################################### -# setupTmpDir() -# set up a temp directory and a trap to remove it -############################################################################### -setupTmpDir() -{ - $needsCleanup && return - - trap 'cleanup 1' 1 2 3 7 13 15 - needsCleanup=true - mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'" -} - -############################################################################### -# showOptions(item) -# show Options for an item -############################################################################### -showOptions() -{ - item=$1 - - case "$item" in - LW35) - echo "URWkb URW ADOBE ADOBEkb" - ;; - dvipsPreferOutline|pdftexDownloadBase14|dvipdfmDownloadBase14|dvipsDownloadBase35) - echo "true false" - ;; - *) - abort "Unknown item \"$item\". Choose one of LW35, dvipsPreferOutline, dvipsDownloadBase35, pdftexDownloadBase14 or dvipdfmDownloadBase14" - ;; - esac - - (exit 0); exit 0 -} - -############################################################################### -# mktexdir(args) -# call mktexdir script, disable all features (to prevent sticky directories) -############################################################################### -mktexdir() -{ - MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2 -} - -############################################################################### -# setupDestDir() -# Assign output directories which are not yet assigned. Always use -# the TEXMFVAR for this. -############################################################################### -setupDestDir() -{ - vartexmf=`kpsewhich -var-value=TEXMFVAR` - - # dvips - if test -z "$dvipsoutputdir"; then - dvipsoutputdir=$vartexmf/fonts/map/dvips/updmap - fi - - # pdftex - if test -z "$pdftexoutputdir"; then - pdftexoutputdir=$vartexmf/fonts/map/pdftex/updmap - fi - - # dvipdfm - if test -z "$dvipdfmoutputdir"; then - dvipdfmoutputdir=$vartexmf/fonts/map/dvipdfm/updmap - fi - - mktexdir "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir" >/dev/null 2>&1 - for d in "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir"; do - test -d "$d" || abort "output directory \`$d' does not exist" - test -w "$d" || abort "output directory \`$d' is not writable" - done - -} - -############################################################################### -# setupLog(cfgFile) -# try to set up a log file in $TEXMFVAR/web2c -############################################################################### -setupLog() -{ - vartexmf=`kpsewhich -var-value=TEXMFVAR` - dir=$vartexmf/web2c - mktexdir "$dir" >/dev/null 2>&1 - log="$dir/$progname.log" - if test -d "$dir" && test -w "$dir"; then - rm -f "$log" - > "$log" - fi - if test -w "$log"; then - if $chicken_mode; then - log= - else - date > "$log" - verboseMsg "$progname: This is $progname, version $version" - verboseMsg "$progname: using transcript file \`$log'" - fi - else - log= - verboseMsg "$progname: This is $progname, version $version" - verboseMsg "$progname: no permissions for writing $dir/$progname.log', so no transcript" - fi -} - -############################################################################### -# setupCfgFile() -# find config file if none specified on cmd line. -############################################################################### -setupCfgFile() -{ - case "$cnfFile" in - "") cnfFile=`locateWeb2c $cnfFileShort` - case "$cnfFile" in - "") abort "config file $cnfFileShort not found (ls-R missing?)" - esac;; - esac - setupLog -} - -############################################################################### -# processOptions() -# process cmd line options -############################################################################### -processOptions() -{ - while - case $1 in - --quiet|-q) - verbose=false;; - --cnffile) - cfgparam=1; cnfFile=$2; shift;; - --cnffile=*) - cfgparam=1; cnfFile=`echo "$1" | sed 's/--cnffile=//'`;; - --copy) - copy=true;; - --dry-run|-n) - chicken_mode=true;; - --dvipsoutputdir) - dvipsoutputdirparam=1; dvipsoutputdir=$2; shift;; - --dvipsoutputdir=*) - dvipsoutputdirparam=1; dvipsoutputdir=`echo "$1" | sed 's/--dvipsoutputdir=//'`;; - --pdftexoutputdir) - pdftexoutputdirparam=1; pdftexoutputdir=$2; shift;; - --pdftexoutputdir=*) - pdftexoutputdirparam=1; pdftexoutputdir=`echo "$1" | sed 's/--pdftexoutputdir=//'`;; - --dvipdfmoutputdir) - dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2; shift;; - --dvipdfmoutputdir=*) - dvipdfmoutputdirparam=1; dvipdfmoutputdir=`echo "$1" | sed 's/--dvipdfmoutputdir=//'`;; - --outputdir) - dvipsoutputdirparam=1; dvipsoutputdir=$2 - pdftexoutputdirparam=1; pdftexoutputdir=$2 - dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2 - shift - ;; - --outputdir=*) - outputdir=`echo "$1" | sed 's/--outputdir=//'` - dvipsoutputdirparam=1; dvipsoutputdir=$outputdir - pdftexoutputdirparam=1; pdftexoutputdir=$outputdir - dvipdfmoutputdirparam=1; dvipdfmoutputdir=$outputdir - ;; - --setoption) - cfgmaint=1 - cmd=setoption - case $2 in - *=*) - setoptionOpt=`echo $2 | sed 's@=.*@@'` - setoptionVal=`echo $2 | sed 's@[^=]*=@@'` - shift - ;; - *) - test $# -ge 3 || { abort "--setoption needs two parameters: option value"; } - setoptionOpt=$2; setoptionVal=$3; shift; shift - ;; - esac - ;; - --enable) - cfgmaint=1 - cmd=enable - case $2 in - Map=*) - enableMapType=Map; enableMapFile=`echo "$2" | sed 's/Map=//'`; shift;; - MixedMap=*) - enableMapType=MixedMap; enableMapFile=`echo "$2" | sed 's/MixedMap=//'`; shift;; - Map|MixedMap) - test $# -ge 3 || { abort "--enable needs two parameters: mapType mapFile"; } - enableMapType=$2; enableMapFile=$3; shift; shift;; - *) - abort "--enable needs two parameters mapType mapFile";; - esac - ;; - --syncwithtrees) - cfgmaint=1 - cmd=syncwithtrees;; - --disable) - cfgmaint=1 - cmd=disable; disableMapFile=$2; shift - ;; - --disable=*) - cfgmaint=1 - disableMapFile=`echo "$1" | sed 's/--disable=//'` - cmd=disable - ;; - --edit|-e) - cfgmaint=1 - cmd=edit;; - --listmaps|-l) - cmd=listmaps;; - --listavailablemaps) - cmd=listavailablemaps;; - --showoptions) - cmd=showoptions; showoptionsItem=$2; shift;; - --showoptions=*) - cmd=showoptions; showoptionsItem=`echo "$1" | sed 's/--showoptions=//'`;; - - --nohash) - texhashEnabled=false;; - --nomkmap) - mkmapEnabled=false;; - --help|-help|-h) - help;; - --version) - echo "$progname version $version"; (exit 0); exit 0;; - "") break;; - *) abort "$progname: unknown option \`$1'. Try $progname --help for help";; - esac - do test $# -gt 0 && shift; done - - if test -n "$cfgparam"; then - if test -z "$cnfFile" || test ! -f "$cnfFile"; then - abort "config file \`$cnfFileShort' not found" - fi - fi - - if test -n "$dvipdoutputdirparam"; then - if test -z "$dvipdoutputdir" || test ! -d "$dvipdoutputdir"; then - abort "dvips output directory \`$1' not found" - fi - fi - if test -n "$pdftexoutputdirparam"; then - if test -z "$pdftexoutputdir" || test ! -d "$pdftexoutputdir"; then - abort "pdftex output directory \`$1' not found" - fi - fi - if test -n "$dvipdfmoutputdirparam"; then - if test -z "$dvipdfmoutputdir" || test ! -d "$dvipdfmoutputdir"; then - abort "dvipdfm output directory \`$1' not found" - fi - fi - -} - -############################################################################### -# listMaps() -# list all maps mentioned in the config file -############################################################################### -listMaps() -{ - egrep '^(#! *)?(Mixed)?Map' "$cnfFile" -} - -############################################################################### -# listAvailableMaps() -# list maps mentioned in the config file if they are available -############################################################################### -listAvailableMaps() -{ - # loop over each possible line in the config file (-> $line) - # extract the name of the map file (-> $m) - # check if the map file exists and in that case echo the line - OLDIFS=$IFS - IFS=' -' - for line in `egrep '^(#! *)?(Mixed)?Map' "$cnfFile"`; do - m=`echo "$line" | sed 's@[ ]*$@@; s@.*[ ]@@'` - kpsewhich --format=map "$m" >/dev/null && echo "$line" - done - IFS=$OLDIFS -} - -############################################################################### -# syncWithTrees() -# update the config file: uncomment all lines which refer to map files that -# are unavailabe in the texmf trees -############################################################################### -syncWithTrees() -{ - for i in `egrep '^(Mixed)?Map' "$cnfFile" | sed 's@.* @@'`; do - kpsewhich --format=map "$i" >/dev/null || echo "$i" - done > $tmp1 - { - sed 's@/@\\/@g; s@^@/^MixedMap[ ]*@; s@$@$/s/^/#! /@' <$tmp1 - sed 's@/@\\/@g; s@^@/^Map[ ]*@; s@$@$/s/^/#! /@' <$tmp1 - } > $tmp2 - sed -f $tmp2 "$cnfFile" > $tmp3 && cat $tmp3 > "$cnfFile" -} - -############################################################################### -# normalizeLines() -# remove comments, whitespace is exactly one space, no empty lines, -# no whitespace at end of line, one space before and after ", -# no CR's (as in skaknew). -############################################################################### -normalizeLines() -{ - sed \ - -e '/^[*#;%]/d' \ - -e 's@[ ][ ]*@ @g' \ - -e '/^ *$/d' \ - -e 's@ $@@' \ - -e 's@ *" *@ " @g' \ - -e 's@" \([^"]*\) "@"\1"@g' \ - | tr -d '\r' \ - | sort | uniq -} - -############################################################################### -# dvips2dvipdfm() -# reads from stdin, writes to stdout. It transforms "dvips"-like syntax into -# "dvipdfm"-like syntax. It is a very ugly hack. -############################################################################### -dvips2dvipdfm() -{ - sed -e 's@$@ %@' \ - -e 's@^\(\([^ ]*\).*\)@\1\2@' \ - -e 's@\(.*<\[* *\([^ ]*\)\.enc\(.*\)\)@\1 \2@' \ - -e '/%[^ ]*$/s@$@ default@' \ - -e 's@\(.*<<* *\([^ ]*\)\.pf[ab].*\)@\1 \2@' \ - -e '/%[^ ]* [^ ]*$/s@\( \([^ ]*\).*\)$@\1 \2@' \ - -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *ExtendFont.*\)@\1 -e \2@' \ - -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *SlantFont.*\)@\1 -s \2@' \ - -e 's@.*%@@' | - awk '$1 == $3 && $2 == "default" {$2=""; $3=""} {print}' > $tmp8 - - egrep '^(cm|eu|la|lc|line|msam|xy)' $tmp8 \ - | sed 's@$@ -r@; s@\(fmex[789]\) -r$@\1@' - egrep -v '^(cm|eu|la|lc|line|msam|xy)' $tmp8 -} - - -############################################################################### -# mkMaps() -# the main task of this script: create the output files -############################################################################### -mkMaps() -{ - newline=' -' - mode=`cfgval LW35` - dvipsPreferOutline=`cfgval dvipsPreferOutline` - dvipsDownloadBase35=`cfgval dvipsDownloadBase35` - pdftexDownloadBase14=`cfgval pdftexDownloadBase14` - dvipdfmDownloadBase14=`cfgval dvipdfmDownloadBase14` - - # defaults - test -z "$mode" && mode=URWkb - test -z "$dvipsPreferOutline" && dvipsPreferOutline=true - test -z "$dvipsDownloadBase35" && dvipsDownloadBase35=false - test -z "$pdftexDownloadBase14" && pdftexDownloadBase14=false - test -z "$dvipdfmDownloadBase14" && dvipdfmDownloadBase14=false - - outputFiles="$dvipsoutputdir/download35.map -$dvipsoutputdir/builtin35.map -$dvipsoutputdir/psfonts_t1.map -$dvipsoutputdir/psfonts_pk.map -$pdftexoutputdir/pdftex_dl14.map -$pdftexoutputdir/pdftex_ndl14.map -$dvipdfmoutputdir/dvipdfm_dl14.map -$dvipdfmoutputdir/dvipdfm_ndl14.map -$dvipsoutputdir/ps2pk.map" - - outputLinks="$dvipsoutputdir/psfonts.map -$pdftexoutputdir/pdftex.map -$dvipdfmoutputdir/dvipdfm.map" - - allOutput="$outputFiles -$outputLinks" - - notfound=false - OLDIFS=$IFS; IFS=$newline - for o in $allOutput; do - test -f "$o" || notfound=true - done - IFS=$OLDIFS - $notfound || texhashEnabled=false - - verboseCat <<-eof - updmap: creating new map files using the following configuration: - - config file: \`$cnfFile' - dvips output directory: \`$dvipsoutputdir' - pdftex output directory: \`$pdftexoutputdir' - dvipdfm output directory: \`$dvipdfmoutputdir' - - prefer outlines: \`$dvipsPreferOutline' - texhash enabled: \`$texhashEnabled' - download standard fonts (dvips): \`$dvipsDownloadBase35' - download standard fonts (pdftex): \`$pdftexDownloadBase14' - download standard fonts (dvipdfm): \`$dvipdfmDownloadBase14' -eof - - verboseMsg - verboseMsg "$progname: scanning for LW35 support files" - dvips35=`locateMap dvips35.map` || cleanup 1 - pdftex35=`locateMap pdftex35.map` || cleanup 1 - dvipdfm35=`locateMap dvipdfm35.map` || cleanup 1 - ps2pk35=`locateMap ps2pk35.map` || cleanup 1 - - if $chicken_mode; then - echo - echo "$progname: chicken mode, skipping all output generation, goodbye." - exit 0 - fi - - verboseMsg - verboseMsg "$progname: scanning for MixedMap entries:" - catMaps '^MixedMap' > $tmp1 || cleanup 1 - - verboseMsg - verboseMsg "$progname: scanning for Map entries:" - catMaps '^Map' > $tmp2 || cleanup 1 - verboseMsg - - # files should be world-readable - umask 022 - - OLDIFS=$IFS; IFS=$newline - for file in $allOutput; do - rm -f "$file" - cat > "$file" <<-eof - % $file: maintained by the script updmap. - % Don't change this file directly. Edit texmf/web2c/$cnfFileShort - % and run updmap to recreate this file. -eof - if test -n "$log"; then - cat >> "$file" <<-eof - % A log of the updmap run that has created this file is available here: - % $log -eof - fi - done - IFS=$OLDIFS - - verboseMsg "$progname: generating output for ps2pk..." - { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \ - | normalizeLines >> "$dvipsoutputdir/ps2pk.map" - verboseMsg "$progname: $ps2pk35 -> ps2pk.map" - - verboseMsg "$progname: generating output for dvips..." - { transLW35 "$ps2pk35"; } \ - | normalizeLines >> "$dvipsoutputdir/download35.map" - verboseMsg "$progname: $ps2pk35 -> download35.map" - # - { transLW35 "$dvips35"; } \ - | normalizeLines >> "$dvipsoutputdir/builtin35.map" - verboseMsg "$progname: $dvips35 -> builtin35.map" - # - if test "x$dvipsDownloadBase35" = xtrue; then - dftdvips=$ps2pk35 - else - dftdvips=$dvips35 - fi - { transLW35 "$dftdvips"; cat $tmp1 $tmp2; } \ - | normalizeLines >> "$dvipsoutputdir/psfonts_t1.map" - verboseMsg "$progname: $dftdvips -> psfonts_t1.map" - # - { transLW35 "$dftdvips"; cat $tmp2; } \ - | normalizeLines >> "$dvipsoutputdir/psfonts_pk.map" - verboseMsg "$progname: $dftdvips -> psfonts_pk.map" - - verboseMsg "$progname: generating output for pdftex..." - # remove PaintType due to Sebastian's request - { transLW35 "$pdftex35"; cat $tmp1 $tmp2; } \ - | grep -v PaintType | grep . > $tmp3 - verboseMsg "$progname: $pdftex35 -> pdftex_ndl14.map" - <$tmp3 normalizeLines >> "$pdftexoutputdir/pdftex_ndl14.map" - - { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \ - | grep -v PaintType | grep . > $tmp7 - verboseMsg "$progname: $ps2pk35 -> pdftex_dl14.map" - <$tmp7 normalizeLines >> "$pdftexoutputdir/pdftex_dl14.map" - - verboseMsg "$progname: generating output for dvipdfm..." - verboseMsg "$progname: $ps2pk35 -> dvipdfm_dl14.map" - <$tmp7 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_dl14.map" - - { transLW35 "$dvipdfm35"; cat $tmp1 $tmp2; } \ - | grep -v PaintType | grep . > $tmp6 - verboseMsg "$progname: $dvipdfm35 -> dvipdfm_ndl14.map" - <$tmp6 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_ndl14.map" - - verboseMsg "$progname: all output generated." - verboseMsg - - setupSymlinks - $texhashEnabled && { $verbose && texhash || texhash >/dev/null 2>&1; } - - verboseMsg - verboseMsg "$progname: files generated:" - OLDIFS=$IFS; IFS=$newline - ls -l $outputFiles | verboseCat - IFS=$OLDIFS - verboseMsg - - verboseMsg "$progname: map file links or copies:" - ls -l "$dvipsoutputdir"/psfonts.map \ - "$pdftexoutputdir"/pdftex.map \ - "$dvipdfmoutputdir"/dvipdfm.map | verboseCat - - if test -f $mapWarnCalled; then - m=" - -!!! NOTICE: - - With this release, the search paths for map files have been changed - and we have found that some files exist in the new path as well as - in the obsolete path. - - This is not an error per se, but please consider removing duplicates - from the old location and search the above output" - - test -n "$log" && m="$m or the transcript file - $log - " - - m="$m for warnings. - - For more information about the changed search paths, see - the release notes section in the teTeX manual. You probably - can read this document by executing the command - texdoc TETEXDOC - else visit the web page - http://tug.org/texlive/mapenc.html -" - warn "$m" - fi - - verboseMsg - verboseMsg "$progname: done." - return 0 -} - -############################################################################### -# main() -# execution starts here -############################################################################### -main() -{ - # initialize global variables - progname=updmap - cmd= - log= - chicken_mode=false - link_cmd="ln -s" - copy_cmd="cp" - copy=false - orig_pwd=`pwd` - - cfgparam= - outputdirparam= - cfgmaint= - texhashEnabled=true - mkmapEnabled=true - verbose=true - needsCleanup=false - - cnfFileShort=updmap.cfg - cnfFile= - dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir= - : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} - - tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ - tmp1=$tmpdir/a - tmp2=$tmpdir/b - tmp3=$tmpdir/c - tmp4=$tmpdir/d - tmp5=$tmpdir/e - tmp6=$tmpdir/f - tmp7=$tmpdir/g - tmp8=$tmpdir/h - mapWarnCalled=$tmpdir/mapWarnCalled - catMapsFailed=$tmpdir/catMapsFailed - - processOptions ${1+"$@"} - - case "$cmd" in - showoptions) showOptions "$showoptionsItem"; (exit 0); exit;; - help) help; (exit 0); exit;; - esac - - setupCfgFile - case "$cmd" in - listmaps) listMaps; (exit 0); exit;; - listavailablemaps) listAvailableMaps; (exit 0); exit;; - esac - - # keep a copy of config file, so that we can see if the file was modified - setupTmpDir - - if test -n "$cfgmaint"; then - if test -z "$cfgparam"; then - co=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd co --file $cnfFileShort` - test $? = 0 || cleanup 1 - set x $co; shift - id=$1; cnfFile=$3; orig=$4 - verboseMsg "$progname: initial config file is \`$orig'" - else - verboseMsg "$progname: config file is \`$cnfFile'" - cp "$cnfFile" $tmp5 - fi - - case "$cmd" in - edit) - ${VISUAL-${EDITOR-vi}} "$cnfFile";; - setoption) - setOption "$setoptionOpt" "$setoptionVal";; - enable) - enableMap "$enableMapType" "$enableMapFile";; - disable) - disableMap "$disableMapFile";; - syncwithtrees) - syncWithTrees;; - esac - - unchanged=true - if test -z "$cfgparam"; then - ci=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd ci --id $id` - test $? = 0 || cleanup 1 - case "$ci" in - "") : ;; - *) unchanged=false - cnfFile=$ci - ;; - esac - else - cmp "$cnfFile" $tmp5 >/dev/null 2>&1 || unchanged=false - fi - case $unchanged in - true) if $mkmapEnabled; then - verboseMsg "$progname: configuration (updmap.cfg) unchanged. Map files will not be recreated." - mkmapEnabled=false - else - verboseMsg "$progname: configuration (updmap.cfg) unchanged." - fi;; - *) - verboseMsg "$progname: configuration file updated: \`$cnfFile'";; - esac - fi - - $mkmapEnabled || return - setupDestDir - mkMaps -} - -main ${1+"$@"} -cleanup 0 diff --git a/Build/source/texk/tetex/updmap-single.pl b/Build/source/texk/tetex/updmap-single.pl deleted file mode 100755 index 58b51f986f3..00000000000 --- a/Build/source/texk/tetex/updmap-single.pl +++ /dev/null @@ -1,1546 +0,0 @@ -#! /usr/bin/env perl -# updmap: utility to maintain map files for outline fonts. -# -# Copyright 2002-2011 Thomas Esser (for the shell version) -# Copyright 2002-2011 Fabrice Popineau (for the first perl version) -# Copyright 2009-2011 Reinhard Kotucha -# Copyright 2011-2012 Norbert Preining -# -# Anyone may freely use, modify, and/or distribute this file, without -# limitation. - -BEGIN { - $^W=1; - chomp($TEXMFROOT = `kpsewhich -var-value=TEXMFROOT`); - unshift (@INC, "$TEXMFROOT/tlpkg"); -} - -my $version = '$Id$'; - -use strict; -use TeXLive::TLUtils qw(mkdirhier mktexupd win32); -use Getopt::Long; -$Getopt::Long::autoabbrev=0; -Getopt::Long::Configure (qw(ignore_case_always)); - -my $short_progname = "updmap"; - -my $cnfFile; -my $cnfFileShort; -my $outputdir; -my $dvipsoutputdir; -my $pdftexoutputdir; -my $dvipdfmoutputdir; -my $pxdvioutputdir; -my $quiet; -my $nohash; -my $nomkmap; -my (@psADOBE, @fileADOBE, @fileADOBEkb, @fileURW); - -my $enableItem; -my @setoptions = (); -my @showoptions = (); -my @showoption = (); -my @disableItem = (); -my $listmaps; -my $listavailablemaps; -my $syncwithtrees; - -my $opt_edit; -my $opt_force; -my $opt_help; -my $dry_run; -my $TEXMFMAIN; -my $TEXMFVAR; - -my $mode; -my $dvipsPreferOutline; -my $dvipsDownloadBase35; -my $pdftexDownloadBase14; -my $pxdviUse; -my $kanjiEmbed; -my $kanjiVariant; - -my $dvips35; -my $pdftex35; -my $ps2pk35; - -my $newcnf; -my $copy; -my %link; -my %maps; -my @missing; -my $writelog = 0; -my $cache = 0; # don't change! -my $pdftexStripEnc = 0; - -# initialize mktexupd -my $updLSR=&mktexupd(); -$updLSR->{mustexist}(0); - -my @cfg = (); - -&main; -exit 0; - - -# return program name + version string. -sub version { - my $ret = sprintf "%s (TeX Live) version %s\n", $short_progname, $version; - return $ret; -} - -############################################################################### -# help() -# display help message and exit -# -sub help { - my $usage= <<"EOF"; -Usage: $short_progname [OPTION] ... [COMMAND] - or: $short_progname-sys [OPTION] ... [COMMAND] - -Update the default font map files used by pdftex, dvips, and dvipdfm(x), -(and optionally pxdvi) as determined by the configuration file updmap.cfg -(the one returned by running "kpsewhich updmap.cfg"). - -Among other things, these map files are used to determine which fonts -should be used as bitmaps and which as outlines, and to determine which -fonts are embedded in the output. - -By default, the TeX filename database (ls-R) is also updated. - -Options: - --cnffile FILE read FILE for the updmap configuration - --dvipdfmoutputdir DIR specify output directory (kanjix.map) - --dvipsoutputdir DIR specify output directory (dvips syntax) - --pdftexoutputdir DIR specify output directory (pdftex syntax) - --pxdvioutputdir DIR specify output directory (pxdvi syntax) - --outputdir DIR specify output directory (for all files) - --copy cp generic files rather than using symlinks - --force recreate files even if config hasn't changed - --nomkmap do not recreate map files - --nohash do not run texhash - -n, --dry-run only show the configuration, no output - --quiet, --silent reduce verbosity - -Commands: - --help show this message and exit - --version show version information and exit - --showoptions ITEM show alternatives for options - --showoption ITEM show value of option - --setoption OPTION VALUE set option, where OPTION is one of: - LW35, dvipsPreferOutline, dvipsDownloadBase35, - pdftexDownloadBase14, pxdviUse, kanjiEmbed, - or kanjiVariant - --setoption OPTION=VALUE as above, just different syntax - --enable MAPTYPE MAPFILE add "MAPTYPE MAPFILE" to updmap.cfg, - where MAPTYPE is one of: Map, MixedMap, KanjiMap - --enable Map=MAPFILE add \"Map MAPFILE\" to updmap.cfg - --enable MixedMap=MAPFILE add \"MixedMap MAPFILE\" to updmap.cfg - --enable KanjiMap=MAPFILE add \"KanjiMap MAPFILE\" to updmap.cfg - --disable MAPFILE disable MAPFILE, of any type - --listmaps list all active and inactive maps - --listavailablemaps same as --listmaps, but without - unavailable map files - --syncwithtrees disable unavailable map files in updmap.cfg - -Explanation of the map types: the (only) difference between Map and -MixedMap is that MixedMap entries are not added to psfonts_pk.map. -The purpose is to help users with printers that render Type 1 outline -fonts worse than mode-tuned Type 1 bitmap fonts. So, MixedMap is used -for fonts that are available as both Type 1 and Metafont. - -KanjiMap, on the other hand, specifies possibly several map files for -Kanji font support; see below. KanjiMap entries are added to -psfonts_t1.map and kanjix.map. - -Explanation of the --setoption possibilities: - - dvipsPreferOutline true|false (default true) - Whether dvips uses bitmaps or outlines, when both are available. - dvipsDownloadBase35 true|false (default false) - Whether dvips includes the standard 35 PostScript fonts in its output. - pdftexDownloadBase14 true|false (default true) - Whether pdftex includes the standard 14 PDF fonts in its output. - pxdviUse true|false (default false) - Whether maps for pxdvi (Japanese-patched xdvi) is under control of updmap. - kanjiEmbed any string, default noEmbed - specify embedding and choice of Kanji fonts, - kanjiVariant any string, default empty - used as suffix for some Kanji maps; set to -04 for JIS2004. - LW35 URWkb|URW|ADOBEkb|ADOBE (default URWkb) - Adapt the font and file names of the standard 35 PostScript fonts. - URWkb URW fonts with "berry" filenames (e.g. uhvbo8ac.pfb) - URW URW fonts with "vendor" filenames (e.g. n019064l.pfb) - ADOBEkb Adobe fonts with "berry" filenames (e.g. phvbo8an.pfb) - ADOBE Adobe fonts with "vendor" filenames (e.g. hvnbo___.pfb) - - These options are only read and acted on by updmap; dvips, pdftex, etc., - do not know anything about them. They work by changing the default map - file which the programs read, so they can be overridden by specifying - command-line options or configuration files to the programs, as - explained at the beginning of updmap.cfg. - - The options kanjiEmbed and kanjiVariant determine special replacements - in map lines: the string \@kanjiEmbed\@ is replaced by the value of - the respective option; similarly for kanjiVariant. These are useful - on KanjiMap lines. This allows Japanese TeX users to easily select - different fonts to be included in the final PDF output from dvipdfmx. - -Explanation of trees and files normally used: - - updmap both reads and writes TEXMFCONFIG/web2c/updmap.cfg, according - to the actions specified. - - updmap writes the map files for dvips (psfonts.map) and pdftex - (pdftex.map) to the TEXMFVAR/fonts/map/updmap/{dvips,pdftex}/ - directories. The map file for Kanji fonts, read by dvipdfmx, is - written to TEXMFVAR/fonts/map/updmap/dvipdfm/kanjix.map. - - The log file is written to TEXMFVAR/web2c/updmap.log. - - When updmap-sys is run, TEXMFSYSCONFIG and TEXMFSYSVAR are used - instead. This is the only difference between updmap-sys and updmap. - - Other locations can be used if overridden on the command line, or these - trees don't exist, or you are not using the original TeX Live. - - To see the precise locations of the various files that - will be read and written, give the -n option. - -For step-by-step instructions on making new fonts known to TeX, read -http://tug.org/fonts/fontinstall.html. For even more terse -instructions, read the beginning of updmap.cfg. - -Report bugs to: tex-k\@tug.org -TeX Live home page: <http://tug.org/texlive/> -EOF -; - print &version(); - print $usage; - exit 0; -} - - - -############################################################################### -# processOptions() -# process cmd line options -# -sub processOptions { - # - # We parse the command line twice. The first time is to handle - # --setoption and --enable, which might take either one or two following - # values, the second to handle everything else. The Getopt::Long feature to - # handle this is only supported in 5.8.8 (released in 2006) or later, - # and a few people run older perls. - # - my $oldconfig = Getopt::Long::Configure(qw(pass_through)); - # - sub read_one_or_two { - my ($opt, $val) = @_; - # check if = occurs in $val, if not, get the next argument - if ($val =~ m/=/) { - if ($opt eq "setoption") { - push @setoptions, $val; - } else { - $enableItem = $val; - } - } else { - my $vv = shift @ARGV; - die "Try \"$0 --help\" for more information.\n" - if !defined($vv); - if ($opt eq "setoption") { - push @setoptions, "$val=$vv"; - } else { - $enableItem = "$val=$vv"; - } - } - } - GetOptions("setoption=s@" => \&read_one_or_two, - "enable=s" => \&read_one_or_two) || - die "$0: illegal arguments, try --help for more information.\n"; - - # restore old getopt config and read everything else. - Getopt::Long::Configure($oldconfig); - unless (&GetOptions ( - "cnffile=s" => \$cnfFile, - "copy" => \$copy, - "disable=s" => \@disableItem, - "dvipdfmoutputdir=s" => \$dvipdfmoutputdir, - "dvipsoutputdir=s" => \$dvipsoutputdir, - # "enable=s" => \$enableItem, - "edit" => \$opt_edit, - "force" => \$opt_force, - "listavailablemaps" => \$listavailablemaps, - "l|listmaps" => \$listmaps, - "nohash" => \$nohash, - "nomkmap" => \$nomkmap, - "n|dry-run" => \$dry_run, - "outputdir=s" => \$outputdir, - "pdftexoutputdir=s" => \$pdftexoutputdir, - "pxdvioutputdir=s" => \$pxdvioutputdir, - "q|quiet|silent" => \$quiet, - "setoption" => - sub {die "$0: --setoption needs an option and value; try --help.\n"}, - "showoptions=s" => \@showoptions, - "showoption=s" => \@showoption, - "syncwithtrees" => \$syncwithtrees, - "version" => sub { print &version(); exit(0); }, - "h|help" => \$opt_help)) { - die "Try \"$0 --help\" for more information.\n"; - } - - if (@ARGV) { - warn "$0: Ignoring unexpected non-option argument(s): @ARGV.\n"; - } - - if ($outputdir) { - $dvipsoutputdir = $outputdir if (! $dvipsoutputdir); - $pdftexoutputdir = $outputdir if (! $pdftexoutputdir); - $dvipdfmoutputdir = $outputdir if (! $dvipdfmoutputdir); - $pxdvioutputdir = $outputdir if (! $pxdvioutputdir); - } - if ($cnfFile && ! -f $cnfFile) { - die "$0: Config file \"$cnfFile\" not found.\n"; - } - if ($dvipsoutputdir && ! $dry_run && ! -d $dvipsoutputdir) { - &mkdirhier ($dvipsoutputdir); - } - if ($dvipdfmoutputdir && ! $dry_run && ! -d $dvipdfmoutputdir) { - &mkdirhier ($dvipdfmoutputdir); - } - if ($pdftexoutputdir && ! $dry_run && ! -d $pdftexoutputdir) { - &mkdirhier ($pdftexoutputdir); - } - if ($pxdvioutputdir && ! $dry_run && ! -d $pxdvioutputdir) { - &mkdirhier ($pxdvioutputdir); - } -} - - -############################################################################### -# equalize_file(filename[, comment_char]) -# read a file and return its processed content as a string. -# look into the source code for more details. -# -sub equalize_file { - my $file=shift; - my $comment=shift; - my @temp; - - open IN, "$file"; - my @lines = (<IN>); - close IN; - chomp(@lines); - - for (@lines) { - s/\s*${comment}.*// if (defined $comment); # remove comments - next if /^\s*$/; # remove empty lines - s/\s+/ /g; # replace multiple whitespace chars by a single one - push @temp, $_; - } - return join('X', sort(@temp)); -} - -############################################################################### -# files_are_different(file_A, file_B[, comment_char]) -# compare two equalized files. -# -sub files_are_different { - my $file_A=shift; - my $file_B=shift; - my $comment=shift; - my $retval=0; - - my $A=equalize_file("$file_A", $comment); - my $B=equalize_file("$file_B", $comment); - $retval=1 unless ($A eq $B); - return $retval; -} - -############################################################################### -# files_are_equal(file_A, file_B[, comment_char]) -# compare two equalized files. Same as files_are_different() with -# return value inverted. -# -sub files_are_equal { - return (&files_are_different (@_))? 0:1; -} - -############################################################################### -# files_are_identical(file_A, file_B) -# compare two files. Same as cmp(1). -# -sub files_are_identical { - my $file_A=shift; - my $file_B=shift; - my $retval=0; - - open IN, "$file_A"; - my $A=(<IN>); - close IN; - open IN, "$file_B"; - my $B=(<IN>); - close IN; - - $retval=1 if ($A eq $B); - return $retval; -} - -############################################################################### -# getLines() -# -############################################################################### -sub getLines { - my @lines = (); - foreach my $fname (@_) { - next if (! $fname); - if (! exists $maps{"$fname"}) { - open FILE, "<$fname" or die "$0: can't get lines from $fname: $!"; - my @file=<FILE>; - close FILE; - if ($writelog) { - print LOG ("\n$fname:\n"); - foreach my $line (@file) { - next if $line =~ /^\s*%/; # comment - next if $line =~ /^\s*#/; # comment - next if $line =~ /^\s*$/; # empty line - my $tfm; - ($tfm)=split ' ', $line; - print LOG "$tfm\n"; - } - } - $maps{"$fname"} = [ @file ] if ($cache); - push @lines, @file; - } else { - push @lines, @{$maps{"$fname"}}; - } - } - chomp @lines; - return @lines; -} - -############################################################################### -# writeLines() -# write the lines in $filename -# -sub writeLines { - my ($fname, @lines) = @_; - map { ($_ !~ m/\n$/ ? s/$/\n/ : $_ ) } @lines; - open FILE, ">$fname" or die "$0: can't write lines to $fname: $!"; - print FILE @lines; - close FILE; -} - -############################################################################### -# copyFile() -# copy file $src to $dst, sets $dst creation and mod time -# -sub copyFile { - my ($src, $dst) = @_; - my $dir; - ($dir=$dst)=~s/(.*)\/.*/$1/; - mkdirhier $dir; - - $src eq $dst && return "can't copy $src to itself!\n"; - - open IN, "<$src" or die "$0: can't open source file $src for copying: $!"; - open OUT, ">$dst"; - - binmode(IN); - binmode(OUT); - print OUT <IN>; - close(OUT); - close(IN); - my @t = stat($src); - utime($t[8], $t[9], $dst); -} - -############################################################################### -# SymlinkOrCopy(dir, src, dest) -# create symlinks if possible, otherwise copy files -# -sub SymlinkOrCopy { - my ($dir, $src, $dest) = @_; - if (&win32 || $copy) { # always copy - ©File("$dir/$src", "$dir/$dest"); - } else { # symlink if supported by fs, copy otherwise - system("cd \"$dir\" && ln -s $src $dest 2>/dev/null || " - . "cp -p \"$dir/$src\" \"$dir/$dest\""); - } - # remember for "Files generated" in &mkMaps. - $link{"$dest"}="$src"; -} - -############################################################################### -# setupSymlinks() -# set symlink for psfonts.map according to dvipsPreferOutline variable -# -sub setupSymlinks { - my $src; - - if ($dvipsPreferOutline) { - $src = "psfonts_t1.map"; - } else { - $src = "psfonts_pk.map"; - } - unlink "$dvipsoutputdir/psfonts.map"; - &SymlinkOrCopy("$dvipsoutputdir", "$src", "psfonts.map"); - - if ($pdftexDownloadBase14) { - $src = "pdftex_dl14.map"; - } else { - $src = "pdftex_ndl14.map"; - } - unlink "$pdftexoutputdir/pdftex.map"; - &SymlinkOrCopy("$pdftexoutputdir", "$src", "pdftex.map"); -} - - -############################################################################### -# transLW35(args ...) -# transform fontname and filenames according to transformation specified -# by mode. Possible values: -# URW|URWkb|ADOBE|ADOBEkb -# -sub transLW35 { - my ($name) = @_; - my @lines = &getLines($name); - - if ($mode eq "" || $mode eq "URWkb") { - # do nothing - } elsif ($mode eq "URW") { - for my $r (@fileURW) { - map { eval($r); } @lines; - } - } elsif ($mode eq "ADOBE" || $mode eq "ADOBEkb") { - for my $r (@psADOBE) { - map { eval($r); } @lines; - } - my @filemode = eval ("\@file" . $mode); - for my $r (@filemode) { - map { eval($r); } @lines; - } - } - return @lines; -} - -############################################################################### -# locateWeb2c (file ...) -# apply kpsewhich with format 'web2c files' -# -sub locateWeb2c { - my @files = @_; - return @files if ($#files < 0); - - @files = split (/\n/, `kpsewhich --format="web2c files" @files`); - if (wantarray) { - return @files; - } - else { - return $files[0]; - } -} - -############################################################################### -# locateMap (file ...) -# apply kpsewhich with format 'map' -# -sub locateMap { - my @maps = @_; - return @maps if ($#maps < 0); - - my @files = `kpsewhich --format=map @maps`; - chomp @files; - - foreach my $map (@maps) { - push @missing, $map if (! grep /\/$map(\.map)?$/, @files); - } - - if (wantarray) { - return @files; - } else { - return $files[0]; - } -} - - -############################################################################### -# cfgval(variable) -# read variable ($1) from config file -# -sub cfgval { - my ($variable) = @_; - my $value; - - if ($#cfg < 0) { - open FILE, "<$cnfFile" or die "$0: can't open configuration file $cnfFile: $!"; - while (<FILE>) { - s/\s*$//; # strip trailing spaces - push @cfg, $_; - } - close FILE; - chomp (@cfg); - } - for my $line (@cfg) { - if ($line =~ m/^\s*${variable}[\s=]+(.*)\s*$/) { - $value = $1; - if ($value =~ m/^(true|yes|t|y|1)$/) { - $value = 1; - } - elsif ($value =~ m/^(false|no|f|n|0)$/) { - $value = 0; - } - last; - } - } - return $value; -} - -############################################################################### -# configReplace(file, pattern, line) -# The first line in file that matches pattern gets replaced by line. -# line will be added at the end of the file if pattern does not match. -# -sub configReplace { - my ($file, $pat, $line) = @_; - my @lines = &getLines($file); - my $found = 0; - map { - if (/$pat/) { - $found = 1; $_ = $line; - } - } @lines; - if (! $found) { - push @lines, $line; - } - &writeLines($file, @lines); -} - -############################################################################### -# setOption (@options) -# parse @options for "key=value" (one element of @options) -# or "key", "value" (two elements of @options) pairs. -# (These were the values provided to --setoption.) -# -sub setOptions { - my (@options) = @_; - for (my $i = 0; $i < @options; $i++) { - my $o = $options[$i]; - - my ($key,$val); - if ($o =~ /=/) { - ($key,$val) = split (/=/, $o, 2); - } else { - $key = $o; - die "$0: no value for --setoption $key, goodbye.\n" - if $i + 1 >= @options; - $val = $options[$i + 1]; - $i++; - } - - die "$0: unexpected empty key or val for options (@options), goodbye.\n" - if !$key || !defined($val); - &setOption ($key, $val); - } -} - -############################################################################### -# setOption (option, value) -# sets option to value in the config file (replacing the existing setting -# or by adding a new line to the config file). -# -sub setOption { - my ($opt, $val) = @_; - - if ($opt eq "LW35") { - if ($val !~ m/^(URWkb|URW|ADOBE|ADOBEkb)$/) { - die "$0: Invalid value $val for option $opt; try --help.\n"; - } - } elsif ($opt =~ -m/^(dvipsPreferOutline|dvipsDownloadBase35|(pdftex|dvipdfm)DownloadBase14|pxdviUse)$/) { - if ($val !~ m/^(true|false)$/) { - die "$0: Invalid value $val for option $opt; should be \"true\" or \"false\".\n"; - } - } elsif ($opt eq "kanjiEmbed" || $opt eq "kanjiVariant"){ - # do nothing - } else { - die "$0: Unsupported option $opt (value given: $val).\n"; - } - - # silently accept this old option name, just in case. - return if $opt eq "dvipdfmDownloadBase14"; - - #print "Setting option $opt to $val...\n" if !$quiet; - &configReplace("$cnfFile", "^" . "$opt" . "\\s", "$opt $val"); -} - -############################################################################### -# showOption(item item ...) -# show current value for an item -# -sub showOption { - sub doit { - my ($a, $b) = @_; - my $v = &cfgval($a); - $v = $b unless (defined $v); - print "$a=$v\n"; - } - foreach my $item (@_) { - doit("LW35", "URWkb") if ($item eq "LW35"); - doit("dvipsPreferOutline", 1) if ($item eq "dvipsPreferOutline"); - doit("dvipsDownloadBase35", 1) if ($item eq "dvipsDownloadBase35"); - doit("pdftexDownloadBase14", 1) if ($item eq "pdftexDownloadBase14"); - doit("kanjiEmbed", "noEmbed") if ($item eq "kanjiEmbed"); - doit("kanjiVariant", "") if ($item eq "kanjiVariant"); - doit("pxdviUse", 0) if ($item eq "pxdviUse"); - } -} - -############################################################################### -# showOptions(item) -# show Options for an item -# -sub showOptions { - foreach my $item (@_) { - if ($item eq "LW35") { - print "URWkb URW ADOBE ADOBEkb\n"; - } - elsif ($item =~ -m/(dvipsPreferOutline|(dvipdfm|pdftex)DownloadBase14|dvipsDownloadBase35|pxdviUse)/) { - print "true false\n"; - } - elsif ($item eq "kanjiEmbed" || $item eq "kanjiVariant") { - print "(any string)\n"; - } - else { - print "Unknown item \"$item\"; should be one of LW35, dvipsPreferOutline,\n" - . " dvipsDownloadBase35, pdftexDownloadBase14, pxdviUse, kanjiEmbed, or kanjiVariant\n"; - } - } - exit 0 -} - - -############################################################################### -# enableMap (type, map) -# enables an entry in the config file for map with a given type. -# -sub enableMap { - my ($type, $map) = @_; - - if ($type !~ m/^(Map|MixedMap|KanjiMap)$/) { - die "$0: Invalid mapType $type\n"; - } - # a map can only have one type, so we carefully disable everything - # about map here: - &disableMap("$map"); - - # now enable with the right type: - &configReplace("$cnfFile", "^#!\\s*" . "$type" . "\\s*$map", "$type $map"); -} - -############################################################################### -# disableMap (map) -# disables map in config file (any type) -# -sub disableMap { - my ($map) = @_; - my %count = (); - my $type; - - my @mapType = grep { - my @fields = split; - if ($fields[0] and $fields[0] =~ /^(MixedMap|Map|KanjiMap)$/ - and $fields[1] eq $map and ++$count{$fields[0]}) { - $_ = $fields[0]; - } - else { - $_ = ''; - } - } &getLines($cnfFile); - - foreach $type (@mapType) { - &configReplace("$cnfFile", "^$type" . "\\s*$map", "#! $type $map"); - } -} - -############################################################################### -# setupDestDir() -# find an output directory if none specified on cmd line. First choice is -# $TEXMFVAR/fonts/map/updmap (if TEXMFVAR is set), next is relative to -# config file location. Fallback is $TEXMFMAIN/fonts/map/updmap. -# -sub setupOutputDir { - my($od, $driver) = @_; - - if (!$od) { - my $rel = "fonts/map/$driver/updmap"; - my $tf; - # Try TEXMFVAR tree. Use it if variable is set and $rel can - # be written. - chomp($tf = `kpsewhich --var-value=TEXMFVAR`); - if ($tf) { - &mkdirhier("$tf/$rel"); - if (! -w "$tf/$rel") { - die "$0: Directory \"$tf/$rel\" isn't writable.\n"; - } - } - $od = "$tf/$rel"; - } - &mkdirhier($od); - print "$driver output dir: \"$od\"\n" if !$quiet; - return $od; -} - -sub setupDestDir { - $dvipsoutputdir = &setupOutputDir($dvipsoutputdir, "dvips"); - $pdftexoutputdir = &setupOutputDir($pdftexoutputdir, "pdftex"); - $dvipdfmoutputdir = &setupOutputDir($dvipdfmoutputdir, "dvipdfm"); - $pxdvioutputdir = &setupOutputDir($pxdvioutputdir, "pxdvi"); -} - -############################################################################### -# setupCfgFile() -# find config file if none specified on cmd line. -# -sub setupCfgFile { - if (! $cnfFile) { - my $tf = `kpsewhich --var-value=TEXMFCONFIG`; - chomp($tf); - if ($tf && ! -f "$tf/web2c/$cnfFileShort") { - &mkdirhier("$tf/web2c") if (! -d "$tf/web2c"); - if (-d "$tf/web2c" && -w "$tf/web2c") { - unlink "$tf/web2c/$cnfFileShort"; - my $original_cfg=`kpsewhich updmap.cfg`; - chomp($original_cfg); - print("copy $original_cfg => $tf/web2c/$cnfFileShort\n") if !$quiet; - $newcnf="$tf/web2c/$cnfFileShort"; - ©File("$original_cfg", "$tf/web2c/$cnfFileShort"); - $updLSR->{add}("$tf/web2c/$cnfFileShort"); - } - } - $cnfFile = "$tf/web2c/updmap.cfg"; - if (-s $cnfFile) { - print "Config file: \"$cnfFile\"\n" if !$quiet; - } else { - die "$0: Config file updmap.cfg not found.\n"; - } - } -} - -############################################################################### -# catMaps(regex) -# filter config file by regex for map lines and extract the map filenames. -# These are then looked up (by kpsewhich in locateMap) and the content of -# all map files is send to stdout. -# -sub catMaps { - my ($map) = @_; - my %count = ( ); - my @maps = grep { $_ =~ m/$map/ } @cfg; - map{ - $_ =~ s/\#.*//; - # $_ =~ s/\@kanjiEmbed@/$kanjiEmbed/; - # $_ =~ s/\@kanjiVariant@/$kanjiVariant/; - $_ =~ s/\s*([^\s]*)\s*([^\s]*)/$2/; - } @maps; - - my @newmaps; - for my $m (@maps) { - if ($m =~ m/\@kanjiEmbed@/ || $m =~ m/\@kanjiVariant@/) { - my $newm = $m; - $newm =~ s/\@kanjiEmbed@/$kanjiEmbed/; - $newm =~ s/\@kanjiVariant@/$kanjiVariant/; - my $mf = `kpsewhich --format=map $newm`; - chomp($mf); - if (!$mf) { - print LOG "\n$short_progname: generated map $newm\n\tfrom $m\n\tdoes not exists, not activating it!\n"; - } else { - push @newmaps, $newm; - } - } else { - push @newmaps, $m; - } - } - @maps = sort(@newmaps); - @maps = grep { ++$count{$_} < 2; } @maps; - - @maps = &locateMap(@maps); - return @maps; -} - -############################################################################### -# listMaps() -# list all maps mentioned in the config file -# -sub listMaps { - my $what=shift; - my @mapfiles; - my @paths; - $kanjiEmbed = &cfgval("kanjiEmbed"); - $kanjiEmbed = "noEmbed" unless (defined $kanjiEmbed); - $kanjiVariant = &cfgval("kanjiVariant"); - $kanjiVariant = "" unless (defined $kanjiVariant); - - my @lines = grep { - if ($what eq 'sync') { - $_ =~ m/^(Mixed|Kanji)?Map/ - } else { - $_ =~ m/^(\#! *)?(Mixed|Kanji)?Map/ - } - } &getLines($cnfFile); - - if ($what eq 'list') { - # --listmaps - map { print "$_\n"; } @lines; - } else { - map { $_ =~ s/\@kanjiEmbed@/$kanjiEmbed/ } @lines; - map { $_ =~ s/\@kanjiVariant@/$kanjiVariant/ } @lines; - @mapfiles=grep { $_ =~ s/^(\#! *)?(Mixed|Kanji)?Map\s+// } @lines; - @paths=&locateMap(@mapfiles); - - if ($what eq 'avail') { - # --listavailablemaps - map { - my $entry="$_"; - # that was disabled, but I don't understand why (NP) - print "$entry\n" if (grep { $_ =~ m/\/$entry/ } @paths); - } @lines; - } elsif ($what eq 'sync') { - # --syncwithtrees - map { - my $entry="$_"; - unless (grep { $_ =~ m/\/$entry/ } @paths) { - &disableMap($entry); - print " $entry disabled\n" if !$quiet; - } - } @lines; - } - } -} - -############################################################################### -# normalizeLines() -# remove comments, whitespace is exactly one space, no empty lines, -# no whitespace at end of line, one space before and after " -# -sub normalizeLines { - my @lines = @_; - my %count = (); - - @lines = grep { $_ !~ m/^[*#;%]/ } @lines; - map {$_ =~ s/\s+/ /gx } @lines; - @lines = grep { $_ !~ m/^\s*$/x } @lines; - map { $_ =~ s/\s$//x ; - $_ =~ s/\s*\"\s*/ \" /gx; - $_ =~ s/\" ([^\"]*) \"/\"$1\"/gx; - } @lines; - - @lines = grep {++$count{$_} < 2 } (sort @lines); - - return @lines; -} - -############################################################################### -# to_pdftex() -# if $pdftexStripEnc is set, strip "PS_Encoding_Name ReEncodeFont" -# from map entries; they are ignored by pdftex. But since the sh -# incarnation of updmap included them, and we want to minimize -# differences, this is not done by default. -# -sub to_pdftex { - return @_ unless $pdftexStripEnc; - my @in = @_; - my @out; - foreach my $line (@in) { - if ($line =~ /^(.*\s+)(\S+\s+ReEncodeFont\s)(.*)/) { - $line = "$1$3"; - $line =~ s/\s+\"\s+\"\s+/ /; - } - push @out, $line; - } - return @out; -} - -############################################################################### -# cidx2dvips() -# reads from stdin, writes to stdout. It transforms "cid-x"-like syntax into -# "dvips"-like syntax. -############################################################################### -sub cidx2dvips { - my ($s) = @_; - my @d; - foreach (@$s) { - s/,BoldItalic/ -s .3/; - s/,Bold//; - s/,Italic/ -s .3/; - s/\s\s*/ /g; - if ($_ =~ /.*[@\:\/,]/) {next;} - elsif ($_ =~ /^[^ ][^ ]* unicode /) {next;} - s/^([^ ][^ ]* [^ ][^ ]* [^ ][^ ]*)\.[Oo][Tt][Ff]/$1/; - s/^([^ ][^ ]* [^ ][^ ]* [^ ][^ ]*)\.[Tt][Tt][FfCc]/$1/; - s/$/ %/; - s/^(([^ ]*).*)/$1$2/; - s/^([^ ][^ ]* ([^ ][^ ]*) !*([^ ][^ ]*).*)/$1 $3-$2/; - s/^(.* -e ([.0-9-][.0-9-]*).*)/$1 "$2 ExtendFont"/; - s/^(.* -s ([.0-9-][.0-9-]*).*)/$1 "$2 SlantFont"/; - s/.*%//; - push(@d, $_); - } - return @d -} - - -############################################################################### -# mkMaps() -# the main task of this script: create the output files -# -sub mkMaps { - my @lines; - my $logfile; - - $cache=1; - - if (! $dry_run) { - my $TEXMFVAR = `kpsewhich --var-value=TEXMFVAR`; - chomp($TEXMFVAR); - $logfile = "$TEXMFVAR/web2c/updmap.log"; - mkdirhier "$TEXMFVAR/web2c"; - open LOG, ">$logfile" - or die "$0: Can't open log file \"$logfile\": $!"; - $writelog=1; - print LOG &version(); - printf LOG "%s\n\n", scalar localtime(); - print LOG "Using config file \"$cnfFile\".\n"; - } - sub wlog () { - my $str=shift; - if ($dry_run) { - print $str; - } else { - print $str if !$quiet; - print LOG $str; - } - } - sub newline() { - if ($dry_run) { - print "\n"; - } else { - print LOG "\n"; - } - } - - $mode = &cfgval("LW35"); - $mode = "URWkb" unless (defined $mode); - - $dvipsPreferOutline = &cfgval("dvipsPreferOutline"); - $dvipsPreferOutline = 1 unless (defined $dvipsPreferOutline); - - $dvipsDownloadBase35 = &cfgval("dvipsDownloadBase35"); - $dvipsDownloadBase35 = 1 unless (defined $dvipsDownloadBase35); - - $pdftexDownloadBase14 = &cfgval("pdftexDownloadBase14"); - $pdftexDownloadBase14 = 1 unless (defined $pdftexDownloadBase14); - - $kanjiEmbed = &cfgval("kanjiEmbed"); - $kanjiEmbed = "noEmbed" unless (defined $kanjiEmbed); - - $kanjiVariant = &cfgval("kanjiVariant"); - $kanjiVariant = "" unless (defined $kanjiVariant); - - $pxdviUse = &cfgval("pxdviUse"); - $pxdviUse = 0 unless (defined $pxdviUse); - - &wlog ("\n$0 " - . ($dry_run ? "would create" : "is creating") . " new map files" - . "\nusing the following configuration:" - . "\n LW35 font names : " - . $mode - . "\n prefer outlines : " - . ($dvipsPreferOutline ? "true" : "false") - . "\n texhash enabled : " - . ($nohash ? "false" : "true") - . "\n download standard fonts (dvips) : " - . ($dvipsDownloadBase35 ? "true" : "false") - . "\n download standard fonts (pdftex) : " - . ($pdftexDownloadBase14 ? "true" : "false") - . "\n kanjiEmbed/variant replacement : " - . "$kanjiEmbed/$kanjiVariant" - . "\n create a mapfile for pxdvi : " - . ($pxdviUse ? "true" : "false") - . "\n\n"); - - &wlog ("Scanning for LW35 support files"); - $dvips35 = &locateMap("dvips35.map"); - $pdftex35 = &locateMap("pdftex35.map"); - $ps2pk35 = &locateMap("ps2pk35.map"); - my $LW35 = "\n$dvips35\n$pdftex35\n$ps2pk35\n\n"; - if ($dry_run) { - print $LW35; - } else { - print LOG $LW35; - } - printf " [%3d files]\n", 3 unless ($quiet || $dry_run); - - &wlog ("Scanning for MixedMap entries"); - &newline; - my @tmp1 = &catMaps('^MixedMap'); - foreach my $line (@tmp1) { - if ($dry_run) { - print "$line\n"; - } else { - print LOG "$line\n"; - } - } - &newline; - printf " [%3d files]\n", scalar @tmp1 - unless ($quiet || $dry_run); - - &wlog ("Scanning for KanjiMap entries"); - &newline; - my @tmpkanji0 = &catMaps('^KanjiMap'); - foreach my $line (@tmpkanji0) { - if ($dry_run) { - print "$line\n"; - } else { - print LOG "$line\n"; - } - } - &newline; - printf " [%3d files]\n", scalar @tmpkanji0 - unless ($quiet || $dry_run); - - &wlog ("Scanning for Map entries"); - &newline(); - my @tmp2 = &catMaps('^Map'); - foreach my $line (@tmp2) { - if ($dry_run) { - print "$line\n"; - } else { - print LOG "$line\n"; - } - } - &newline; - printf " [%3d files]\n\n", scalar @tmp2 - unless ($quiet || $dry_run); - - if (@missing > 0) { - print STDERR "\nERROR: The following map file(s) couldn't be found:\n\t"; - print STDERR join(' ', @missing); - print STDERR "\n\n\tDid you run mktexlsr?\n\n" . - "\tYou can delete non-existent map entries using the option\n". - "\t --syncwithtrees.\n\n"; - exit (1); - } - exit(0) if $dry_run; - - # Create psfonts_t1.map, psfonts_pk.map, ps2pk.map and pdftex.map: - my @managed_files = ("$dvipsoutputdir/download35.map", - "$dvipsoutputdir/builtin35.map", - "$dvipsoutputdir/psfonts_t1.map", - "$dvipsoutputdir/psfonts_pk.map", - "$pdftexoutputdir/pdftex_dl14.map", - "$pdftexoutputdir/pdftex_ndl14.map", - "$dvipdfmoutputdir/kanjix.map", - "$dvipsoutputdir/ps2pk.map"); - if ($pxdviUse) { - push @managed_files, "$pxdvioutputdir/xdvi-ptex.map"; - } - for my $file (@managed_files) { - open FILE, ">$file"; - print FILE "% $file:\ -% maintained by updmap[-sys].\ -% Don't change this file directly. Use updmap[-sys] instead.\ -% See texmf/web2c/$cnfFileShort and the updmap documentation.\ -% A log of the run that created this file is available here:\ -% $logfile\ -"; - close FILE; - } - - print "Generating output for dvipdfm...\n" if !$quiet; - my @tmpkanji1; - push @tmpkanji1, &getLines(@tmpkanji0); - @tmpkanji1 = &normalizeLines(@tmpkanji1); - &writeLines(">$dvipdfmoutputdir/kanjix.map", - @tmpkanji1); - - if ($pxdviUse) { - # we use the very same data as for kanjix.map, but generate - # a different file, so that in case a user wants to hand-craft it - print "Generating output for pxdvi...\n" if !$quiet; - &writeLines(">$pxdvioutputdir/xdvi-ptex.map", - @tmpkanji1); - } - - print "Generating output for ps2pk...\n" if !$quiet; - my @ps2pk_map = &transLW35($ps2pk35); - push @ps2pk_map, &getLines(@tmp1); - push @ps2pk_map, &getLines(@tmp2); - &writeLines(">$dvipsoutputdir/ps2pk.map", - &normalizeLines(@ps2pk_map)); - - print "Generating output for dvips...\n" if !$quiet; - my @download35_map = &transLW35($ps2pk35); - &writeLines(">$dvipsoutputdir/download35.map", - &normalizeLines(@download35_map)); - - my @builtin35_map = &transLW35($dvips35); - &writeLines(">$dvipsoutputdir/builtin35.map", - &normalizeLines(@builtin35_map)); - - my $dftdvips = ($dvipsDownloadBase35 ? $ps2pk35 : $dvips35); - - my @psfonts_t1_map = &transLW35($dftdvips); - my @tmpkanji2 = &cidx2dvips(\@tmpkanji1); - push @psfonts_t1_map, &getLines(@tmp1); - push @psfonts_t1_map, &getLines(@tmp2); - push @psfonts_t1_map, @tmpkanji2; - &writeLines(">$dvipsoutputdir/psfonts_t1.map", - &normalizeLines(@psfonts_t1_map)); - - my @psfonts_pk_map = &transLW35($dftdvips); - push @psfonts_pk_map, &getLines(@tmp2); - push @psfonts_pk_map, @tmpkanji2; - &writeLines(">$dvipsoutputdir/psfonts_pk.map", - &normalizeLines(@psfonts_pk_map)); - - print "Generating output for pdftex...\n" if !$quiet; - # remove PaintType due to Sebastian's request - my @tmp3 = &transLW35($pdftex35); - push @tmp3, &getLines(@tmp1); - push @tmp3, &getLines(@tmp2); - @tmp3 = grep { $_ !~ m/(^%|PaintType)/ } @tmp3; - - my @tmp7 = &transLW35($ps2pk35); - push @tmp7, &getLines(@tmp1); - push @tmp7, &getLines(@tmp2); - @tmp7 = grep { $_ !~ m/(^%|PaintType)/ } @tmp7; - - my @pdftex_ndl14_map = @tmp3; - @pdftex_ndl14_map = &normalizeLines(@pdftex_ndl14_map); - @pdftex_ndl14_map = &to_pdftex(@pdftex_ndl14_map); - &writeLines(">$pdftexoutputdir/pdftex_ndl14.map", @pdftex_ndl14_map); - - my @pdftex_dl14_map = @tmp7; - @pdftex_dl14_map = &normalizeLines(@pdftex_dl14_map); - @pdftex_dl14_map = &to_pdftex(@pdftex_dl14_map); - &writeLines(">$pdftexoutputdir/pdftex_dl14.map", @pdftex_dl14_map); - - &setupSymlinks; - - &wlog ("\nFiles generated:\n"); - sub dir { - my ($d, $f, $target)=@_; - if (-e "$d/$f") { - my @stat=lstat("$d/$f"); - my ($s,$m,$h,$D,$M,$Y)=localtime($stat[9]); - my $timestamp=sprintf ("%04d-%02d-%02d %02d:%02d:%02d", - $Y+1900, $M+1, $D, $h, $m, $s); - my $date=sprintf "%12d %s %s", $stat[7], $timestamp, $f; - &wlog ($date); - - if (-l "$d/$f") { - my $lnk=sprintf " -> %s\n", readlink ("$d/$f"); - &wlog ($lnk); - } elsif ($f eq $target) { - if (&files_are_identical("$d/$f", "$d/$link{$target}")) { - &wlog (" = $link{$target}\n"); - } else { - &wlog (" = ?????\n"); # This shouldn't happen. - } - } else { - &wlog ("\n"); - } - } else { - print STDERR "Warning: File $d/$f doesn't exist.\n"; - print LOG "Warning: File $d/$f doesn't exist.\n"; - } - } - my $d; - $d="$dvipsoutputdir"; &wlog (" $d:\n"); - foreach my $f ('builtin35.map', 'download35.map', 'psfonts_pk.map', - 'psfonts_t1.map', 'ps2pk.map', 'psfonts.map') { - dir ($d, $f, 'psfonts.map'); - $updLSR->{add}("$d/$f"); - } - $d="$pdftexoutputdir"; &wlog (" $d:\n"); - foreach my $f ('pdftex_dl14.map', 'pdftex_ndl14.map', 'pdftex.map') { - dir ($d, $f, 'pdftex.map'); - $updLSR->{add}("$d/$f"); - } - $d="$dvipdfmoutputdir"; &wlog (" $d:\n"); - foreach my $f ('kanjix.map') { - dir ($d, $f, ''); - $updLSR->{add}("$d/$f"); - } - if ($pxdviUse) { - $d="$pxdvioutputdir"; &wlog (" $d:\n"); - foreach my $f ('xdvi-ptex.map') { - dir ($d, $f, ''); - $updLSR->{add}("$d/$f"); - } - } - close LOG; - print "\nTranscript written on \"$logfile\".\n" if !$quiet; -} - - -############################################################################### -# initVars() -# initialize global variables -# -sub initVars { - $quiet = 0; - $nohash = 0; - $nomkmap = 0; - $cnfFile = ""; - $cnfFileShort = "updmap.cfg"; - $outputdir = ""; - chomp($TEXMFMAIN =`kpsewhich --var-value=TEXMFMAIN`); - - @psADOBE = ( - 's/ URWGothicL-Demi / AvantGarde-Demi /', - 's/ URWGothicL-DemiObli / AvantGarde-DemiOblique /', - 's/ URWGothicL-Book / AvantGarde-Book /', - 's/ URWGothicL-BookObli / AvantGarde-BookOblique /', - 's/ URWBookmanL-DemiBold / Bookman-Demi /', - 's/ URWBookmanL-DemiBoldItal / Bookman-DemiItalic /', - 's/ URWBookmanL-Ligh / Bookman-Light /', - 's/ URWBookmanL-LighItal / Bookman-LightItalic /', - 's/ NimbusMonL-Bold / Courier-Bold /', - 's/ NimbusMonL-BoldObli / Courier-BoldOblique /', - 's/ NimbusMonL-Regu / Courier /', - 's/ NimbusMonL-ReguObli / Courier-Oblique /', - 's/ NimbusSanL-Bold / Helvetica-Bold /', - 's/ NimbusSanL-BoldCond / Helvetica-Narrow-Bold /', - 's/ NimbusSanL-BoldItal / Helvetica-BoldOblique /', - 's/ NimbusSanL-BoldCondItal / Helvetica-Narrow-BoldOblique /', - 's/ NimbusSanL-Regu / Helvetica /', - 's/ NimbusSanL-ReguCond / Helvetica-Narrow /', - 's/ NimbusSanL-ReguItal / Helvetica-Oblique /', - 's/ NimbusSanL-ReguCondItal / Helvetica-Narrow-Oblique /', - 's/ CenturySchL-Bold / NewCenturySchlbk-Bold /', - 's/ CenturySchL-BoldItal / NewCenturySchlbk-BoldItalic /', - 's/ CenturySchL-Roma / NewCenturySchlbk-Roman /', - 's/ CenturySchL-Ital / NewCenturySchlbk-Italic /', - 's/ URWPalladioL-Bold / Palatino-Bold /', - 's/ URWPalladioL-BoldItal / Palatino-BoldItalic /', - 's/ URWPalladioL-Roma / Palatino-Roman /', - 's/ URWPalladioL-Ital / Palatino-Italic /', - 's/ StandardSymL / Symbol /', - 's/ NimbusRomNo9L-Medi / Times-Bold /', - 's/ NimbusRomNo9L-MediItal / Times-BoldItalic /', - 's/ NimbusRomNo9L-Regu / Times-Roman /', - 's/ NimbusRomNo9L-ReguItal / Times-Italic /', - 's/ URWChanceryL-MediItal / ZapfChancery-MediumItalic /', - 's/ Dingbats / ZapfDingbats /', - ); - - @fileADOBEkb = ( - 's/\buagd8a.pfb\b/pagd8a.pfb/', - 's/\buagdo8a.pfb\b/pagdo8a.pfb/', - 's/\buagk8a.pfb\b/pagk8a.pfb/', - 's/\buagko8a.pfb\b/pagko8a.pfb/', - 's/\bubkd8a.pfb\b/pbkd8a.pfb/', - 's/\bubkdi8a.pfb\b/pbkdi8a.pfb/', - 's/\bubkl8a.pfb\b/pbkl8a.pfb/', - 's/\bubkli8a.pfb\b/pbkli8a.pfb/', - 's/\bucrb8a.pfb\b/pcrb8a.pfb/', - 's/\bucrbo8a.pfb\b/pcrbo8a.pfb/', - 's/\bucrr8a.pfb\b/pcrr8a.pfb/', - 's/\bucrro8a.pfb\b/pcrro8a.pfb/', - 's/\buhvb8a.pfb\b/phvb8a.pfb/', - 's/\buhvb8ac.pfb\b/phvb8an.pfb/', - 's/\buhvbo8a.pfb\b/phvbo8a.pfb/', - 's/\buhvbo8ac.pfb\b/phvbo8an.pfb/', - 's/\buhvr8a.pfb\b/phvr8a.pfb/', - 's/\buhvr8ac.pfb\b/phvr8an.pfb/', - 's/\buhvro8a.pfb\b/phvro8a.pfb/', - 's/\buhvro8ac.pfb\b/phvro8an.pfb/', - 's/\buncb8a.pfb\b/pncb8a.pfb/', - 's/\buncbi8a.pfb\b/pncbi8a.pfb/', - 's/\buncr8a.pfb\b/pncr8a.pfb/', - 's/\buncri8a.pfb\b/pncri8a.pfb/', - 's/\buplb8a.pfb\b/pplb8a.pfb/', - 's/\buplbi8a.pfb\b/pplbi8a.pfb/', - 's/\buplr8a.pfb\b/pplr8a.pfb/', - 's/\buplri8a.pfb\b/pplri8a.pfb/', - 's/\busyr.pfb\b/psyr.pfb/', - 's/\butmb8a.pfb\b/ptmb8a.pfb/', - 's/\butmbi8a.pfb\b/ptmbi8a.pfb/', - 's/\butmr8a.pfb\b/ptmr8a.pfb/', - 's/\butmri8a.pfb\b/ptmri8a.pfb/', - 's/\buzcmi8a.pfb\b/pzcmi8a.pfb/', - 's/\buzdr.pfb\b/pzdr.pfb/', - ); - - @fileURW = ( - 's/\buagd8a.pfb\b/a010015l.pfb/', - 's/\buagdo8a.pfb\b/a010035l.pfb/', - 's/\buagk8a.pfb\b/a010013l.pfb/', - 's/\buagko8a.pfb\b/a010033l.pfb/', - 's/\bubkd8a.pfb\b/b018015l.pfb/', - 's/\bubkdi8a.pfb\b/b018035l.pfb/', - 's/\bubkl8a.pfb\b/b018012l.pfb/', - 's/\bubkli8a.pfb\b/b018032l.pfb/', - 's/\bucrb8a.pfb\b/n022004l.pfb/', - 's/\bucrbo8a.pfb\b/n022024l.pfb/', - 's/\bucrr8a.pfb\b/n022003l.pfb/', - 's/\bucrro8a.pfb\b/n022023l.pfb/', - 's/\buhvb8a.pfb\b/n019004l.pfb/', - 's/\buhvb8ac.pfb\b/n019044l.pfb/', - 's/\buhvbo8a.pfb\b/n019024l.pfb/', - 's/\buhvbo8ac.pfb\b/n019064l.pfb/', - 's/\buhvr8a.pfb\b/n019003l.pfb/', - 's/\buhvr8ac.pfb\b/n019043l.pfb/', - 's/\buhvro8a.pfb\b/n019023l.pfb/', - 's/\buhvro8ac.pfb\b/n019063l.pfb/', - 's/\buncb8a.pfb\b/c059016l.pfb/', - 's/\buncbi8a.pfb\b/c059036l.pfb/', - 's/\buncr8a.pfb\b/c059013l.pfb/', - 's/\buncri8a.pfb\b/c059033l.pfb/', - 's/\buplb8a.pfb\b/p052004l.pfb/', - 's/\buplbi8a.pfb\b/p052024l.pfb/', - 's/\buplr8a.pfb\b/p052003l.pfb/', - 's/\buplri8a.pfb\b/p052023l.pfb/', - 's/\busyr.pfb\b/s050000l.pfb/', - 's/\butmb8a.pfb\b/n021004l.pfb/', - 's/\butmbi8a.pfb\b/n021024l.pfb/', - 's/\butmr8a.pfb\b/n021003l.pfb/', - 's/\butmri8a.pfb\b/n021023l.pfb/', - 's/\buzcmi8a.pfb\b/z003034l.pfb/', - 's/\buzdr.pfb\b/d050000l.pfb/', - ); - - @fileADOBE = ( - 's/\buagd8a.pfb\b/agd_____.pfb/', - 's/\buagdo8a.pfb\b/agdo____.pfb/', - 's/\buagk8a.pfb\b/agw_____.pfb/', - 's/\buagko8a.pfb\b/agwo____.pfb/', - 's/\bubkd8a.pfb\b/bkd_____.pfb/', - 's/\bubkdi8a.pfb\b/bkdi____.pfb/', - 's/\bubkl8a.pfb\b/bkl_____.pfb/', - 's/\bubkli8a.pfb\b/bkli____.pfb/', - 's/\bucrb8a.pfb\b/cob_____.pfb/', - 's/\bucrbo8a.pfb\b/cobo____.pfb/', - 's/\bucrr8a.pfb\b/com_____.pfb/', - 's/\bucrro8a.pfb\b/coo_____.pfb/', - 's/\buhvb8a.pfb\b/hvb_____.pfb/', - 's/\buhvb8ac.pfb\b/hvnb____.pfb/', - 's/\buhvbo8a.pfb\b/hvbo____.pfb/', - 's/\buhvbo8ac.pfb\b/hvnbo___.pfb/', - 's/\buhvr8a.pfb\b/hv______.pfb/', - 's/\buhvr8ac.pfb\b/hvn_____.pfb/', - 's/\buhvro8a.pfb\b/hvo_____.pfb/', - 's/\buhvro8ac.pfb\b/hvno____.pfb/', - 's/\buncb8a.pfb\b/ncb_____.pfb/', - 's/\buncbi8a.pfb\b/ncbi____.pfb/', - 's/\buncr8a.pfb\b/ncr_____.pfb/', - 's/\buncri8a.pfb\b/nci_____.pfb/', - 's/\buplb8a.pfb\b/pob_____.pfb/', - 's/\buplbi8a.pfb\b/pobi____.pfb/', - 's/\buplr8a.pfb\b/por_____.pfb/', - 's/\buplri8a.pfb\b/poi_____.pfb/', - 's/\busyr.pfb\b/sy______.pfb/', - 's/\butmb8a.pfb\b/tib_____.pfb/', - 's/\butmbi8a.pfb\b/tibi____.pfb/', - 's/\butmr8a.pfb\b/tir_____.pfb/', - 's/\butmri8a.pfb\b/tii_____.pfb/', - 's/\buzcmi8a.pfb\b/zcmi____.pfb/', - 's/\buzdr.pfb\b/zd______.pfb/', - ); -} - - -############################################################################### -# main() -# -sub main { - &initVars; - &processOptions; - - &help if ($opt_help); - - if (@showoptions) { - &showOptions(@showoptions); - exit 0; - } - - &setupCfgFile; - - if (@showoption) { - &showOption(@showoption); - exit 0; - } - if ($listmaps) { - &listMaps ('list'); - exit 0; - } - if ($listavailablemaps) { - &listMaps ('avail'); - exit 0; - } - if ($syncwithtrees) { - &listMaps ('sync'); - exit 0; - } - - my $bakFile = $cnfFile; - $bakFile =~ s/\.cfg$/.bak/; - ©File($cnfFile, $bakFile); - - my $cmd = ''; - - if ($opt_edit) { - # it's not a good idea to edit updmap.cfg manually these days, - # but for compatibility we'll silently keep the option. - $cmd = 'edit'; - my $editor = $ENV{'VISUAL'} || $ENV{'EDITOR'}; - $editor ||= (&win32 ? "notepad" : "vi"); - system($editor, $cnfFile); - - } elsif (@setoptions) { - $cmd = 'setOption'; - &setOptions (@setoptions); - - } elsif ($enableItem) { - $cmd = 'enableMap'; - if ($enableItem =~ /=/) { - &enableMap(split('=', $enableItem)); - } else { - &enableMap($enableItem, shift @ARGV); - } - - } elsif (@disableItem) { - $cmd = 'disableMap'; - foreach my $m (@disableItem) { - &disableMap($m); - } - } - - if ($cmd && !$opt_force && &files_are_equal($bakFile, $cnfFile)) { - print "$cnfFile unchanged. Map files not recreated.\n" if !$quiet; - } else { - if (! $nomkmap) { - &setupDestDir; - &mkMaps; - } - unlink ($bakFile); - } - - unless ($nohash) { - print "$0: Updating ls-R files.\n" if !$quiet; - $updLSR->{exec}() - } -} -__END__ - -### Local Variables: -### perl-indent-level: 2 -### tab-width: 2 -### indent-tabs-mode: nil -### End: -# vim:set tabstop=2 expandtab: # |