|
|
1.1 ! root 1: /* fed.h 4.1 83/03/09 */ ! 2: /* ! 3: * fed.h: global definitions for font editor. ! 4: */ ! 5: ! 6: #include <stdio.h> ! 7: #include <ctype.h> ! 8: #include <vfont.h> ! 9: #include <signal.h> ! 10: #include <setjmp.h> ! 11: ! 12: /* current windows - what's on the screen */ ! 13: ! 14: #define SCRHI 360 /* number of pixels on the screen */ ! 15: #define SCRWID 720 /* width in pixels of the screen */ ! 16: #define NROW 3 /* number of rows of glyphs on the screen */ ! 17: #define NCOL 7 /* number of cols of glyphs in a row */ ! 18: #define NWIND (NROW*NCOL) /* number of windows */ ! 19: #define GLCOL 100 /* width of a glyph window */ ! 20: #define GLROW 100 /* height of a glyph window */ ! 21: #define GLPAD 3 /* number of pixels between windows */ ! 22: #define WINDSIZE (((GLCOL+7)>>3)*GLROW) /* size in bytes of a window */ ! 23: #define BASELINE 22 /* number of pixels below baseline in window */ ! 24: #define SLOPE (3.5) /* Amount to slant italic vertical line */ ! 25: /* equal to about 15.94 degrees */ ! 26: /* for 5 degree caligraphy slant use 11.43 */ ! 27: ! 28: #define ESC '\033' /* The ASCII escape character */ ! 29: ! 30: #define abs(x) ((x) < 0 ? (-(x)) : (x)) ! 31: #define max(x,y) ((x) > (y) ? (x) : (y)) ! 32: #define min(x,y) ((x) < (y) ? (x) : (y)) ! 33: ! 34: typedef char *bitmat; ! 35: ! 36: int changes; /* nonzero if changes since last write */ ! 37: char curchar; /* current character being edited */ ! 38: int curcurs; /* 1 if cursor is on now */ ! 39: int currb; /* 1 if rubber band lie is on now */ ! 40: int curs_r, curs_c; /* position in current window of graphics cursor */ ! 41: int curwind; /* current open window number */ ! 42: int curzoom; /* 1 to 9 - current zoom level of screen */ ! 43: int editing; /* in file I/O command, true if editing font */ ! 44: jmp_buf env; ! 45: long fbase; /* first loc in font file of bits */ ! 46: FILE * fontdes; /* open for reading, current font */ ! 47: char fontfile[100]; /* name of the font file */ ! 48: int hpensize; /* size of heavy pen in pixels diameter of dot */ ! 49: char msgbuf[100]; /* scratch space to sprintf into for messages */ ! 50: int nextwind; /* the next free window to grab */ ! 51: int oldzoom; /* the value of curzoom before a message */ ! 52: int pen_r, pen_c; /* row/col in current glyph of logical pen */ ! 53: int pencolor; /* 0=erase, 1=draw */ ! 54: int penweight; /* 0=fine, 1=heavy */ ! 55: int pointsize; /* point size of current font */ ! 56: int QUIET; /* true if -q flag */ ! 57: char stoutbuf[BUFSIZ]; /* for speed */ ! 58: FILE *trace; /* for debugging output */ ! 59: char tracebuf[BUFSIZ]; /* for speed */ ! 60: int und_p_r, und_p_c; /* pen_r, pen_c for undo */ ! 61: int und_c_r, und_c_c; /* curs_r, curs_c for undo */ ! 62: ! 63: struct header FontHeader; ! 64: struct dispatch disptable[256]; ! 65: ! 66: struct cwind { ! 67: bitmat val; /* what we are making it into */ ! 68: bitmat onscreen; /* what's currently on the screen */ ! 69: bitmat undval; /* the previous version */ ! 70: char used; /* the character using this window */ ! 71: } wind[NROW * NCOL]; ! 72: ! 73: struct cht { ! 74: int wherewind; /* >=0: window # on screen, -1: in file, -2: use whereat */ ! 75: bitmat whereat; /* where it can be found */ ! 76: int nrow, ncol; /* size of char */ ! 77: int rcent, ccent; /* bit location of lower left corner of main part of char */ ! 78: } cht[256]; ! 79: ! 80: struct place { ! 81: int c, r; ! 82: } base[NROW * NCOL]; /* lower left corner of each window */ ! 83: ! 84: char penmat[10][10]; /* 0 or 1 as the pen is. 5,5 is center */ ! 85: float sqrtmat[10][10]; /* table of sqrt(i**2+j**2) for speed */ ! 86: ! 87: char *rdchar(); ! 88: char esccmd(); ! 89: bitmat newmat(); ! 90: bitmat findbits(); ! 91: int onsig(); ! 92: int onintr(); ! 93: float sqrt(); ! 94: ! 95: int matcnt[10];
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.