static char sccsid
[]="@(#)n6.c 1.1 (CWI) 86/08/14";
* n6.c -- width functions, sizes and fonts
int bdtab
[NFONT
+1] ={ 0, 0, 0, 3, 3, 0, };
int fontlab
[NFONT
+1] = { 0, 'R', 'I', 'B', PAIR('B','I'), 'S', 0 };
if ((*s
++ = getach()) == 0 || (*s
++ = getach()) == 0)
if ((j
= findch(temp
)) > 0)
tchar
setabs() /* set absolute char from \C'...' */
if ((k
= i
- '0') >= 0 && k
<= nfonts
&& k
< smnt
)
for (k
= 0; fontlab
[k
] != i
; k
++)
sps
= width(' ' | chbits
);
if (isdigit(i
)) { /* \sd or \sdd */
else if (i
<= 3 && isdigit(j
= cbits(ch
=getch()))) { /* \sdd */
} else if (i
== '(') { /* \s(dd */
} else if (i
== '+' || i
== '-') { /* \s+, \s- */
if (isdigit(j
)) { /* \s+d, \s-d */
} else if (j
== '(') { /* \s+(dd, \s-(dd */
if (((i
= cbits(getch())) == '+' || i
== '-') && (j
= cbits(ch
= getch()) - '0') >= 0 && j
<= 9) {
/* removed if (i <= 3 && */
if (i
<= 3 && (j
= cbits(ch
= getch()) - '0') >= 0 && j
<= 9) {
tchar
setht() /* set character height from \H'...' */
tchar
setslant() /* set slant from \S'...' */
if (i
== 'S' || i
== '0')
if ((j
= findft(i
, fontlab
)) == -1)
int savhp
, savapts
, savapts1
, savfont
, savfont1
, savpts
, savpts1
;
base
= numtab
[ST
].val
= numtab
[ST
].val
= wid
= numtab
[CT
].val
= 0;
while (cbits(i
= getch()) != delim
&& !nlflg
) {
emsz
= (INCH
* pts
+ 36) / 72;
if (base
< numtab
[SB
].val
)
if ((k
= base
+ emsz
) > numtab
[ST
].val
)
setn1(wid
, 0, (tchar
) 0);
if ((i
= cbits(getch()) - '0') < 0 || i
> nfonts
)
if (skip() || !(j
= getrq()))
if (skip() || !(i
= getrq()) || (j
= findft(i
)) == -1) {
dfact
= INCH
; /*default scaling is points!*/
/* two successive tchars.
/* the first contains HX, the second the value,
/* encoded as a vertical motion.
/* decoding is done in n2.c by pchar().
*pbp
++ = MOT
| VMOT
| NMOT
| -i
;