int vnumb(int *i) { vflag++; dfact = lss; res = VERT; return(inumb(i)); }
void casebp(void) { register int i; register struct s *savframe; if (dip != d) return; savframe = frame; if (skip(0)) i = -1; else { if ((i = inumb(&numtab[PN].val)) < 0) i = 0; if (nonumb) i = -1; } tbreak(); if (i >= 0) { npn = i; npnflg++; } else if (dip->nls && donef < 1) return; eject(savframe); }
Tchar n_setht(void) /* set character height from \H'...' */ { getch(); inumb(&apts); getch(); return(0); }
Tchar n_setslant(void) /* set slant from \S'...' */ { int n; getch(); n = 0; n = inumb(&n); getch(); return(0); }
void casespreadwarn(void) { if (skip(0)) spreadwarn = !spreadwarn; else { dfact = EM; spreadlimit = inumb(&spreadlimit); spreadwarn = 1; } }
void casels(void) { register int i; noscale++; if (skip(0)) i = ls1; else i = max(inumb(&ls), 1); ls1 = ls; ls = i; noscale = 0; }
void casepn(void) { register int i; skip(1); noscale++; i = max(inumb(&numtab[PN].val), 0); prwatchn(&numtab[PN]); noscale = 0; if (!nonumb) { npn = i; npnflg++; } }
void casept(void) { int i; noscale++; if (skip()) i = trace1; else { i = max(inumb(&trace), 0); if (nonumb) i = trace1; } trace1 = trace; trace = i; noscale = 0; }
Tchar n_setabs(void) /* set absolute char from \C'...' */ { /* for now, a no-op */ int n; getch(); n = 0; n = inumb(&n); getch(); if (nonumb) return 0; if (n >= nchtab + ALPHABET) { ERROR "\\N'%d' toooo large", n WARN; return 0; } return n + nchtab + ALPHABET; }
void n_casevs(void) { int i; skip(); vflag++; dfact = INCH; /*default scaling is points!*/ dfactd = 72; res = VERT; i = inumb(&lss); if (nonumb) i = lss1; if (i < VERT) i = VERT; /* was VERT */ lss1 = lss; lss = i; }
static int readpenalty(int *valp) { int n, _t; _t = dpenal ? dpenal - INFPENALTY0 - 1 : 0; noscale++; n = inumb(&_t); noscale--; if (nonumb) return 0; if (n > INFPENALTY0) n = INFPENALTY0; else if (n < -INFPENALTY0) n = -INFPENALTY0; n += INFPENALTY0 + 1; *valp = n; return 1; }
void casenm(void) { register int i; lnmod = nn = 0; if (skip(0)) return; lnmod++; noscale++; i = inumb(&numtab[LN].val); if (!nonumb) numtab[LN].val = max(i, 0); prwatchn(&numtab[LN]); getnm(&ndf, 1); getnm(&nms, 0); getnm(&ni, 0); noscale = 0; nmbits = chbits; }
/* * .nr request; if tracing, don't check optional * 2nd argument because tbl generates .in 1.5n */ void casenr(void) { int i, j; int savtr = trace; lgf++; skip(); if ((i = findr(getrq())) == -1) goto rtn; skip(); j = inumb(&numtabp[i].val); if (nonumb) goto rtn; numtabp[i].val = j; skip(); trace = 0; j = atoi0(); /* BUG??? */ trace = savtr; if (nonumb) goto rtn; numtabp[i].inc = j; rtn: return; }
int hnumb(int *i) { dfact = EM; res = HOR; return(inumb(i)); }