.\" -*- mode: roff -*- .ig font_n.roff This file is part of groff, the GNU roff type-setting system. Copyright (C) 2005, 2006 Free Software Foundation, Inc. written by Joachim Walsdorff . 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 2, 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 groff; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. .. . . .\" ****************************************************************** .\" ** 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. ** .\" ****************************************************************** . .time start . .if !d fontpath \ . ds fontpath @fontdir@ . .de fontdump . ie \\n[.$] \ . ds *args \\$* . el \ . ds *args \\n[.fn] . . pso bash -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 . \} . . index "\\*[*f]" \\*[*$1] . . ie (\\n[.y] > 18) \ . if !F \\*[*$1] \{\ . tm \\n[.F]:\\n[.c]: Font \\*[*$1] not found. . continue . \} . el \{\ . if !\\n[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