summaryrefslogtreecommitdiff
path: root/dviware/kane/checkpage.h
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/kane/checkpage.h
Initial commit
Diffstat (limited to 'dviware/kane/checkpage.h')
-rw-r--r--dviware/kane/checkpage.h199
1 files changed, 199 insertions, 0 deletions
diff --git a/dviware/kane/checkpage.h b/dviware/kane/checkpage.h
new file mode 100644
index 0000000000..8deecaa9bc
--- /dev/null
+++ b/dviware/kane/checkpage.h
@@ -0,0 +1,199 @@
+
+Date: 20-MAR-1989 17:21:05 GMT
+From: PHYOKANE@CS8700.UCG.IE
+To: abbottp@ASTON.AC.UK
+Subject: file checkpage.h
+sender: hea"phyokane@cs8700.ucg.ie" <phyokane@cs8700.ucg.ie>
+
+/* -*-C-*- checkpage.h */
+/*-->checkpage*/
+/**********************************************************************/
+/***************************** checkpage ******************************/
+/**********************************************************************/
+void
+checkpage(bytepos) /* check page whose BOP is at bytepos */
+long bytepos;
+
+{
+ register BYTE command; /* current command */
+ register INT16 i; /* command parameter; loop index */
+ char tc; /* temporary character */
+ INT32 k; /* temporary parameter */
+ INT16 page_number; /* TeX's \count0 parameter */
+ BOOLEAN seen_bop; /* flag for noting processing of BOP */
+
+/***********************************************************************
+Check all commands between the BOP at bytepos and the next EOP, downloading
+any characters not already loaded.
+***********************************************************************/
+
+ seen_bop = FALSE; /* this is first time through */
+ (void) FSEEK(dvifp,bytepos,0); /* start at the desired position */
+ for (;;) /* "infinite" loop - exits when POST or second BOP met */
+ {
+ command = (BYTE)nosignex(dvifp,(BYTE)1);
+ switch (command)
+ {
+
+ case SET1:
+ case SET2:
+ case SET3:
+ case SET4:
+ (void)checkchldd((BYTE)nosignex(dvifp,(BYTE)(command-SET1+1)));
+ break;
+
+ case SET_RULE:
+ (void) nosignex(dvifp,(BYTE)4);
+ (void) nosignex(dvifp,(BYTE)4);
+ break;
+
+ case PUT1:
+ case PUT2:
+ case PUT3:
+ case PUT4:
+ (void)checkchldd((BYTE)nosignex(dvifp,(BYTE)(command-PUT1+1)));
+ break;
+
+ case PUT_RULE:
+ (void) nosignex(dvifp,(BYTE)4);
+ (void) nosignex(dvifp,(BYTE)4);
+ break;
+
+ case NOP:
+ break;
+
+ case BOP:
+ if (seen_bop)
+ return; /* we have been here already */
+ seen_bop = TRUE;
+
+ for (i=0; i<=9; i++)
+ (void)(INT32)signex(dvifp,(BYTE)4);
+ if (!quiet)
+ (void)fprintf(stderr,"*");
+
+ (void) nosignex(dvifp,(BYTE)4); /* skip prev. page ptr */
+ (void)bopact();
+ fontptr = (struct font_entry*)NULL;
+ break;
+
+ case EOP:
+ return;
+
+ case PUSH:
+ break;
+
+ case POP:
+ break;
+
+ case RIGHT1:
+ case RIGHT2:
+ case RIGHT3:
+ case RIGHT4:
+ (void)signex(dvifp,(BYTE)(command-RIGHT1+1));
+ break;
+
+ case W0:
+ break;
+
+ case W1:
+ case W2:
+ case W3:
+ case W4:
+ (void)signex(dvifp,(BYTE)(command-W1+1));
+ break;
+
+ case X0:
+ break;
+
+ case X1:
+ case X2:
+ case X3:
+ case X4:
+ (void)signex(dvifp,(BYTE)(command-X1+1));
+ break;
+
+ case DOWN1:
+ case DOWN2:
+ case DOWN3:
+ case DOWN4:
+ (void)signex(dvifp,(BYTE)(command-DOWN1+1));
+ break;
+
+ case Y0:
+ break;
+
+ case Y1:
+ case Y2:
+ case Y3:
+ case Y4:
+ (void)signex(dvifp,(BYTE)(command-Y1+1));
+ break;
+
+ case Z0:
+ break;
+
+ case Z1:
+ case Z2:
+ case Z3:
+ case Z4:
+ (void) signex(dvifp,(BYTE)(command-Z1+1));
+ break;
+
+ case FNT1:
+ case FNT2:
+ case FNT3:
+ case FNT4:
+ (void)setfntnm((INT32)nosignex(dvifp,
+ (BYTE)(command-FNT1+1)));
+ break;
+
+ case XXX1:
+ case XXX2:
+ case XXX3:
+ case XXX4:
+ k = (INT32)nosignex(dvifp,(BYTE)(command-XXX1+1));
+ while (k--)
+ {
+ (void)nosignex(dvifp,(BYTE)1);
+ }
+ break;
+
+ case FNT_DEF1:
+ case FNT_DEF2:
+ case FNT_DEF3:
+ case FNT_DEF4:
+ if (preload)
+ (void)skipfont ((INT32) nosignex(dvifp,
+ (BYTE)(command-FNT_DEF1+1)));
+ else
+ (void)readfont ((INT32) nosignex(dvifp,
+ (BYTE)(command-FNT_DEF1+1)));
+ break;
+
+ case PRE:
+ (void)fatal("checkpage(): PRE occurs within file");
+ break;
+
+ case POST:
+ break;
+
+ case POST_POST:
+ (void)fatal("checkpage(): POST_POST with no preceding POST");
+ break;
+
+ default:
+ if (command >= FONT_00 && command <= FONT_63)
+ (void)setfntnm((INT32)(command - FONT_00));
+ else if (command >= SETC_000 && command <= SETC_127)
+ (void)checkchldd((BYTE)(command-SETC_000));
+ else
+ {
+ (void)sprintf(message,"checkpage(): %d is an undefined command",
+ command);
+ (void)fatal(message);
+ }
+ break;
+ }
+ }
+ }