Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!usc!brutus.cs.uiuc.edu!apple!uokmax!munnari.oz.au!cluster!metro!news From: glenn@extro.ucc.su.oz.au (G Geers) Newsgroups: comp.unix.xenix Subject: LaTeX for Xenix (4 of 14) Message-ID: <1990Feb15.233644.2484@metro.ucc.su.oz.au> Date: 15 Feb 90 23:36:44 GMT Reply-To: glenn@extro.ucc.su.oz.au (G Geers) Organization: University Computing Service, Uni. of Sydney, Australia. Lines: 1874 ---- Cut Here and unpack ---- #!/bin/sh # this is part 4 of a multipart archive # do not concatenate these parts, unpack them in order with /bin/sh # file boxlists.c continued # CurArch=4 if test ! -r s2_seq_.tmp then echo "Please unpack part 1 first!" exit 1; fi ( read Scheck if test "$Scheck" != $CurArch then echo "Please unpack part $Scheck next!" exit 1; else exit 0; fi ) < s2_seq_.tmp || exit 1 echo "x - Continuing file boxlists.c" sed 's/^X//' << 'SHAR_EOF' >> boxlists.c X} X X Xhelp_align_error () X{ X help5("I can't figure out why you would want to use a tab mark", X "or \\cr or \\span just now. If something like a right brace", X "up above has ended a previous alignment prematurely,", X "you're probably due for more error messages, and you", X "might try typing `S' now just to see what is salvageable."); X} X X Xhelp_align_cr () X{ X help1("I'm guessing that you meant to end an alignment here."); X} X X Xhelp_fix_alignment () X{ X help3("I've put in what seems to be necessary to fix", X "the current column of the current alignment.", X "Try to go on, since this might almost work."); X} X X Xhelp_noalign () X{ X help2("I expect to see \\noalign only after the \\cr of", X "an alignment. Proceed, and I'll ignore this case."); X} X X Xhelp_omit () X{ X help2("I expect to see \\omit only after tab marks or the \\cr of", X "an alignment. Proceed, and I'll ignore this case."); X} X X Xhelp_csname () X{ X help1("I'm ignoring this, since I wasn't doing a \\csname."); X} SHAR_EOF echo "File boxlists.c is complete" chmod 0444 boxlists.c || echo "restore of boxlists.c fails" set `wc -c boxlists.c`;Sum=$1 if test "$Sum" != "21019" then echo original size 21019, current size $Sum;fi echo "x - extracting boxlists.h (Text)" sed 's/^X//' << 'SHAR_EOF' > boxlists.h && X X/* X * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved. X * Copying of this file is granted according to the provisions X * specified in the file COPYING which must accompany this file. X */ X X X/* X * boxlists.h X */ X Xint append_glue(); X X#define FIL_CODE 0 X#define FILL_CODE 1 X#define SS_CODE 2 X#define FIL_NEG_CODE 3 X#define SKIP_CODE 4 X#define MSKIP_CODE 5 X Xint append_kern(); X Xint handle_right_brace(); Xint extra_right_brace(); X Xglobal ptr cur_box; X Xint begin_box(); Xint scan_box(); Xint scan_spec(); Xint package(); X Xint box_end(); X X#define BOX_FLAG 010000000000 X#define SHIP_OUT_FLAG (BOX_FLAG + 512) X#define LEADER_FLAG (BOX_FLAG + 513) X#define BOX_CODE 0 X#define COPY_CODE 1 X#define LAST_BOX_CODE 2 X#define VSPLIT_CODE 3 X#define VTOP_CODE 4 X Xint normal_paragraph(); Xint new_graf(); Xint indent_in_hmode(); Xint head_for_vmode(); Xint end_graf(); Xint append_to_vlist(); Xint begin_insert_or_adjust(); Xint make_mark(); Xint append_penalty(); Xint delete_skip(); Xint unpackage(); Xint append_italic_correction(); Xint append_discretionary(); Xint build_discretionary(); Xint make_accent(); Xint align_error(); Xint no_align_error(); Xint omit_error(); Xint do_endv(); Xint cs_error(); SHAR_EOF chmod 0444 boxlists.h || echo "restore of boxlists.h fails" set `wc -c boxlists.h`;Sum=$1 if test "$Sum" != "1217" then echo original size 1217, current size $Sum;fi echo "x - extracting char.c (Text)" sed 's/^X//' << 'SHAR_EOF' > char.c && X X/* X * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved. X */ X X X/* X * char.c X */ X X#include "tex.h" X#include "char.h" X X Xascii xord[128]; Xchar xchr[128]; X Xinit_char () X{ X int i; X X xchr[040] = ' '; X xchr[041] = '!'; X xchr[042] = '"'; X xchr[043] = '#'; X xchr[044] = '$'; X xchr[045] = '%'; X xchr[046] = '&'; X xchr[047] = '\''; X xchr[050] = '('; X xchr[051] = ')'; X xchr[052] = '*'; X xchr[053] = '+'; X xchr[054] = ','; X xchr[055] = '-'; X xchr[056] = '.'; X xchr[057] = '/'; X xchr[060] = '0'; X xchr[061] = '1'; X xchr[062] = '2'; X xchr[063] = '3'; X xchr[064] = '4'; X xchr[065] = '5'; X xchr[066] = '6'; X xchr[067] = '7'; X xchr[070] = '8'; X xchr[071] = '9'; X xchr[072] = ':'; X xchr[073] = ';'; X xchr[074] = '<'; X xchr[075] = '='; X xchr[076] = '>'; X xchr[077] = '?'; X xchr[0100] = '@'; X xchr[0101] = 'A'; X xchr[0102] = 'B'; X xchr[0103] = 'C'; X xchr[0104] = 'D'; X xchr[0105] = 'E'; X xchr[0106] = 'F'; X xchr[0107] = 'G'; X xchr[0110] = 'H'; X xchr[0111] = 'I'; X xchr[0112] = 'J'; X xchr[0113] = 'K'; X xchr[0114] = 'L'; X xchr[0115] = 'M'; X xchr[0116] = 'N'; X xchr[0117] = 'O'; X xchr[0120] = 'P'; X xchr[0121] = 'Q'; X xchr[0122] = 'R'; X xchr[0123] = 'S'; X xchr[0124] = 'T'; X xchr[0125] = 'U'; X xchr[0126] = 'V'; X xchr[0127] = 'W'; X xchr[0130] = 'X'; X xchr[0131] = 'Y'; X xchr[0132] = 'Z'; X xchr[0133] = '['; X xchr[0134] = '\\'; X xchr[0135] = ']'; X xchr[0136] = '^'; X xchr[0137] = '_'; X xchr[0140] = '`'; X xchr[0141] = 'a'; X xchr[0142] = 'b'; X xchr[0143] = 'c'; X xchr[0144] = 'd'; X xchr[0145] = 'e'; X xchr[0146] = 'f'; X xchr[0147] = 'g'; X xchr[0150] = 'h'; X xchr[0151] = 'i'; X xchr[0152] = 'j'; X xchr[0153] = 'k'; X xchr[0154] = 'l'; X xchr[0155] = 'm'; X xchr[0156] = 'n'; X xchr[0157] = 'o'; X xchr[0160] = 'p'; X xchr[0161] = 'q'; X xchr[0162] = 'r'; X xchr[0163] = 's'; X xchr[0164] = 't'; X xchr[0165] = 'u'; X xchr[0166] = 'v'; X xchr[0167] = 'w'; X xchr[0170] = 'x'; X xchr[0171] = 'y'; X xchr[0172] = 'z'; X xchr[0173] = '{'; X xchr[0174] = '|'; X xchr[0175] = '}'; X xchr[0176] = '~'; X xchr[0177] = xchr[000] = ' '; X for (i = 1; i <= 037; incr(i)) X xchr[i] = ' '; X xchr[FORM_FEED] = '\l'; X xchr[TAB] = '\t'; X xchr[NUL] = '\0'; X X for (i = FIRST_TEXT_CHAR; i <= LAST_TEXT_CHAR; incr(i)) X xord[xchr[i]] = INVALID_CODE; X X for (i = 1; i <= 0176; incr(i)) X xord[xchr[i]] = i; X xord[xchr[NULL_CODE]] = NULL_CODE; X} SHAR_EOF chmod 0444 char.c || echo "restore of char.c fails" set `wc -c char.c`;Sum=$1 if test "$Sum" != "2296" then echo original size 2296, current size $Sum;fi echo "x - extracting char.h (Text)" sed 's/^X//' << 'SHAR_EOF' > char.h && X X/* X * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved. X * Copying of this file is granted according to the provisions X * specified in the file COPYING which must accompany this file. X */ X X X/* X * char.h X */ X Xglobal ascii xord[]; X X#define FIRST_ASCII_CODE 0 X#define LAST_ASCII_CODE 127 X Xglobal char xchr[]; X X#define FIRST_TEXT_CHAR 0 X#define LAST_TEXT_CHAR 127 X X#define TAB 011 X#define FORM_FEED 014 X#define CARRIAGE_RETURN 015 X#define NULL_CODE 000 X#define INVALID_CODE 0177 X Xint init_char(); SHAR_EOF chmod 0444 char.h || echo "restore of char.h fails" set `wc -c char.h`;Sum=$1 if test "$Sum" != "540" then echo original size 540, current size $Sum;fi echo "x - extracting cmds.c (Text)" sed 's/^X//' << 'SHAR_EOF' > cmds.c && X X/* X * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved. X * Copying of this file is granted according to the provisions X * specified in the file COPYING which must accompany this file. X */ X X X/* X * cmds.c X */ X X#include "tex.h" X#include "texext.h" X#include "heap.h" X#include "eq.h" X#include "eqstack.h" X#include "str.h" X#include "hash.h" X#include "token.h" X#include "tokenlists.h" X#include "tokenstack.h" X#include "scan.h" X#include "evalstack.h" X#include "def.h" X#include "cond.h" X#include "expand.h" X#include "box.h" X#include "boxlists.h" X#include "tfm.h" X#include "math.h" X#include "mathlists.h" X#include "align.h" X#include "error.h" X#include "print.h" X#include "cmds.h" X X#define chr_cmd(S) \ X {print(S); print_ASCII(chr_code);} X Xshow_cur_cmd_chr() X{ X begin_diagnostic(); X print_nl("{"); X if (mode != shown_mode) { X print_mode(mode); X print(": "); X shown_mode = mode; X } X print_cmd_chr(cur_cmd, cur_chr); X print_char('}'); X end_diagnostic(FALSE); X} X Xprint_cmd_chr (cmd, chr_code) X qword cmd; X hword chr_code; X{ X switch (cmd) X { X case RELAX: X print_esc("relax"); X break; X X case LEFT_BRACE: X chr_cmd("begin-group character "); X break; X X case RIGHT_BRACE: X chr_cmd("end-group character "); X break; X X case MATH_SHIFT: X chr_cmd("math shift character "); X break; X X case TAB_MARK: X if (chr_code == SPAN_CODE) X print_esc("span"); X else chr_cmd("alignment tab character "); X break; X X case CAR_RET: X if (chr_code == CR_CODE) X print_esc("cr"); X else print_esc("crcr"); X break; X X case MAC_PARAM: X chr_cmd("macro parameter character "); X break; X X case SUP_MARK: X chr_cmd("superscript character "); X break; X X case SUB_MARK: X chr_cmd("subscript character "); X break; X X case ENDV: X print("end of alignment template"); X break; X X case SPACER: X chr_cmd("blank space "); X break; X X case LETTER: X chr_cmd("the letter "); X break; X X case OTHER_CHAR: X chr_cmd("the character "); X break; X X case ASSIGN_GLUE: X case ASSIGN_MU_GLUE: X if (chr_code < SKIP_BASE) X print_skip_param(chr_code - GLUE_BASE); X else if (chr_code < MU_SKIP_BASE) { X print_esc("skip"); X print_int(chr_code - SKIP_BASE); X } else { X print_esc("muskip"); X print_int(chr_code - MU_SKIP_BASE); X } X break; X X case ASSIGN_TOKS: X if (chr_code >= TOKS_BASE) { X print_esc("toks"); X print_int(chr_code - TOKS_BASE); X } else { X switch (chr_code) X { X case OUTPUT_ROUTINE_LOC: X print_esc("output"); X break; X X case EVERY_PAR_LOC: X print_esc("everypar"); X break; X X case EVERY_MATH_LOC: X print_esc("everymath"); X break; X X case EVERY_DISPLAY_LOC: X print_esc("everydisplay"); X break; X X case EVERY_HBOX_LOC: X print_esc("everyhbox"); X break; X X case EVERY_VBOX_LOC: X print_esc("everyvbox"); X break; X X case EVERY_JOB_LOC: X print_esc("everyjob"); X break; X X case EVERY_CR_LOC: X print_esc("everycr"); X break; X X default: X print_esc("errhelp"); X break; X } X } X break; X X case ASSIGN_INT: X if (chr_code < COUNT_BASE) X print_param(chr_code - INT_BASE); X else { X print_esc("count"); X print_int(chr_code - COUNT_BASE); X } X break; X X case ASSIGN_DIMEN: X if (chr_code < SCALED_BASE) X print_length_param(chr_code - DIMEN_BASE); X else { X print_esc("dimen"); X print_int(chr_code - SCALED_BASE); X } X break; X X case ACCENT: X print_esc("accent"); X break; X X case ADVANCE: X print_esc("advance"); X break; X X case AFTER_ASSIGNMENT: X print_esc("afterassignment"); X break; X X case AFTER_GROUP: X print_esc("aftergroup"); X break; X X case ASSIGN_FONT_DIMEN: X print_esc("fontdimen"); X break; X X case BEGIN_GROUP: X print_esc("begingroup"); X break; X X case BREAK_PENALTY: X print_esc("penalty"); X break; X X case CHAR_NUM: X print_esc("char"); X break; X X case CS_NAME: X print_esc("csname"); X break; X X case DEF_FONT: X print_esc("font"); X break; X X case DELIM_NUM: X print_esc("delimiter"); X break; X X case DIVIDE: X print_esc("divide"); X break; X X case END_CS_NAME: X print_esc("endcsname"); X break; X X case END_GROUP: X print_esc("endgroup"); X break; X X case EX_SPACE: X print_esc(" "); X break; X X case EXPAND_AFTER: X print_esc("expandafter"); X break; X X case INPUT: X if (chr_code == 0) X print_esc("input"); X else print_esc("endinput"); X break; X X case HALIGN: X print_esc("halign"); X break; X X case HRULE: X print_esc("hrule"); X break; X X case IGNORE_SPACES: X print_esc("ignorespaces"); X break; X X case INSERT: X print_esc("insert"); X break; X X case ITAL_CORR: X print_esc("/"); X break; X X case MARK: X print_esc("mark"); X break; X X case TOP_BOT_MARK: X switch (chr_code) X { X case TOP_MARK_CODE: X print_esc("topmark"); X break; X X case FIRST_MARK_CODE: X print_esc("firstmark"); X break; X X case BOT_MARK_CODE: X print_esc("botmark"); X break; X X case SPLIT_FIRST_MARK_CODE: X print_esc("splitfirstmark"); X break; X X case SPLIT_BOT_MARK_CODE: X print_esc("splitbotmark"); X break; X } X break; X X case MATH_ACCENT: X print_esc("mathaccent"); X break; X X case MATH_CHAR_NUM: X print_esc("mathchar"); X break; X X case MATH_CHOICE: X print_esc("mathchoice"); X break; X X case MULTIPLY: X print_esc("multiply"); X break; X X case NO_ALIGN: X print_esc("noalign"); X break; X X case NO_EXPAND: X print_esc("noexpand"); X break; X X case NON_SCRIPT: X print_esc("nonscript"); X break; X X case OMIT: X print_esc("omit"); X break; X X case RADICAL: X print_esc("radical"); X break; X X case READ_TO_CS: X print_esc("read"); X break; X X case SET_BOX: X print_esc("setbox"); X break; X X case SET_PREV_GRAF: X print_esc("prevgraf"); X break; X X case SET_SHAPE: X print_esc("parshape"); X break; X X case THE: X print_esc("the"); X break; X X case TOKS_REGISTER: X print_esc("toks"); X break; X X case VADJUST: X print_esc("vadjust"); X break; X X case VALIGN: X print_esc("valign"); X break; X X case VCENTER: X print_esc("vcenter"); X break; X X case VRULE: X print_esc("vrule"); X break; X X case PAR_END: X print_esc("par"); X break; X X case SET_AUX: X if (chr_code == VMODE) X print_esc("prevdepth"); X else print_esc("spacefactor"); X break; X X case SET_PAGE_INT: X if (chr_code == 0) X print_esc("deadcycles"); X else print_esc("insertpenalties"); X break; X X case SET_BOX_DIMEN: X if (chr_code == WIDTH_OFFSET) X print_esc("wd"); X else if (chr_code == HEIGHT_OFFSET) X print_esc("ht"); X else print_esc("dp"); X break; X X case SET_PAGE_DIMEN: X switch (chr_code) X { X case 0: X print_esc("pagegoal"); X break; X X case 1: X print_esc("pagetotal"); X break; X X case 2: X print_esc("pagestretch"); X break; X X case 3: X print_esc("pagefilstretch"); X break; X X case 4: X print_esc("pagefillstretch"); X break; X X case 5: X print_esc("pagefilllstretch"); X break; X X case 6: X print_esc("pageshrink"); X break; X } X break; X X case LAST_ITEM: X if (chr_code == INT_VAL) X print_esc("lastpenalty"); X else if (chr_code == DIMEN_VAL) X print_esc("lastkern"); X else print_esc("lastskip"); X break; X X case REGISTER: X if (chr_code == INT_VAL) X print_esc("count"); X else if (chr_code == DIMEN_VAL) X print_esc("dimen"); X else if (chr_code == GLUE_VAL) X print_esc("skip"); X else print_esc("muskip"); X break; X X case CONVERT: X switch (chr_code) X { X case NUMBER_CODE: X print_esc("number"); X break; X X case ROMAN_NUMERAL_CODE: X print_esc("romannumeral"); X break; X X case STRING_CODE: X print_esc("string"); X break; X X case MEANING_CODE: X print_esc("meaning"); X break; X X case FONT_NAME_CODE: X print_esc("fontname"); X break; X X default: X print_esc("jobname"); X break; X } X break; X X case IF_TEST: X switch (chr_code) X { X case IF_CHAR_CODE: X print_esc("if"); X break; X X case IF_CAT_CODE: X print_esc("ifcat"); X break; X X case IF_INT_CODE: X print_esc("ifnum"); X break; X X case IF_DIM_CODE: X print_esc("ifdim"); X break; X X case IF_ODD_CODE: X print_esc("ifodd"); X break; X X case IF_VMODE_CODE: X print_esc("ifvmode"); X break; X X case IF_HMODE_CODE: X print_esc("ifhmode"); X break; X X case IF_MMODE_CODE: X print_esc("ifmmode"); X break; X X case IF_INNER_CODE: X print_esc("ifinner"); X break; X X case IF_VOID_CODE: X print_esc("ifvoid"); X break; X X case IF_HBOX_CODE: X print_esc("ifhbox"); X break; X X case IF_VBOX_CODE: X print_esc("ifvbox"); X break; X X case IFX_CODE: X print_esc("ifx"); X break; X X case IF_EOF_CODE: X print_esc("ifeof"); X break; X X case IF_TRUE_CODE: X print_esc("iftrue"); X break; X X case IF_FALSE_CODE: X print_esc("iffalse"); X break; X X case IF_CASE_CODE: X print_esc("ifcase"); X break; X } X break; X X case FI_OR_ELSE: X if (chr_code == FI_CODE) X print_esc("fi"); X else if (chr_code == OR_CODE) X print_esc("or"); X else print_esc("else"); X break; X X case PREFIX: X if (chr_code == 1) X print_esc("long"); X else if (chr_code == 2) X print_esc("outer"); X else print_esc("global"); X break; X X case DEF: X if (chr_code == 0) X print_esc("def"); X else if (chr_code == 1) X print_esc("gdef"); X else if (chr_code == 2) X print_esc("edef"); X else print_esc("xdef"); X break; X X case LET: X if (chr_code != NORMAL) X print_esc("futurelet"); X else print_esc("let"); X break; X X case SHORTHAND_DEF: X switch (chr_code) X { X case CHAR_DEF_CODE: X print_esc("chardef"); X break; X X case MATH_CHAR_DEF_CODE: X print_esc("mathchardef"); X break; X X case COUNT_DEF_CODE: X print_esc("countdef"); X break; X X case DIMEN_DEF_CODE: X print_esc("dimendef"); X break; X X case SKIP_DEF_CODE: X print_esc("skipdef"); X break; X X case MU_SKIP_DEF_CODE: X print_esc("muskipdef"); X break; X X default: X print_esc("toksdef"); X break; X } X break; X X case CHAR_GIVEN: X print_esc("char"); X print_hex((val) chr_code); X break; X X case MATH_GIVEN: X print_esc("mathchar"); X print_hex((val) chr_code); X break; X X case DEF_CODE: X if (chr_code == CAT_CODE_BASE) X print_esc("catcode"); X else if (chr_code == MATH_CODE_BASE) X print_esc("mathcode"); X else if (chr_code == LC_CODE_BASE) X print_esc("lccode"); X else if (chr_code == UC_CODE_BASE) X print_esc("uccode"); X else if (chr_code == SF_CODE_BASE) X print_esc("sfcode"); X else print_esc("delcode"); X break; X X case DEF_FAMILY: X print_size(chr_code - MATH_FONT_BASE); X break; X X case SET_FONT: X print("select font "); X print_str(font_name[chr_code]); X if (font_size[chr_code] != font_dsize[chr_code]) { X print(" at "); X print_scaled(font_size[chr_code]); X print("pt"); X } X break; X X case ASSIGN_FONT_INT: X if (chr_code == 1) X print_esc("skewchar"); X else print_esc("hyphenchar"); X break; X X case HYPH_DATA: X if (chr_code == 1) X print_esc("patterns"); X else print_esc("hyphenation"); X break; X X case SET_INTERACTION: X switch (chr_code) X { X case BATCH_MODE: X print_esc("batchmode"); X break; X X case NONSTOP_MODE: X print_esc("nonstop"); X break; X X case SCROLL_MODE: X print_esc("scrollmode"); X break; X X default: X print_esc("errorstopmode"); X break; X } X break; X X case IN_STREAM: X if (chr_code == 0) X print_esc("closein"); X else print_esc("openin"); X break; X X case MESSAGE: X if (chr_code == 0) X print_esc("message"); X else print_esc("errmessage"); X break; X X case CASE_SHIFT: X if (chr_code == LC_CODE_BASE) X print_esc("lowercase"); X else print_esc("uppercase"); X break; X X case XRAY: X switch (chr_code) X { X case SHOW_BOX_CODE: X print_esc("showbox"); X break; X X case SHOW_THE_CODE: X print_esc("showthe"); X break; X X case SHOW_LISTS: X print_esc("showlists"); X break; X X default: X print_esc("show"); X break; X } X break; X X case UNDEFINED_CS: X print("undefined"); X break; X X case CALL: X print("macro"); X break; X X case LONG_CALL: X print_esc("long macro"); X break; X X case OUTER_CALL: X print_esc("outer macro"); X break; X X case LONG_OUTER_CALL: X print_esc("long"); X print_esc("outer macro"); X break; X X case END_TEMPLATE: X print_esc("outer endtemplate"); X break; X X case STOP: X if (chr_code == 1) X print_esc("dump"); X else print_esc("end"); X break; X X case HSKIP: X switch (chr_code) X { X case SKIP_CODE: X print_esc("hskip"); X break; X X case FIL_CODE: X print_esc("hfil"); X break; X X case FILL_CODE: X print_esc("hfill"); X break; X X case SS_CODE: X print_esc("hss"); X break; X X default: X print_esc("hfilneg"); X break; X } X break; X X case VSKIP: X switch (chr_code) X { X case SKIP_CODE: X print_esc("vskip"); X break; X X case FIL_CODE: X print_esc("vfil"); X break; X X case FILL_CODE: X print_esc("vfill"); X break; X X case SS_CODE: X print_esc("vss"); X break; X X default: X print_esc("vfilneg"); X break; X } X break; X X case MSKIP: X print_esc("mskip"); X break; X X case KERN: X print_esc("kern"); X break; X X case MKERN: X print_esc("mkern"); X break; X X case HMOVE: X if (chr_code == 1) X print_esc("moveleft"); X else print_esc("moveright"); X break; X X case VMOVE: X if (chr_code == 1) X print_esc("raise"); X else print_esc("lower"); X break; X X case MAKE_BOX: X switch (chr_code) X { X case BOX_CODE: X print_esc("box"); X break; X X case COPY_CODE: X print_esc("copy"); X break; X X case LAST_BOX_CODE: X print_esc("lastbox"); X break; X X case VSPLIT_CODE: X print_esc("vsplit"); X break; X X case VTOP_CODE: X print_esc("vtop"); X break; X X case VTOP_CODE + VMODE: X print_esc("vbox"); X break; X X default: X print_esc("hbox"); X break; X } X break; X X case LEADER_SHIP: X if (chr_code == A_LEADERS) X print_esc("leaders"); X else if (chr_code == C_LEADERS) X print_esc("cleaders"); X else if (chr_code == X_LEADERS) X print_esc("xleaders"); X else print_esc("shipout"); X break; X X case START_PAR: X if (chr_code == 0) X print_esc("noindent"); X else print_esc("indent"); X break; X X case REMOVE_ITEM: X if (chr_code == GLUE_NODE) X print_esc("unskip"); X else if (chr_code == KERN_NODE) X print_esc("unkern"); X else print_esc("unpenalty"); X break; X X case UN_HBOX: X if (chr_code == COPY_CODE) X print_esc("unhcopy"); X else print_esc("unhbox"); X break; X X case UN_VBOX: X if (chr_code == COPY_CODE) X print_esc("unvcopy"); X else print_esc("unvbox"); X break; X X case DISCRETIONARY: X if (chr_code == 1) X print_esc("-"); X else print_esc("discretionary"); X break; X X case EQ_NO: X if (chr_code == 1) X print_esc("leqno"); X else print_esc("eqno"); X break; X X case MATH_COMP: X switch (chr_code) X { X case ORD_NOAD: X print_esc("mathord"); X break; X X case OP_NOAD: X print_esc("mathop"); X break; X X case BIN_NOAD: X print_esc("mathbin"); X break; X X case REL_NOAD: X print_esc("mathrel"); X break; X X case OPEN_NOAD: X print_esc("mathopen"); X break; X X case CLOSE_NOAD: X print_esc("mathclose"); X break; X X case PUNCT_NOAD: X print_esc("mathpunct"); X break; X X case INNER_NOAD: X print_esc("mathinner"); X break; X X case UNDER_NOAD: X print_esc("underline"); X break; X X default: X print_esc("overline"); X break; X } X break; X X case LIMIT_SWITCH: X if (chr_code == LIMITS) X print_esc("limits"); X else if (chr_code == NO_LIMITS) X print_esc("nolimits"); X else print_esc("displaylimits"); X break; X X case MATH_STYLE: X print_style(chr_code); X break; X X case ABOVE: X switch (chr_code) X { X case OVER_CODE: X print_esc("over"); X break; X X case ATOP_CODE: X print_esc("atop"); X break; X X case DELIMITED_CODE + ABOVE_CODE: X print_esc("abovewithdelims"); X break; X X case DELIMITED_CODE + OVER_CODE: X print_esc("overwithdelims"); X break; X X case DELIMITED_CODE + ATOP_CODE: X print_esc("atopwithdelims"); X break; X X default: X print_esc("above"); X break; X } X break; X X case LEFT_RIGHT: X if (chr_code == LEFT_NOAD) X print_esc("left"); X else print_esc("right"); X break; X X case EXTENSION: X switch (chr_code) { X case OPEN_NODE: X print_esc("openout"); X break; X X case WRITE_NODE: X print_esc("write"); X break; X X case CLOSE_NODE: X print_esc("closeout"); X break; X X case SPECIAL_NODE: X print_esc("special"); X break; X X case IMMEDIATE_CODE: X print_esc("immediate"); X break; X } X break; X } X } X Xinit_cmds () X{ X#ifdef INIT Xno_new_control_sequence = FALSE; Xprimitive("lineskip", ASSIGN_GLUE, GLUE_BASE + LINE_SKIP_CODE); Xprimitive("baselineskip", ASSIGN_GLUE, GLUE_BASE + BASELINE_SKIP_CODE); Xprimitive("parskip", ASSIGN_GLUE, GLUE_BASE + PAR_SKIP_CODE); Xprimitive("abovedisplayskip", ASSIGN_GLUE, XGLUE_BASE + ABOVE_DISPLAY_SKIP_CODE); Xprimitive("abovedisplayshortskip", ASSIGN_GLUE, XGLUE_BASE + ABOVE_DISPLAY_SHORT_SKIP_CODE); Xprimitive("belowdisplayskip", ASSIGN_GLUE, XGLUE_BASE + BELOW_DISPLAY_SKIP_CODE); Xprimitive("belowdisplayshortskip", ASSIGN_GLUE, XGLUE_BASE + BELOW_DISPLAY_SHORT_SKIP_CODE); Xprimitive("leftskip", ASSIGN_GLUE, GLUE_BASE + LEFT_SKIP_CODE); Xprimitive("rightskip", ASSIGN_GLUE, GLUE_BASE + RIGHT_SKIP_CODE); Xprimitive("topskip", ASSIGN_GLUE, GLUE_BASE + TOP_SKIP_CODE); Xprimitive("splittopskip", ASSIGN_GLUE, GLUE_BASE + SPLIT_TOP_SKIP_CODE); Xprimitive("tabskip", ASSIGN_GLUE, GLUE_BASE + TAB_SKIP_CODE); Xprimitive("spaceskip", ASSIGN_GLUE, GLUE_BASE + SPACE_SKIP_CODE); Xprimitive("xspaceskip", ASSIGN_GLUE, GLUE_BASE + XSPACE_SKIP_CODE); Xprimitive("parfillskip", ASSIGN_GLUE, GLUE_BASE + PAR_FILL_SKIP_CODE); Xprimitive("thinmuskip", ASSIGN_MU_GLUE, GLUE_BASE + THIN_MU_SKIP_CODE); Xprimitive("medmuskip", ASSIGN_MU_GLUE, GLUE_BASE + MED_MU_SKIP_CODE); Xprimitive("thickmuskip", ASSIGN_MU_GLUE, GLUE_BASE + THICK_MU_SKIP_CODE); Xprimitive("output", ASSIGN_TOKS, OUTPUT_ROUTINE_LOC); Xprimitive("everycr", ASSIGN_TOKS, EVERY_CR_LOC); Xprimitive("everypar", ASSIGN_TOKS, EVERY_PAR_LOC); Xprimitive("everymath", ASSIGN_TOKS, EVERY_MATH_LOC); Xprimitive("everydisplay", ASSIGN_TOKS, EVERY_DISPLAY_LOC); Xprimitive("everyhbox", ASSIGN_TOKS, EVERY_HBOX_LOC); Xprimitive("everyvbox", ASSIGN_TOKS, EVERY_VBOX_LOC); Xprimitive("everyjob", ASSIGN_TOKS, EVERY_JOB_LOC); Xprimitive("errhelp", ASSIGN_TOKS, ERR_HELP_LOC); Xprimitive("pretolerance", ASSIGN_INT, INT_BASE + PRETOLERANCE_CODE); Xprimitive("tolerance", ASSIGN_INT, INT_BASE + TOLERANCE_CODE); Xprimitive("linepenalty", ASSIGN_INT, INT_BASE + LINE_PENALTY_CODE); Xprimitive("hyphenpenalty", ASSIGN_INT, INT_BASE + HYPHEN_PENALTY_CODE); Xprimitive("exhyphenpenalty", ASSIGN_INT, INT_BASE + EX_HYPHEN_PENALTY_CODE); Xprimitive("clubpenalty", ASSIGN_INT, INT_BASE + CLUB_PENALTY_CODE); Xprimitive("widowpenalty", ASSIGN_INT, INT_BASE + WIDOW_PENALTY_CODE); Xprimitive("displaywidowpenalty", ASSIGN_INT, XINT_BASE + DISPLAY_WIDOW_PENALTY_CODE); Xprimitive("brokenpenalty", ASSIGN_INT, INT_BASE + BROKEN_PENALTY_CODE); Xprimitive("binoppenalty", ASSIGN_INT, INT_BASE + BIN_OP_PENALTY_CODE); Xprimitive("relpenalty", ASSIGN_INT, INT_BASE + REL_PENALTY_CODE); Xprimitive("predisplaypenalty", ASSIGN_INT, XINT_BASE + PRE_DISPLAY_PENALTY_CODE); Xprimitive("postdisplaypenalty", ASSIGN_INT, XINT_BASE + POST_DISPLAY_PENALTY_CODE); Xprimitive("interlinepenalty", ASSIGN_INT, XINT_BASE + INTER_LINE_PENALTY_CODE); Xprimitive("doublehyphendemerits", ASSIGN_INT, XINT_BASE + DOUBLE_HYPHEN_DEMERITS_CODE); Xprimitive("finalhyphendemerits", ASSIGN_INT, XINT_BASE + FINAL_HYPHEN_DEMERITS_CODE); Xprimitive("adjdemerits", ASSIGN_INT, INT_BASE + ADJ_DEMERITS_CODE); Xprimitive("mag", ASSIGN_INT, INT_BASE + MAG_CODE); Xprimitive("delimiterfactor", ASSIGN_INT, INT_BASE + DELIMITER_FACTOR_CODE); Xprimitive("looseness", ASSIGN_INT, INT_BASE + LOOSENESS_CODE); Xprimitive("time", ASSIGN_INT, INT_BASE + TIME_CODE); Xprimitive("day", ASSIGN_INT, INT_BASE + DAY_CODE); Xprimitive("month", ASSIGN_INT, INT_BASE + MONTH_CODE); Xprimitive("year", ASSIGN_INT, INT_BASE + YEAR_CODE); Xprimitive("showboxbreadth", ASSIGN_INT, INT_BASE + SHOW_BOX_BREADTH_CODE); Xprimitive("showboxdepth", ASSIGN_INT, INT_BASE + SHOW_BOX_DEPTH_CODE); Xprimitive("hbadness", ASSIGN_INT, INT_BASE + HBADNESS_CODE); Xprimitive("vbadness", ASSIGN_INT, INT_BASE + VBADNESS_CODE); Xprimitive("pausing", ASSIGN_INT, INT_BASE + PAUSING_CODE); Xprimitive("tracingonline", ASSIGN_INT, INT_BASE + TRACING_ONLINE_CODE); Xprimitive("tracingmacros", ASSIGN_INT, INT_BASE + TRACING_MACROS_CODE); Xprimitive("tracingstats", ASSIGN_INT, INT_BASE + TRACING_STATS_CODE); Xprimitive("tracingoutput", ASSIGN_INT, INT_BASE + TRACING_OUTPUT_CODE); Xprimitive("tracingparagraphs", ASSIGN_INT, INT_BASE + TRACING_PARAGRAPHS_CODE); Xprimitive("tracingpages", ASSIGN_INT, INT_BASE + TRACING_PAGES_CODE); Xprimitive("tracinglostchars", ASSIGN_INT, INT_BASE + TRACING_LOST_CHARS_CODE); Xprimitive("tracingcommands", ASSIGN_INT, INT_BASE + TRACING_COMMANDS_CODE); Xprimitive("tracingrestores", ASSIGN_INT, INT_BASE + TRACING_RESTORES_CODE); Xprimitive("uchyph", ASSIGN_INT, INT_BASE + UC_HYPH_CODE); Xprimitive("outputpenalty", ASSIGN_INT, INT_BASE + OUTPUT_PENALTY_CODE); Xprimitive("maxdeadcycles", ASSIGN_INT, INT_BASE + MAX_DEAD_CYCLES_CODE); Xprimitive("floatingpenalty", ASSIGN_INT, INT_BASE + FLOATING_PENALTY_CODE); Xprimitive("globaldefs", ASSIGN_INT, INT_BASE + GLOBAL_DEFS_CODE); Xprimitive("fam", ASSIGN_INT, INT_BASE + CUR_FAM_CODE); Xprimitive("escapechar", ASSIGN_INT, INT_BASE + ESCAPE_CHAR_CODE); Xprimitive("defaulthyphenchar", ASSIGN_INT, INT_BASE + DEFAULT_HYPHEN_CHAR_CODE); Xprimitive("defaultskewchar", ASSIGN_INT, INT_BASE + DEFAULT_SKEW_CHAR_CODE); Xprimitive("endlinechar", ASSIGN_INT, INT_BASE + END_LINE_CHAR_CODE); Xprimitive("newlinechar", ASSIGN_INT, INT_BASE + NEW_LINE_CHAR_CODE); Xprimitive("parindent", ASSIGN_DIMEN, DIMEN_BASE + PAR_INDENT_CODE); Xprimitive("mathsurround", ASSIGN_DIMEN, DIMEN_BASE + MATH_SURROUND_CODE); Xprimitive("lineskiplimit", ASSIGN_DIMEN, DIMEN_BASE + LINE_SKIP_LIMIT_CODE); Xprimitive("hsize", ASSIGN_DIMEN, DIMEN_BASE + HSIZE_CODE); Xprimitive("vsize", ASSIGN_DIMEN, DIMEN_BASE + VSIZE_CODE); Xprimitive("maxdepth", ASSIGN_DIMEN, DIMEN_BASE + MAX_DEPTH_CODE); Xprimitive("splitmaxdepth", ASSIGN_DIMEN, DIMEN_BASE + SPLIT_MAX_DEPTH_CODE); Xprimitive("boxmaxdepth", ASSIGN_DIMEN, DIMEN_BASE + BOX_MAX_DEPTH_CODE); Xprimitive("hfuzz", ASSIGN_DIMEN, DIMEN_BASE + HFUZZ_CODE); Xprimitive("vfuzz", ASSIGN_DIMEN, DIMEN_BASE + VFUZZ_CODE); Xprimitive("delimitershortfall", ASSIGN_DIMEN, XDIMEN_BASE + DELIMITER_SHORTFALL_CODE); Xprimitive("nulldelimiterspace", ASSIGN_DIMEN, XDIMEN_BASE + NULL_DELIMITER_SPACE_CODE); Xprimitive("scriptspace", ASSIGN_DIMEN, DIMEN_BASE + SCRIPT_SPACE_CODE); Xprimitive("predisplaysize", ASSIGN_DIMEN, DIMEN_BASE + PRE_DISPLAY_SIZE_CODE); Xprimitive("displaywidth", ASSIGN_DIMEN, DIMEN_BASE + DISPLAY_WIDTH_CODE); Xprimitive("displayindent", ASSIGN_DIMEN, DIMEN_BASE + DISPLAY_INDENT_CODE); Xprimitive("overfullrule", ASSIGN_DIMEN, DIMEN_BASE + OVERFULL_RULE_CODE); Xprimitive("hangafter", ASSIGN_INT, INT_BASE + HANG_AFTER_CODE); Xprimitive("hangindent", ASSIGN_DIMEN, DIMEN_BASE + HANG_INDENT_CODE); Xprimitive("hoffset", ASSIGN_DIMEN, DIMEN_BASE + H_OFFSET_CODE); Xprimitive("voffset", ASSIGN_DIMEN, DIMEN_BASE + V_OFFSET_CODE); Xprimitive(" ", EX_SPACE, 0); Xprimitive("/", ITAL_CORR, 0); Xprimitive("accent", ACCENT, 0); Xprimitive("advance", ADVANCE, 0); Xprimitive("afterassignment", AFTER_ASSIGNMENT, 0); Xprimitive("aftergroup", AFTER_GROUP, 0); Xprimitive("begingroup", BEGIN_GROUP, 0); Xprimitive("char", CHAR_NUM, 0); Xprimitive("csname", CS_NAME, 0); Xprimitive("font", DEF_FONT, 0); Xprimitive("fontdimen", ASSIGN_FONT_DIMEN, 0); Xprimitive("nullfont", SET_FONT, NULL_FONT); Xeqtb[FROZEN_NULL_FONT] = eqtb[cur_val]; Xfont_name[NULL_FONT] = Xtext(FROZEN_NULL_FONT) = text(cur_val); Xfont_area[NULL_FONT] = null_str; Xprimitive("delimiter", DELIM_NUM, 0); Xprimitive("divide", DIVIDE, 0); Xprimitive("endcsname", END_CS_NAME, 0); Xprimitive("endgroup", END_GROUP, 0); Xtext(FROZEN_END_GROUP) = make_string_given("endgroup"); Xeqtb[FROZEN_END_GROUP] = eqtb[cur_val]; Xprimitive("expandafter", EXPAND_AFTER, 0); Xprimitive("halign", HALIGN, 0); Xprimitive("hrule", HRULE, 0); Xprimitive("ignorespaces", IGNORE_SPACES, 0); Xprimitive("insert", INSERT, 0); Xprimitive("mark", MARK, 0); Xprimitive("topmark", TOP_BOT_MARK, TOP_MARK_CODE); Xprimitive("firstmark", TOP_BOT_MARK, FIRST_MARK_CODE); Xprimitive("botmark", TOP_BOT_MARK, BOT_MARK_CODE); Xprimitive("splitfirstmark", TOP_BOT_MARK, SPLIT_FIRST_MARK_CODE); Xprimitive("splitbotmark", TOP_BOT_MARK, SPLIT_BOT_MARK_CODE); Xprimitive("mathaccent", MATH_ACCENT, 0); Xprimitive("mathchar", MATH_CHAR_NUM, 0); Xprimitive("mathchoice", MATH_CHOICE, 0); Xprimitive("multiply", MULTIPLY, 0); Xprimitive("noalign", NO_ALIGN, 0); Xprimitive("noexpand", NO_EXPAND, 0); Xeq_type(FROZEN_DONT_EXPAND) = DONT_EXPAND; Xtext(FROZEN_DONT_EXPAND) = make_string_given("notexpanded:"); Xprimitive("nonscript", NON_SCRIPT, 0); Xprimitive("omit", OMIT, 0); Xprimitive("parshape", SET_SHAPE, 0); Xprimitive("penalty", BREAK_PENALTY, 0); Xprimitive("prevgraf", SET_PREV_GRAF, 0); Xprimitive("radical", RADICAL, 0); Xprimitive("read", READ_TO_CS, 0); Xprimitive("relax", RELAX, 256); Xtext(FROZEN_RELAX) = make_string_given("relax"); Xeqtb[FROZEN_RELAX] = eqtb[cur_val]; Xprimitive("setbox", SET_BOX, 0); Xprimitive("the", THE, 0); Xprimitive("toks", TOKS_REGISTER, 0); Xprimitive("vadjust", VADJUST, 0); Xprimitive("valign", VALIGN, 0); Xprimitive("vcenter", VCENTER, 0); Xprimitive("vrule", VRULE, 0); Xprimitive("par", PAR_END, 0); Xpar_loc = cur_val; par_token = CS_TOKEN_FLAG + par_loc; Xprimitive("count", REGISTER, INT_VAL); Xprimitive("dimen", REGISTER, DIMEN_VAL); Xprimitive("skip", REGISTER, GLUE_VAL); Xprimitive("muskip", REGISTER, MU_VAL); Xprimitive("spacefactor", SET_AUX, HMODE); Xprimitive("prevdepth", SET_AUX, VMODE); Xprimitive("deadcycles", SET_PAGE_INT, 0); Xprimitive("insertpenalties", SET_PAGE_INT, 1); Xprimitive("wd", SET_BOX_DIMEN, WIDTH_OFFSET); Xprimitive("ht", SET_BOX_DIMEN, HEIGHT_OFFSET); Xprimitive("dp", SET_BOX_DIMEN, DEPTH_OFFSET); Xprimitive("pagegoal", SET_PAGE_DIMEN, 0); Xprimitive("pagetotal", SET_PAGE_DIMEN, 1); Xprimitive("pagestretch", SET_PAGE_DIMEN, 2); Xprimitive("pagefilstretch", SET_PAGE_DIMEN, 3); Xprimitive("pagefillstretch", SET_PAGE_DIMEN, 4); Xprimitive("pagefilllstretch", SET_PAGE_DIMEN, 5); Xprimitive("pageshrink", SET_PAGE_DIMEN, 6); Xprimitive("pagedepth", SET_PAGE_DIMEN, 7); Xprimitive("lastpenalty", LAST_ITEM, INT_VAL); Xprimitive("lastkern", LAST_ITEM, DIMEN_VAL); Xprimitive("lastskip", LAST_ITEM, GLUE_VAL); Xprimitive("input", INPUT, 0); Xprimitive("endinput", INPUT, 1); Xprimitive("number", CONVERT, NUMBER_CODE); Xprimitive("romannumeral", CONVERT, ROMAN_NUMERAL_CODE); Xprimitive("string", CONVERT, STRING_CODE); Xprimitive("meaning", CONVERT, MEANING_CODE); Xprimitive("fontname", CONVERT, FONT_NAME_CODE); Xprimitive("jobname", CONVERT, JOB_NAME_CODE); Xprimitive("if", IF_TEST, IF_CHAR_CODE); Xprimitive("ifcat", IF_TEST, IF_CAT_CODE); Xprimitive("ifnum", IF_TEST, IF_INT_CODE); Xprimitive("ifdim", IF_TEST, IF_DIM_CODE); Xprimitive("ifodd", IF_TEST, IF_ODD_CODE); Xprimitive("ifvmode", IF_TEST, IF_VMODE_CODE); Xprimitive("ifhmode", IF_TEST, IF_HMODE_CODE); Xprimitive("ifmmode", IF_TEST, IF_MMODE_CODE); Xprimitive("ifinner", IF_TEST, IF_INNER_CODE); Xprimitive("ifvoid", IF_TEST, IF_VOID_CODE); Xprimitive("ifhbox", IF_TEST, IF_HBOX_CODE); Xprimitive("ifvbox", IF_TEST, IF_VBOX_CODE); Xprimitive("ifx", IF_TEST, IFX_CODE); Xprimitive("ifeof", IF_TEST, IF_EOF_CODE); Xprimitive("iftrue", IF_TEST, IF_TRUE_CODE); Xprimitive("iffalse", IF_TEST, IF_FALSE_CODE); Xprimitive("ifcase", IF_TEST, IF_CASE_CODE); Xprimitive("fi", FI_OR_ELSE, FI_CODE); Xtext(FROZEN_FI) = make_string_given("fi"); Xeqtb[FROZEN_FI] = eqtb[cur_val]; Xprimitive("or", FI_OR_ELSE, OR_CODE); Xprimitive("else", FI_OR_ELSE, ELSE_CODE); Xprimitive("hskip", HSKIP, SKIP_CODE); Xprimitive("hfil", HSKIP, FIL_CODE); Xprimitive("hfill", HSKIP, FILL_CODE); Xprimitive("hss", HSKIP, SS_CODE); Xprimitive("hfilneg", HSKIP, FIL_NEG_CODE); Xprimitive("vskip", VSKIP, SKIP_CODE); Xprimitive("vfil", VSKIP, FIL_CODE); Xprimitive("vfill", VSKIP, FILL_CODE); Xprimitive("vss", VSKIP, SS_CODE); Xprimitive("vfilneg", VSKIP, FIL_NEG_CODE); Xprimitive("mskip", MSKIP, MSKIP_CODE); Xprimitive("kern", KERN, EXPLICIT); Xprimitive("mkern", MKERN, MU_GLUE); Xprimitive("moveleft", HMOVE, 1); Xprimitive("moveright", HMOVE, 0); Xprimitive("raise", VMOVE, 1); Xprimitive("lower", VMOVE, 0); Xprimitive("box", MAKE_BOX, BOX_CODE); Xprimitive("copy", MAKE_BOX, COPY_CODE); Xprimitive("lastbox", MAKE_BOX, LAST_BOX_CODE); Xprimitive("vsplit", MAKE_BOX, VSPLIT_CODE); Xprimitive("vtop", MAKE_BOX, VTOP_CODE); Xprimitive("vbox", MAKE_BOX, VTOP_CODE + VMODE); Xprimitive("hbox", MAKE_BOX, VTOP_CODE + HMODE); Xprimitive("indent", START_PAR, 1); Xprimitive("noindent", START_PAR, 0); Xprimitive("shipout", LEADER_SHIP, A_LEADERS - 1); Xprimitive("leaders", LEADER_SHIP, A_LEADERS); Xprimitive("cleaders", LEADER_SHIP, C_LEADERS); Xprimitive("xleaders", LEADER_SHIP, X_LEADERS); Xprimitive("unpenalty", REMOVE_ITEM, PENALTY_NODE); Xprimitive("unkern", REMOVE_ITEM, KERN_NODE); Xprimitive("unskip", REMOVE_ITEM, GLUE_NODE); Xprimitive("unhbox", UN_HBOX, BOX_CODE); Xprimitive("unhcopy", UN_HBOX, COPY_CODE); Xprimitive("unvbox", UN_VBOX, BOX_CODE); Xprimitive("unvcopy", UN_VBOX, COPY_CODE); Xprimitive("discretionary", DISCRETIONARY, 0); Xprimitive("-", DISCRETIONARY, 1); Xprimitive("eqno", EQ_NO, 0); Xprimitive("leqno", EQ_NO, 1); Xprimitive("mathord", MATH_COMP, ORD_NOAD); Xprimitive("mathop", MATH_COMP, OP_NOAD); Xprimitive("mathbin", MATH_COMP, BIN_NOAD); Xprimitive("mathrel", MATH_COMP, REL_NOAD); Xprimitive("mathopen", MATH_COMP, OPEN_NOAD); Xprimitive("mathclose", MATH_COMP, CLOSE_NOAD); Xprimitive("mathpunct", MATH_COMP, PUNCT_NOAD); Xprimitive("mathinner", MATH_COMP, INNER_NOAD); Xprimitive("underline", MATH_COMP, UNDER_NOAD); Xprimitive("overline", MATH_COMP, OVER_NOAD); Xprimitive("displaylimits", LIMIT_SWITCH, NORMAL); Xprimitive("limits", LIMIT_SWITCH, LIMITS); Xprimitive("nolimits", LIMIT_SWITCH, NO_LIMITS); Xprimitive("displaystyle", MATH_STYLE, DISPLAY_STYLE); Xprimitive("textstyle", MATH_STYLE, TEXT_STYLE); Xprimitive("scriptstyle", MATH_STYLE, SCRIPT_STYLE); Xprimitive("scriptscriptstyle", MATH_STYLE, SCRIPT_SCRIPT_STYLE); Xprimitive("above", ABOVE, ABOVE_CODE); Xprimitive("over", ABOVE, OVER_CODE); Xprimitive("atop", ABOVE, ATOP_CODE); Xprimitive("abovewithdelims", ABOVE, DELIMITED_CODE + ABOVE_CODE); Xprimitive("overwithdelims", ABOVE, DELIMITED_CODE + OVER_CODE); Xprimitive("atopwithdelims", ABOVE, DELIMITED_CODE + ATOP_CODE); Xprimitive("left", LEFT_RIGHT, LEFT_NOAD); Xprimitive("right", LEFT_RIGHT, RIGHT_NOAD); Xtext(FROZEN_RIGHT) = make_string_given("right"); Xeqtb[FROZEN_RIGHT] = eqtb[cur_val]; Xprimitive("span", TAB_MARK, SPAN_CODE); Xprimitive("cr", CAR_RET, CR_CODE); Xtext(FROZEN_CR) = text(cur_val); Xeqtb[FROZEN_CR] = eqtb[cur_val]; Xprimitive("crcr", CAR_RET, CR_CR_CODE); Xtext(FROZEN_END_TEMPLATE) = make_string_given("endtemplate"); Xtext(FROZEN_ENDV) = text(FROZEN_END_TEMPLATE); Xeq_type(FROZEN_ENDV) = ENDV; Xequiv(FROZEN_ENDV) = null_list; Xeq_level(FROZEN_ENDV) = LEVEL_ONE; Xeqtb[FROZEN_END_TEMPLATE] = eqtb[FROZEN_ENDV]; Xeq_type(FROZEN_END_TEMPLATE) = END_TEMPLATE; Xprimitive("long", PREFIX, 1); Xprimitive("outer", PREFIX, 2); Xprimitive("global", PREFIX, 4); Xprimitive("def", DEF, 0); Xprimitive("gdef", DEF, 1); Xprimitive("edef", DEF, 2); Xprimitive("xdef", DEF, 3); Xprimitive("let", LET, NORMAL); Xprimitive("futurelet", LET, NORMAL + 1); Xprimitive("chardef", SHORTHAND_DEF, CHAR_DEF_CODE); Xprimitive("mathchardef", SHORTHAND_DEF, MATH_CHAR_DEF_CODE); Xprimitive("countdef", SHORTHAND_DEF, COUNT_DEF_CODE); Xprimitive("dimendef", SHORTHAND_DEF, DIMEN_DEF_CODE); Xprimitive("skipdef", SHORTHAND_DEF, SKIP_DEF_CODE); Xprimitive("muskipdef", SHORTHAND_DEF, MU_SKIP_DEF_CODE); Xprimitive("toksdef", SHORTHAND_DEF, TOKS_DEF_CODE); Xprimitive("catcode", DEF_CODE, CAT_CODE_BASE); Xprimitive("mathcode", DEF_CODE, MATH_CODE_BASE); Xprimitive("lccode", DEF_CODE, LC_CODE_BASE); Xprimitive("uccode", DEF_CODE, UC_CODE_BASE); Xprimitive("sfcode", DEF_CODE, SF_CODE_BASE); Xprimitive("delcode", DEF_CODE, DEL_CODE_BASE); Xprimitive("textfont", DEF_FAMILY, MATH_FONT_BASE); Xprimitive("scriptfont", DEF_FAMILY, MATH_FONT_BASE + SCRIPT_SIZE); Xprimitive("scriptscriptfont", DEF_FAMILY, MATH_FONT_BASE + SCRIPT_SCRIPT_SIZE); Xprimitive("hyphenation", HYPH_DATA, 0); Xprimitive("patterns", HYPH_DATA, 1); Xprimitive("hyphenchar", ASSIGN_FONT_INT, 0); Xprimitive("skewchar", ASSIGN_FONT_INT, 1); Xprimitive("batchmode", SET_INTERACTION, BATCH_MODE); Xprimitive("nonstopmode", SET_INTERACTION, NONSTOP_MODE); Xprimitive("scrollmode", SET_INTERACTION, SCROLL_MODE); Xprimitive("errorstopmode", SET_INTERACTION, ERROR_STOP_MODE); Xprimitive("closein", IN_STREAM, 0); Xprimitive("openin", IN_STREAM, 1); Xprimitive("message", MESSAGE, 0); Xprimitive("errmessage", MESSAGE, 1); Xprimitive("lowercase", CASE_SHIFT, LC_CODE_BASE); Xprimitive("uppercase", CASE_SHIFT, UC_CODE_BASE); Xprimitive("show", XRAY, SHOW_CODE); Xprimitive("showbox", XRAY, SHOW_BOX_CODE); Xprimitive("showthe", XRAY, SHOW_THE_CODE); Xprimitive("showlists", XRAY, SHOW_LISTS); Xprimitive("openout", EXTENSION, OPEN_NODE); Xprimitive("write", EXTENSION, WRITE_NODE); Xwrite_loc = cur_val; Xtext(END_WRITE) = make_string_given("endwrite"); Xeq_level(END_WRITE) = LEVEL_ONE; Xeq_type(END_WRITE) = OUTER_CALL; Xequiv(END_WRITE) = NULL; Xprimitive("closeout", EXTENSION, CLOSE_NODE); Xprimitive("special", EXTENSION, SPECIAL_NODE); Xprimitive("immediate", EXTENSION, IMMEDIATE_CODE); Xprimitive("end", STOP, 0); Xprimitive("dump", STOP, 1); Xtext(FROZEN_PROTECTION) = make_string_given("inaccessible"); Xno_new_control_sequence = TRUE; X#endif X} SHAR_EOF chmod 0444 cmds.c || echo "restore of cmds.c fails" set `wc -c cmds.c`;Sum=$1 if test "$Sum" != "33231" then echo original size 33231, current size $Sum;fi echo "x - extracting cmds.h (Text)" sed 's/^X//' << 'SHAR_EOF' > cmds.h && X X/* X * Copyright 1986, 1987 Pat Joseph Monardo. All rights reserved. X * Copying of this file is granted according to the provisions X * specified in the file COPYING which must accompany this file. X */ X X X/* X * cmds.h X */ X X#define ESCAPE 0 X#define RELAX 0 X#define LEFT_BRACE 1 X#define RIGHT_BRACE 2 X#define MATH_SHIFT 3 X#define TAB_MARK 4 X#define CAR_RET 5 X#define OUT_PARAM 5 X#define MAC_PARAM 6 X#define SUP_MARK 7 X#define SUB_MARK 8 X#define IGNORE 9 X#define ENDV 9 X#define SPACER 10 X#define LETTER 11 X#define OTHER_CHAR 12 X#define ACTIVE_CHAR 13 X#define PAR_END 13 X#define MATCH 13 X#define COMMENT 14 X#define END_MATCH 14 X#define STOP 14 X#define INVALID_CHAR 15 X#define DELIM_NUM 15 X#define MAX_CHAR_CODE 15 X#define CHAR_NUM 16 X#define MATH_CHAR_NUM 17 X#define MARK 18 X#define XRAY 19 X#define MAKE_BOX 20 X#define HMOVE 21 X#define VMOVE 22 X#define UN_HBOX 23 X#define UN_VBOX 24 X#define REMOVE_ITEM 25 X#define HSKIP 26 X#define VSKIP 27 X#define MSKIP 28 X#define KERN 29 X#define MKERN 30 X#define LEADER_SHIP 31 X#define HALIGN 32 X#define VALIGN 33 X#define NO_ALIGN 34 X#define VRULE 35 X#define HRULE 36 X#define INSERT 37 X#define VADJUST 38 X#define IGNORE_SPACES 39 X#define AFTER_ASSIGNMENT 40 X#define AFTER_GROUP 41 X#define BREAK_PENALTY 42 X#define START_PAR 43 X#define ITAL_CORR 44 X#define ACCENT 45 X#define MATH_ACCENT 46 X#define DISCRETIONARY 47 X#define EQ_NO 48 X#define LEFT_RIGHT 49 X#define MATH_COMP 50 X#define LIMIT_SWITCH 51 X#define ABOVE 52 X#define MATH_STYLE 53 X#define MATH_CHOICE 54 X#define NON_SCRIPT 55 X#define VCENTER 56 X#define CASE_SHIFT 57 X#define MESSAGE 58 X#define EXTENSION 59 X#define IN_STREAM 60 X#define BEGIN_GROUP 61 X#define END_GROUP 62 X#define OMIT 63 X#define EX_SPACE 64 X#define RADICAL 65 X#define END_CS_NAME 66 X#define MIN_INTERNAL 67 X#define CHAR_GIVEN 67 X#define MATH_GIVEN 68 X#define LAST_ITEM 69 X X#define MAX_NON_PREFIXED_COMMAND 69 X X#define TOKS_REGISTER 70 X#define ASSIGN_TOKS 71 X#define ASSIGN_INT 72 X#define ASSIGN_DIMEN 73 X#define ASSIGN_GLUE 74 X#define ASSIGN_MU_GLUE 75 X#define ASSIGN_FONT_DIMEN 76 X#define ASSIGN_FONT_INT 77 X#define SET_AUX 78 X#define SET_PREV_GRAF 79 X#define SET_PAGE_DIMEN 80 X#define SET_PAGE_INT 81 X#define SET_BOX_DIMEN 82 X#define SET_SHAPE 83 X#define DEF_CODE 84 X#define DEF_FAMILY 85 X#define SET_FONT 86 X#define DEF_FONT 87 X#define REGISTER 88 X#define MAX_INTERNAL 88 X#define ADVANCE 89 X#define MULTIPLY 90 X#define DIVIDE 91 X#define PREFIX 92 X#define LET 93 X#define SHORTHAND_DEF 94 X#define READ_TO_CS 95 X#define DEF 96 X#define SET_BOX 97 X#define HYPH_DATA 98 X#define SET_INTERACTION 99 X#define MAX_COMMAND 99 X X#define UNDEFINED_CS (MAX_COMMAND + 1) X#define EXPAND_AFTER (MAX_COMMAND + 2) X#define NO_EXPAND (MAX_COMMAND + 3) X#define INPUT (MAX_COMMAND + 4) X#define IF_TEST (MAX_COMMAND + 5) X#define FI_OR_ELSE (MAX_COMMAND + 6) X#define CS_NAME (MAX_COMMAND + 7) X#define CONVERT (MAX_COMMAND + 8) X#define THE (MAX_COMMAND + 9) X#define TOP_BOT_MARK (MAX_COMMAND + 10) SHAR_EOF echo "End of part 4" echo "File cmds.h is continued in part 5" echo "5" > s2_seq_.tmp exit 0