12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # 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);
- }
|