static char *sccsid
= "@(#)vfontinfo.c 4.1 (Berkeley) 10/1/80";
/* Font Information for VCat-style fonts
* Modified to print Ascii chars 1/80 by Mark Horton
struct header FontHeader
;
struct dispatch disptable
[256] ;
char *charswanted
= defascii
;
if (argc
> 1 && argv
[1][0] == '-') {
printf("Bad flag: %s\n", argv
[1]);
fprintf(stderr
,"Usage: %s filename", argv
[0]);
sprintf(IName
,"/usr/lib/vfont/%s",argv
[1]);
if ((FID
= open(argv
[1],0)) < 0)
if ((FID
= open(IName
,0)) < 0) {
printf("Can't find %s\n",argv
[1]);
if (read(FID
,&FontHeader
,sizeof FontHeader
) != sizeof FontHeader
)
error("Bad header in Font file.");
if (read(FID
,&disptable
[0],sizeof disptable
) != sizeof disptable
)
error("Bad dispatch table in Font file");
fbase
= sizeof FontHeader
+ sizeof disptable
;
if (FontHeader
.magic
!= 0436)
printf("Magic number %o wrong\n", FontHeader
.magic
);
printf("Font %s, ",argv
[1]);
printf("raster size %d, ",FontHeader
.size
);
printf("max width %d, max height %d, xtend %d\n",
FontHeader
.maxx
, FontHeader
.maxy
,FontHeader
.xtend
);
printf("\n ASCII offset size left right up down width \n");
if (disptable
[j
].nbytes
!= 0) {
printf(" %3o %2s %4d %4d %4d %4d %4d %4d %5d\n",
int len
= disptable
[j
].nbytes
;
lseek(FID
, fbase
+disptable
[j
].addr
, 0);
read(FID
, charbits
, len
);
H
= (disptable
[j
].up
) + (disptable
[j
].down
);
W
= (disptable
[j
].left
) + (disptable
[j
].right
);
for (last
=W
-1; last
>= 0; last
--)
for (l
=0; l
<=last
; l
++) {
printf("%c", fbit(k
,l
)?'M':' ');
printf("\nvfontinfo: %s\n",string
);
ret
[0] = isprint(c
) ? ' ' : '^';
ret
[1] = isprint(c
) ? c
: c
^0100;
int thisbyte
, thisbit
, ret
;
thisbyte
= charbits
[row
*WB
+ (col
>>3)] & 0xff;
thisbit
= 0x80 >> (col
&7);
ret
= thisbyte
& thisbit
;