static char sccsid
[] = "@(#)chktroff.c 4.1 (Berkeley) %G%";
static char *chktroff_sid
= "@(#)chktroff.c 1.2";
chktroff [-l] [-num] [file]
-num num is octal offset into file
file if specified, read from file, otherwise stdin
int stab
[] = {010,0,01,07,02,03,04,05,0211,06,0212,0213,0214,0215,0216,0217};
int rtab
[] = {6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 28, 36, 18};
while((--argc
> 0) && ((++argv
)[0][0]=='-')){
while(((j
= *ap
++ - '0') >= 0)
&& (j
<= 9))offset
= 8*offset
+j
;
if((fid
=open(argv
[0], 0)) < 0){
if((i
= getc()) != 0100){
printf("Not typesetter format file. Sorry.\n");
escd
= verd
= mcase
= railmag
= 0;
if(!lflg
)printf("Initialize\n");
while((i
= getc()) >= 0){
if(!lflg
)printf("%o ",i
);
if(!lflg
)printf("< %d\n",esc
);
if(!lflg
)printf("> %d\n",esc
);
if(!lflg
)printf("%o ",i
);
if(!i
){if(!lflg
)printf("\n"); continue;}
escd
= verd
= mcase
= railmag
= 0;
if(!lflg
)printf("Initialize\n");
case 0101: /*lower rail*/
if(!lflg
)printf("Lower rail\n");
case 0102: /*upper rail*/
if(!lflg
)printf("Upper rail\n");
if(!lflg
)printf("Upper mag\n");
if(!lflg
)printf("Lower mag\n");
case 0105: /*lower case*/
if(!lflg
)printf("Lower case\n");
case 0106: /*upper case*/
if(!lflg
)printf("Upper case\n");
case 0107: /*escape forward*/
if(!lflg
)printf("> mode, %d\n",esct
);
case 0110: /*escape backward*/
if(!lflg
)printf("< mode, %d\n",esct
);
if(!lflg
)printf("STOP\n");
case 0112: /*lead forward*/
if(!lflg
)printf("Lead forward, %d\n",leadtot
);
case 0114: /*lead backward*/
if(!lflg
)printf("Lead backward, %d\n",leadtot
);
if(!lflg
)printf("Undefined code\n");
if((i
& 0340) == 0140){ /*leading*/
if(!lflg
)printf("Lead %d\n",lead
);
f
= ((float)leadtot
/ (float)(144 * 12));
printf("Only %3.0f feet maximum per request. Sorry.\n",FEET
);
if((i
& 0360) == 0120){ /*size change*/
for(j
= 0; i
!= (stab
[j
] & 017); j
++);
printf("Size %d",rtab
[j
]);
if(!(osize
& DBL
) && (size
& DBL
))printf(", double\n");
else if((osize
& DBL
) && !(size
& DBL
))printf(", single\n");
if(railmag
!= 03)k
= asctab
[i
];
if(!lflg
)printf("%s\n",k
);
f1
= ((leadtot
* 3)/432.0)/12.0;
printf("Total bytes %ld, lead %d, feet %4.2f\n",bytetot
,leadtot
,f1
);
if(stop
!= 1 || init
!= 2){
printf("Error - wrong # init %d, # stop %d\n",init
,stop
);
if((i
=read(fid
,ibuf
,BUFSIZ
)) <= 0)ex();
"-", /*some horizontal line*/
0, /*partial derivative*/
0, /*cap (intersection)*/
"|", /*right ceiling (rt of ")*/
"|", /*left top (of big curly)*/
"|", /*left center of big curly bracket*/
"|", /*right center of big curly bracket*/
"|", /*right floor (rb of ")*/
"|", /*left floor (left bot of big sq bract)*/
"|", /*left ceiling (lt of ")*/
"*", /*telephone asterisk?*/