%%% ====================================================================
%%%  @LaTeX-package-file{
%%%     author          = "Alan Jeffrey",
%%%     version         = "1.301",
%%%     date            = "3 January 1994",
%%%     time            = "23:34:20 GMT",
%%%     filename        = "fontdoc.sty",
%%%     address         = "School of Cognitive and Computing Sciences
%%%                        University of Sussex
%%%                        Brighton BN1 9QH
%%%                        UK",
%%%     telephone       = "+44 273 606755 x 3238",
%%%     FAX             = "+44 273 678188",
%%%     checksum        = "???",
%%%     email           = "alanje@cogs.sussex.ac.uk",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "AFM, virtual fonts, fonts, PostScript, TeX",
%%%     supported       = "yes",
%%%     abstract        = "This LaTeX package contains commands for 
%%%                        documenting etx and mtx files from the 
%%%                        fontinst package.", 
%%%     docstring       = "The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%     package         = "fontinst",
%%%     dependencies    = "none",
%%%  }
%%% ====================================================================

\raggedright
\raggedbottom

\newdimen\a@dimen
\newcount\a@count
\newcount\slot@number

\let\plainint=\int

\def\identity#1{#1}
\def\x@cs#1#2{\expandafter#1\csname#2\endcsname}

\def\encoding{
   \bgroup
   \slot@number=0
}

\def\endencoding{\egroup}

\let\metrics=\encoding
\let\endmetrics=\endencoding

\def\needsfontinstversion#1{\Bheading{Needs fontinst v#1}}

\def\ifisglyph#1\then{\iftrue}
\def\ifisint#1\then{\iftrue}
\def\ifisdim#1\then{\iftrue}
\def\ifisstr#1\then{\iftrue}
\let\then=\iffalse

\def\Aheading#1{\par\medskip\noindent{\bf#1}\par}
\def\Bheading#1{\par\noindent{\bf#1}}

\def\setdim#1#2{\a@dimen=#2\relax\Bheading{Default} #1 = \the\a@dimen}
\def\setint#1#2{\Bheading{Default} #1 = $\expression0{#2}$}
\def\setstr#1#2{\Bheading{Default} #1 = #2}
   
\def\resetdim#1#2{\a@dimen=#2\relax\Bheading{Value} #1 = \the\a@dimen}
\def\resetint#1#2{\Bheading{Value} #1 = $\expression0{#2}$}
\def\resetstr#1#2{\Bheading{Value} #1 = #2}
   
\def\expression#1#2{\a@count=#1\relax#2}
\def\bracket#1{(#1)}
\def\priority#1#2{
   \ifnum\a@count<#1
      \let\next=\identity
   \else
      \let\next=\bracket
   \fi
   \next{#2}
}

\def\int#1{{\fam0#1}}
\def\width#1{w({\fam0#1})}
\def\height#1{h({\fam0#1})}
\def\depth#1{d({\fam0#1})}
\def\italic#1{i({\fam0#1})}
\def\kerning#1#2{k({\fam0#1})({\fam0#1})}

\def\neg#1{\priority8{-\expression6{#1}}}
\def\add#1#2{\priority2{\expression2{#1}+\expression2{#2}}}
\def\sub#1#2{\priority2{\expression3{#1}-\expression3{#2}}}
\def\mul#1#2{\priority4{\expression4{#1}\times\expression4{#2}}}
\def\div#1#2{\priority4{\expression5{#1}/\expression5{#2}}}
\def\max#1#2{\priority6{\expression6{#1}\sqcup\expression6{#2}}}
\def\min#1#2{\priority7{\expression7{#1}\sqcap\expression7{#2}}}
\def\scale#1#2{\div{\mul{#1}{#2}}{1000}}

\def\nextslot#1{\slot@number=#1\relax}
\def\setslot#1{\def\slot@name{#1}\Aheading{Slot \the\slot@number\space `#1'}}
\def\endsetslot{\advance\slot@number by 1\relax}

\def\ligature#1{\Bheading{Ligature} \csname doc-#1\endcsname}

\x@cs\def{doc-LIG}#1#2{$\fam0 \slot@name * #1 \rightarrow #2$}
\x@cs\def{doc-/LIG}#1#2{$\fam0 \slot@name * #1 \rightarrow \slot@name * #2$}
\x@cs\def{doc-LIG/}#1#2{$\fam0 \slot@name * #1 \rightarrow #2 * #1$}
\x@cs\def{doc-/LIG/}#1#2{$\fam0 \slot@name * #1 \rightarrow \slot@name * #2 * #1$}
\x@cs\def{doc-/LIG>}#1#2{$\fam0 \slot@name * #1 \rightarrow \slot@name + #2$}
\x@cs\def{doc-LIG/>}#1#2{$\fam0 \slot@name * #1 \rightarrow #2 + #1$}
\x@cs\def{doc-/LIG/>}#1#2{$\fam0 \slot@name * #1 \rightarrow \slot@name + #2 * #1$}
\x@cs\def{doc-/LIG/>>}#1#2{$\fam0 \slot@name * #1 \rightarrow \slot@name + #2 + #1$}

\def\comment{\par\noindent}

\def\nextlarger#1{\Bheading{Next larger} #1}
\def\varchar{\Bheading{Extensible glyph:}}
\def\vartop#1{\Bheading{Top} #1}
\def\varmid#1{\Bheading{Middle} #1}
\def\varbot#1{\Bheading{Bottom} #1}
\def\varrep#1{\Bheading{Repeated} #1}
\let\endvarchar\relax

\def\setkern#1#2#3{\Bheading{Kern} ${\fam0 #1 + #2} \rightarrow 
   \expression0{#3}$}
\def\setleftkerning#1#2#3{\Bheading{Kern} #1 on the left like #2 
   scaled $\expression0{#3}$}
\def\setrightkerning#1#2#3{\Bheading{Kern} #1 on the right like #2 
   scaled $\expression0{#3}$}

\def\setrawglyph#1#2#3#4#5#6#7#8{\Aheading{Glyph `#1'}
   \Bheading{Taken from} slot #4 in font #2}

\def\setglyph#1{\Aheading{Glyph `#1'}}
\def\endsetglyph{}

\def\resetglyph#1{\Aheading{Reset glyph `#1'}}
\def\reendsetglyph{}

\def\glyph#1#2{\Bheading{Glyph} #1 scaled $\expression0{#2}$}
\def\glyphrule#1#2{\Bheading{Rule} $\expression0{#1}$ by 
   $\expression0{#2}$}
\def\glyphspecial#1{\Bheading{Special} `#1'}
\def\glyphwarning#1{\Bheading{Warning} `#1'}
\def\movert#1{\Bheading{Rt}~$\expression0{#1}$}
\def\moveup#1{\Bheading{Up}~$\expression0{#1}$}
\def\push{\Bheading{Push}}
\def\pop{\Bheading{Pop}}

\def\setcommand#1{\ifx#1\undefined@command
   \expandafter\def\expandafter#1\else
   \expandafter\def\expandafter\a@command\fi}

\def\plain{{\tt plain}}

\endinput
