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

font_x.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=18 border=.1n bc=red csp=.1n cpd=.2n fgc=red4 bgc=beige \
               hal=c fsz='1.2 1.7' fst=\\*[*$1]
.            nr c# 0-1 1
.            nr y# 0 1
.            TR fst=HB fgc=blue
.              TD
.              nr x# 0-1 1
.              while (\\n+[x#] < 16) \{\
.                d2x \\n[x#]
.                  TD
.                    nop \&.\\*[hex#]
.              \}
.              TD
.
.            nr y# -1
.            while (\\n+[y#] < 17) \{\
.              TR
.                TD fgc=blue fst=HB
.                d2x \\n[y#]
.                  nop \\*[hex#].
.                nr x# 0-1 1
.                while (\\n+[x#] < 16) \{\
.                  TD
.                    if c \N'\\n+[c#]' \
.                      nop \N'\\n[c#]'
.                \}
.                TD fgc=blue fst=HB
.                d2x \\n[y#]
.                  nop \\*[hex#].
.            \}
.
.            TR fst=HB fgc=blue
.              TD
.              nr x# 0-1 1
.              while (\\n+[x#] < 16) \{\
.                d2x \\n[x#]
.                TD
.                  nop \&..\\*[hex#]
.              \}
.              TD
.          ETB
.    ETB
.  \}
..
.
.fontdump all
.
.time
.date
.
.\"	466MHz Celeron CPU, 384MB RAM
.\"	WindowsXP/cygwin groff18.1:	107s
.\"	WindowsXP/cygwin groff19.2:	390s
.\"	Suse Linux 9.3 groff19.2:	 66s
