Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

# include "e.h"

void setfont(char *ch1)
{
        yyval = ft;
        if (strcmp(ch1, "I") == 0) {    /* I and italic mean merely position 2 */
                *ch1 = '2';
                ft = ITAL;
        } else if (strcmp(ch1, "B") == 0) {     /* and similarly for B & bold */
                *ch1 = '3';
                ft = BLD;
        } else if (strcmp(ch1, "R") == 0) {     /* and R and roman */
                *ch1 = '1';
                ft = ROM;
        } else {
                ft = ROM;       /* assume it's a roman style */
        }
        ftp++;
        if (ftp >= &ftstack[10])
                ERROR "font stack overflow (10)" FATAL;
        ftp->ft = ft;
        if (ch1[1] == 0) {      /* 1-char name */
                ftp->name[0] = *ch1;
                ftp->name[1] = '\0';
        } else
                sprintf(ftp->name, "(%s", ch1);
        dprintf(".\tsetfont %s %c\n", ch1, ft);
}

void font(int p1, int p2)
{
                /* old font in p1, new in ft */
        yyval = p2;
        lfont[yyval] = rfont[yyval] = ft==ITAL ? ITAL : ROM;
        ftp--;
        ft = p1;
}

void globfont(void)
{
        char temp[20];

        getstr(temp, sizeof(temp));
        yyval = eqnreg = 0;
        if (strcmp(temp, "I") == 0 || strncmp(temp, "it", 2) == 0) {
                ft = ITAL;
                strcpy(temp, "2");
        } else if (strcmp(temp, "B") == 0 || strncmp(temp, "bo", 2) == 0) {
                ft = BLD;
                strcpy(temp, "3");
        } else if (strcmp(temp, "R") == 0 || strncmp(temp, "ro", 2) == 0) {
                ft = ROM;
                strcpy(temp, "1");
        } else { 
                ft = ROM;       /* assume it's a roman style */
        }
        ftstack[0].ft = ft;
        if (temp[1] == 0)       /* 1-char name */
                strcpy(ftstack[0].name, temp);
        else
                sprintf(ftstack[0].name, "(%.2s", temp);
}

void fatbox(int p)
{
        extern double Fatshift;

        yyval = p;
        printf(".ds %d \\*(%d\\h'-\\w'\\*(%d'u+%gm'\\*(%d\n", p, p, p, Fatshift, p);
}