From 03e895528bdcda911fdf41b8e1da264aef4516d5 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 29 Sep 2008 00:11:18 +0000
Subject: fontinst 1.929 (28sep08)

git-svn-id: svn://tug.org/texlive/trunk@10781 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/fontinst/base/fimain.dtx | 92 +++++++++++++++++++++--
 1 file changed, 86 insertions(+), 6 deletions(-)

(limited to 'Master/texmf-dist/source/fontinst/base/fimain.dtx')

diff --git a/Master/texmf-dist/source/fontinst/base/fimain.dtx b/Master/texmf-dist/source/fontinst/base/fimain.dtx
index 62ae7dad6fa..6edad395440 100644
--- a/Master/texmf-dist/source/fontinst/base/fimain.dtx
+++ b/Master/texmf-dist/source/fontinst/base/fimain.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{4010}
+% \CheckSum{4033}
 % \iffalse meta-comment
 %
 % Copyright 1993, 1994, 1995, 1996 Alan Jeffrey,
@@ -97,9 +97,7 @@
       \global\slot@number=0%
       \FD@slot@known@true
       \IfFileExists{\lowercase@file.etx}{%
-         \def\relax{\let\relax=\x@relax\iffalse}%
-         \let\encoding=\fi
-         \outer\x@cs\def{endencoding}{\endinput}%
+         \FD@relax@encoding@tricks
          \@@input \@filef@und
          \let\relax=\x@relax
       }{%
@@ -109,6 +107,23 @@
       }
    \endgroup
 }
+%    \end{macrocode}
+%   \begin{macro}{\FD@relax@encoding@tricks}
+%     There is a problem with |\if| \dots\ |\fi| nesting in the 
+%     redefinition of |\relax| and |\encoding|, which interacts badly 
+%     with |\IfFileExists|. To work around that, these redefinitions 
+%     are hidden in the |\FD@relax@encoding@tricks| macro.
+%     \changes{1.928}{2004/11/24}{Macro added, to fix bug reported by 
+%       Peter Dyballa. (LH)}
+%    \begin{macrocode}
+\def\FD@relax@encoding@tricks{%
+   \def\relax{\let\relax=\x@relax\iffalse}%
+   \let\encoding=\fi
+   \outer\x@cs\def{endencoding}{\endinput}%
+}
+%    \end{macrocode}
+%   \end{macro}
+%    \begin{macrocode}
 \def\encoding{%
    \par
    \ifFD@spec@ \addvspace{\bigskipamount}\fi
@@ -586,6 +601,65 @@
 %    \end{macrocode}
 % \end{macro}\end{macro}\end{macro}\end{macro}
 % 
+% \begin{macro}{\charseq}
+%   Most commonly occurring glyphs correspond to one |\Unicode| 
+%   character, but this is not at all true in general---in fact there 
+%   may even be letters which cannot be encoded as single characters, 
+%   as they do not exist in precomposed form but have to be expressed 
+%   with a base letter and combining diacritical mark. Reasonable 
+%   compliance with the standard requires supporting character 
+%   sequences as well as individual characters.
+%   \changes{1.928}{2004/11/27}{Command added. (LH)}
+%   \changes{1.928}{2004/12/16}{Typeset form changed, from paragraph to 
+%      a one-item-per-line list. (LH)}
+%   
+%   In \package{fontinst}, the |\charseq| command is used to specify 
+%   such a character sequence. The syntax is
+%   \begin{quote}
+%     |\charseq|\marg{\cs{Unicode} commands}
+%   \end{quote}
+%   where the \meta{\cs{Unicode} commands} is one or several |\Unicode| 
+%   commands. This means the sequence of those characters. For example
+%   \begin{quote}
+%     |\charseq{|\\
+%     |   \Unicode{0066}{LATIN SMALL LETTER F}|\\
+%     |   \Unicode{0069}{LATIN SMALL LETTER I}|\\
+%     |}|
+%   \end{quote}
+%   is typeset as
+%   \begin{quote}
+%     Unicode character sequence:\\
+%     \vadjust{}\quad\texttt{U+0066} (\textsc{latin small letter f})\\
+%     \vadjust{}\quad\texttt{U+0069} (\textsc{latin small letter i})
+%   \end{quote}
+%   This indentation is made using the \texttt{IfBranch} environment, 
+%   which could be considered a bit hackish.
+%   
+%   |\charseq| is gobbled in \Module{pkg} and \Module{misc}, but in the 
+%   latter case it might get redefined.
+%    \begin{macrocode}
+%<pkg|misc>\let\charseq=\gobble_one
+%    \end{macrocode}
+%   Note how the environment group restores the definition 
+%   of |\Unicode|.
+%    \begin{macrocode}
+%<*doc>
+\newcommand\charseq[1]{%
+   \comment{Unicode character sequence:}%
+   \begin{IfBranch}%
+      \def\Unicode##1##2{%
+         \noindent\FD@codepoint{##1} 
+         \ifx\par##2\par\else(\FD@charname{##2})\fi
+         \par
+      }%
+      #1%
+   \end{IfBranch}%
+}
+%</doc>
+%    \end{macrocode}
+% \end{macro}
+% 
+% 
 % \DescribeMacro{\vartop}
 % \DescribeMacro{\varmid}
 % \DescribeMacro{\varbot}
@@ -4011,6 +4085,8 @@
 %   font metrics file.
 %   \changes{1.926}{2003/07/10}{Only looking for PL and VPL files when 
 %      an encoding is specified. (LH)}
+%   \changes{1.929}{2005/01/13}{Missing space in message inserted. (LH)
+%     Pointed out by Peter Dyballa.}
 %    \begin{macrocode}
       \ifx \pl_encoding\empty_command
          \fromany\file_name
@@ -4021,7 +4097,7 @@
          \inputmtx{\str{afm-name}}
       \else
          \fontinsterror{\string\install...}{
-            Font/MTX~file~\file_name\space not found
+            Font/MTX~file~\file_name\space not~found
          }{
             You~can~insert~an~\string\inputmtx\space command~here
             \messagebreak to~input~some~other~MTX~file~instead.
@@ -4045,9 +4121,13 @@
 %   and the generated MTX file is named 
 %   \meta{font}\texttt{-}\meta{etx}\texttt{.mtx} to avoid that it is 
 %   picked up by |\fromany| by mistake.
+%   \changes{1.929}{2005/01/12}{The \texttt{afm-name} string usually has 
+%      a value at this point, so it is necessary to reset it. (LH, 
+%      sighing because he knows this isn't the first time this problem 
+%      occurred) First to be hit by this bug was Michael Zedler.}
 %    \begin{macrocode}
 \def\metrics_given_encoding#1#2{
-   \x_setstr{afm-name}{#1-#2}
+   \x_cs\edef{s-afm-name}{#1-#2}
    \if_file_exists{#1.pl}\then
       \generalpltomtx{#1}{#1-#2}{pl}{#2}
    \else
-- 
cgit v1.2.3

