Annotation of researchv10no/cmd/eqn/size.c, revision 1.1

1.1     ! root        1: #include "e.h"
        !             2: #include <ctype.h>
        !             3: 
        !             4: void setsize(char *p)  /* set size as found in p */
        !             5: {
        !             6:        nszstack++;
        !             7:        szstack[nszstack] = 0;          /* assume relative */
        !             8:        if (*p == '+') {
        !             9:                ps += atoi(p+1);
        !            10:                if (szstack[nszstack-1] != 0)   /* propagate absolute size */
        !            11:                        szstack[nszstack] = ps;
        !            12:        } else if (*p == '-') {
        !            13:                ps -= atoi(p+1);
        !            14:                if (szstack[nszstack-1] != 0)
        !            15:                        szstack[nszstack] = ps;
        !            16:        } else if (isdigit(*p)) {
        !            17:                if (szstack[nszstack-1] == 0)
        !            18:                        printf(".nr %d \\n(.s\n", 99-nszstack);
        !            19:                else
        !            20:                        printf(".nr %d %d\n", 99-nszstack, ps);
        !            21:                szstack[nszstack] = ps = atoi(p);
        !            22:        } else {
        !            23:                ERROR "illegal size %s ignored", p WARNING;
        !            24:        }
        !            25:        dprintf(".\tsetsize %s; ps = %d\n", p, ps);
        !            26: }
        !            27: 
        !            28: void size(int p1, int p2)
        !            29: {
        !            30:                /* old size in p1, new in ps */
        !            31:        yyval = p2;
        !            32:        dprintf(".\tS%d <- \\s%d %d \\s%d; b=%g, h=%g\n", 
        !            33:                yyval, ps, p2, p1, ebase[yyval], eht[yyval]);
        !            34:        if (szstack[nszstack] != 0) {
        !            35:                printf(".ds %d %s\\*(%d\\s\\n(%d\n", yyval, ABSPS(ps), p2, 99-nszstack);
        !            36:        } else
        !            37:                printf(".ds %d %s\\*(%d%s\n", yyval, DPS(p1,ps), p2, DPS(ps,p1));
        !            38:        nszstack--;
        !            39:        ps = p1;
        !            40: }
        !            41: 
        !            42: void globsize(void)
        !            43: {
        !            44:        char temp[20];
        !            45: 
        !            46:        getstr(temp, sizeof(temp));
        !            47:        if (temp[0] == '+') {
        !            48:                gsize += atoi(temp+1);
        !            49:                if (szstack[0] != 0)
        !            50:                        szstack[0] = gsize;
        !            51:        } else if (temp[0] == '-') {
        !            52:                gsize -= atoi(temp+1);
        !            53:                if (szstack[0] != 0)
        !            54:                        szstack[0] = gsize;
        !            55:        } else  if (isdigit(temp[0])) {
        !            56:                gsize = atoi(temp);
        !            57:                szstack[0] = gsize;
        !            58:                printf(".nr 99 \\n(.s\n");
        !            59:        } else {
        !            60:                ERROR "illegal gsize %s ignored", temp WARNING;
        !            61:        }
        !            62:        yyval = eqnreg = 0;
        !            63:        ps = gsize;
        !            64:        if (gsize < 12 && !dps_set)             /* sub and sup size change */
        !            65:                deltaps = gsize / 3;
        !            66:        else if (gsize < 20)
        !            67:                deltaps = gsize / 4;
        !            68:        else
        !            69:                deltaps = gsize / 5;
        !            70: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.