.\"	-*-	mode: roff	-*-
.ig

font_n.roff

This file is part of groff, the GNU roff type-setting system.

Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc.
written by Joachim Walsdorff <Joachim.Walsdorff@urz.uni-heidelberg.de>.

groff is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or
(at your option) any later version.

groff is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

..
.
.
.\"	******************************************************************
.\"	**		groff glyphs vs. character codes:		**
.\"	**	.fontdump [font1 font2 ...]				**
.\"	**		Print glyphs of font1, font2, ..., versus	**
.\"	**		character code.					**
.\"	**		`all' as fontname prints all fonts in the	**
.\"	**		specified string `fontpath'.			**
.\"	**		without arg: glyphs and codes of active font.	**
.\"	******************************************************************
.
.if !d sopath \
.  ds sopath
.
.so \*[sopath]examples/common.roff
.
.time start
.
.if !d fontpath \
.  ds fontpath @fontdir@
.
.de fontdump
.  ie \\n[.$] \
.    ds *args \\$*
.  el \
.    ds *args \\n[.fn]
.
.  pso sh -c \
       "echo -n .ds *f\ ; \
        ls \\*[fontpath]/dev\*[.T] \
        | tr '[:cntrl:]' ' '"
.  \"	This dummy line is necessary; the preceding line eats it.
.
.  while !"\\*[*args]"" \{\
.    pops *$1 *args
.
.    if "\\*[*$1]"all" \{\
.      ds *args \\*[*f] \\*[*args]
.      pops *$1 *args
.      nr *all 1 
.    \}
.
.    if \\n[*all] \{\
.      if "\\*[*$1]"." \
.        nr *all 0
.      if !F \\*[*$1] \
.        continue 
.    \}
.
.    t*index "\\*[*f]" \\*[*$1]
.
.    ie (\\n[.y] > 18) \
.      if !F \\*[*$1] \{\
.        tm \\n[.F]:\\n[.c]: Font \\*[*$1] not found.
.        continue 
.      \}
.    el \{\
.      if !\\n[t*index] \{\
.        tm \\n[.F]:\\n[.c]: Font \\*[*$1] not found.
.        continue 
.      \}
.
.      nr * \\n[.f]
.      ft \\*[*$1]
.      nr ** \\n[.f]
.      ft
.
.      if (\\n[**] == \\n[*]) \
.        continue 
.    \}
.
.    if \\n[t*cptn] \
.      bp
.
.    tm listing font `\\*[*$1]'...
.
.    TBL border=.1n bc=red cpd=0 csp=.1n bgc=
.      CPTN groff font \\*[*$1] \
            .br \
            val=b ".pso grep -e internalname \\*[fontpath]/dev\*[.T]/\\*[*$1]"
.      TR 
.        TD
.          TBL cols=12 border=.1n bc=red csp=.1n cpd=.2n fgc=red4 bgc=beige \
               hal=c fsz='1.2 1.2' fst=\\*[*$1]
.            nr c# 0-1 1
.            nr y# 0-1 1
.            TR fst=HB fgc=blue 
.              TD 
.                nr x# 0-1 1
.                \" following 4 `PN's instead of 4 while-loops as in
.                \" font_x.roff; short and easy to write, but a little
.                \" bit slower.
.              PN 10 .TD \
                 \&..\\\\n+[x#]
.              TD
.
.            PN 27 .TR \
               ".TD fgc=blue fst=HB" \
                 \\\\n+[y#]. \
               ".PN 10 .TD \
                 "".if c \N'\En+[c#]' \
                   \N'\En[c#]'""" \
               ".TD fgc=blue fst=HB" \
                 \\\\n[y#].
.
.            TR fst=HB fgc=blue 
.              TD 
.                nr x# 0-1 1
.              PN 10 .TD \
                 \&..\\\\n+[x#]
.              TD 
.          ETB 
.    ETB 
.  \}
..
.
.fontdump all
.
.time
.date
.
.\"	466MHz Celeron CPU, 384MB RAM 
.\"	WindowsXP/cygwin groff18.1:	115s
.\"	WindowsXP/cygwin groff19.2:	450s
.\"	Suse Linux 9.3 groff19.2:	 76s
