LaTeX for Xenix (4 of 14)
G Geers
glenn at extro.ucc.su.oz.au
Fri Feb 16 10:36:44 AEST 1990
---- 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
More information about the Comp.unix.xenix
mailing list