mark@comp.vuw.ac.nz (Mark Davies) (12/13/87)
Apologies for the size of this posting and the probable inappropriateness
of the newsgroups sent to (they were the most appropriate I could think
of).
What follows are context diffs of the changes I have made to Common TeX 2.1
in an attempt to get it to pass the trip test.
It includes:
o Several bug fixes, most importantly one in def.c where the function
trap_zero_glue was not getting called due to a missing pair of ().
o The changes made to TeX in version 2.1 to correct anomalies in
discretionary breaks.
o Various fixes of spelling/punctuation/grammar in the error messages
Common TeX with these changes almost passes the version of the Trip Test
distributed with the UNIX TeX 2.1 release (the dvi file produced is fine,
but there are a couple of discrepancies in the log file that I am not sure
of yet).
NOTE: Your line numbers will probably differ as I have been adding comments
to my version but have not included them here as they would more than
triple the size of this diff.
-- mark
diff -c Common.TeX.orig/box.c Common.TeX/box.c
*** Common.TeX.orig/box.c Tue Jul 28 17:40:53 1987
--- Common.TeX/box.c Tue Dec 1 00:08:03 1987
***************
*** 264,270
print_char('*');
else {
print_scaled(width(p));
! print(s);
if (stretch(p) != 0) {
print(" plus ");
print_glue(stretch(p), stretch_order(p), s);
--- 264,270 -----
print_char('*');
else {
print_scaled(width(p));
! if (s) print(s);
if (stretch(p) != 0) {
print(" plus ");
print_glue(stretch(p), stretch_order(p), s);
diff -c Common.TeX.orig/boxlists.c Common.TeX/boxlists.c
*** Common.TeX.orig/boxlists.c Tue Jul 28 17:40:54 1987
--- Common.TeX/boxlists.c Tue Nov 17 21:27:58 1987
***************
*** 665,673
you_cant();
help_delete_last();
if (cur_chr == KERN_NODE)
! help_line[1] = "Try `I\\kern-\\lastkern instead.";
else if (cur_chr != GLUE_NODE)
! help_line[1] = "Perhaps you can make an output routine do it.";
error();
}
} else if (!is_char_node(tail) && type(tail) == cur_chr) {
--- 665,673 -----
you_cant();
help_delete_last();
if (cur_chr == KERN_NODE)
! help_line[1] = "Try `I\\kern-\\lastkern' instead.";
else if (cur_chr != GLUE_NODE)
! help_line[1] = "Perhaps you can make the output routine do it.";
error();
}
} else if (!is_char_node(tail) && type(tail) == cur_chr) {
diff -c Common.TeX.orig/cmds.c Common.TeX/cmds.c
*** Common.TeX.orig/cmds.c Tue Jul 28 17:40:55 1987
--- Common.TeX/cmds.c Fri Dec 4 14:34:44 1987
***************
*** 690,696
break;
case SCROLL_MODE:
! print_esc("scroll");
break;
default:
--- 690,696 -----
break;
case SCROLL_MODE:
! print_esc("scrollmode");
break;
default:
***************
*** 747,753
break;
case LONG_CALL:
! print("long macro");
break;
case OUTER_CALL:
--- 747,753 -----
break;
case LONG_CALL:
! print_esc("long macro");
break;
case OUTER_CALL:
***************
*** 1195,1201
primitive("noalign", NO_ALIGN, 0);
primitive("noexpand", NO_EXPAND, 0);
eq_type(FROZEN_DONT_EXPAND) = DONT_EXPAND;
! text(FROZEN_DONT_EXPAND) = make_string_given("notexpanded");
primitive("nonscript", NON_SCRIPT, 0);
primitive("omit", OMIT, 0);
primitive("parshape", SET_SHAPE, 0);
--- 1195,1201 -----
primitive("noalign", NO_ALIGN, 0);
primitive("noexpand", NO_EXPAND, 0);
eq_type(FROZEN_DONT_EXPAND) = DONT_EXPAND;
! text(FROZEN_DONT_EXPAND) = make_string_given("notexpanded:");
primitive("nonscript", NON_SCRIPT, 0);
primitive("omit", OMIT, 0);
primitive("parshape", SET_SHAPE, 0);
diff -c Common.TeX.orig/def.c Common.TeX/def.c
*** Common.TeX.orig/def.c Tue Jul 28 17:40:56 1987
--- Common.TeX/def.c Mon Dec 7 11:28:08 1987
***************
*** 563,569
if (p < GLUE_VAL) {
word_def(l, cur_val);
} else {
! trap_zero_glue;
def(l, GLUE_REF, (ptr) cur_val);
}
}
--- 563,569 -----
if (p < GLUE_VAL) {
word_def(l, cur_val);
} else {
! trap_zero_glue();
def(l, GLUE_REF, (ptr) cur_val);
}
}
***************
*** 602,608
scan_optional_equals();
scan_int();
if (cur_val < 0) {
! print_err("Bad");
print_esc("prevgraf");
help_prevgraf();
int_error(cur_val);
--- 602,608 -----
scan_optional_equals();
scan_int();
if (cur_val < 0) {
! print_err("Bad ");
print_esc("prevgraf");
help_prevgraf();
int_error(cur_val);
***************
*** 813,819
use_err_help = TRUE;
else if (long_help_seen)
help_err_msg();
! else help_poirot();
error();
use_err_help = FALSE;
}
--- 818,828 -----
use_err_help = TRUE;
else if (long_help_seen)
help_err_msg();
! else {
! if (interaction < ERROR_STOP_MODE)
! long_help_seen = TRUE;
! help_poirot();
! }
error();
use_err_help = FALSE;
}
***************
*** 915,924
help_missing_cs ()
{
help5("Please don't say `\\def cs{...}', say `\\def\\cs{...}'.",
! "I've inserted an innaccessible control sequence so that your",
"definition will be completed without mixing me up too badly.",
"You can recover graciously from this error, if you're",
! "careful; see excersize 27.2 in the TeXbook.");
}
help_prefix ()
--- 928,937 -----
help_missing_cs ()
{
help5("Please don't say `\\def cs{...}', say `\\def\\cs{...}'.",
! "I've inserted an inaccessible control sequence so that your",
"definition will be completed without mixing me up too badly.",
"You can recover graciously from this error, if you're",
! "careful; see exercise 27.2 in The TeXbook.");
}
help_prefix ()
***************
*** 971,977
help_font_magnification ()
{
! help1("The magnification ratio must be between 1 and 32768");
}
help_mag()
--- 984,990 -----
help_font_magnification ()
{
! help1("The magnification ratio must be between 1 and 32768.");
}
help_mag()
diff -c Common.TeX.orig/eq.c Common.TeX/eq.c
*** Common.TeX.orig/eq.c Tue Jul 28 17:40:56 1987
--- Common.TeX/eq.c Mon Nov 30 23:48:57 1987
***************
*** 380,386
break;
case DISPLAY_INDENT_CODE:
! print_esc("diplayindent");
break;
case DISPLAY_WIDTH_CODE:
--- 380,386 -----
break;
case DISPLAY_INDENT_CODE:
! print_esc("displayindent");
break;
case DISPLAY_WIDTH_CODE:
diff -c Common.TeX.orig/error.c Common.TeX/error.c
*** Common.TeX.orig/error.c Tue Jul 28 17:40:57 1987
--- Common.TeX/error.c Tue Dec 1 00:22:44 1987
***************
*** 328,335
help_wounded ()
{
! help2("One of your earlier faux pas has wounded me deeply,",
! "so I'm barely conscious. Please fix it and try again.");
}
help_interrupt ()
--- 328,335 -----
help_wounded ()
{
! help2("One of your faux pas seems to have wounded me deeply...",
! "in fact, I'm barely conscious. Please fix it and try again.");
}
help_interrupt ()
***************
*** 336,340
{
help3("You rang?",
"Try to insert some instructions for me (e.g., `I\\showlists),",
! "unless you just want to jump out by typing `X'.");
}
--- 336,340 -----
{
help3("You rang?",
"Try to insert some instructions for me (e.g., `I\\showlists),",
! "unless you just want to quit by typing `X'.");
}
diff -c Common.TeX.orig/eval.c Common.TeX/eval.c
*** Common.TeX.orig/eval.c Tue Jul 28 17:40:57 1987
--- Common.TeX/eval.c Tue Nov 17 21:25:53 1987
***************
*** 718,722
help4("Sorry, but I'm not programmed to handle this case;",
"I'll just pretend that you didn't ask for it.",
"If you're in the wrong mode, you might be able to",
! "return to the right one by typing `I}' or `I\par'.");
}
--- 718,722 -----
help4("Sorry, but I'm not programmed to handle this case;",
"I'll just pretend that you didn't ask for it.",
"If you're in the wrong mode, you might be able to",
! "return to the right one by typing `I}' or `I$' or `I\\par'.");
}
diff -c Common.TeX.orig/expand.c Common.TeX/expand.c
*** Common.TeX.orig/expand.c Tue Jul 28 17:40:58 1987
--- Common.TeX/expand.c Wed Dec 2 14:27:01 1987
***************
*** 442,448
{
help6("I've run across a `}' that doesn't seem to match anything.",
"For example, `\\def\\a#1{...}' and `\\a}' would produce",
! "this error. If you simply proceed nw, the `\\par' that",
"I've just inserted will cause me to report a runaway",
"argument that might be the root of the problem. But if",
"your `}' was spurious, just type `2' and it will go away.");
--- 482,488 -----
{
help6("I've run across a `}' that doesn't seem to match anything.",
"For example, `\\def\\a#1{...}' and `\\a}' would produce",
! "this error. If you simply proceed now, the `\\par' that",
"I've just inserted will cause me to report a runaway",
"argument that might be the root of the problem. But if",
"your `}' was spurious, just type `2' and it will go away.");
***************
*** 460,466
help_cs ()
{
help2("The control sequence marked <to be read again> should",
! "not appear between \\csname and \\endcsname");
}
help_extra_if ()
--- 500,506 -----
help_cs ()
{
help2("The control sequence marked <to be read again> should",
! "not appear between \\csname and \\endcsname.");
}
help_extra_if ()
diff -c Common.TeX.orig/fmt.c Common.TeX/fmt.c
*** Common.TeX.orig/fmt.c Tue Jul 28 17:40:59 1987
--- Common.TeX/fmt.c Fri Dec 4 15:24:33 1987
***************
*** 409,415
dump_int(exten_base[k]);
dump_int(param_base[k]);
dump_int(font_glue[k]);
! print_nl("\\font ");
print_esc("");
print_str(font_id_text(k));
print_char('=');
--- 409,415 -----
dump_int(exten_base[k]);
dump_int(param_base[k]);
dump_int(font_glue[k]);
! print_nl("\\font");
print_esc("");
print_str(font_id_text(k));
print_char('=');
diff -c Common.TeX.orig/hash.c Common.TeX/hash.c
*** Common.TeX.orig/hash.c Tue Jul 28 17:40:59 1987
--- Common.TeX/hash.c Tue Dec 1 16:24:08 1987
***************
*** 86,96
print_char(' ');
}
} else if (p < ACTIVE_BASE)
! print_esc("IMPOSSIBLE");
else print_str(p - ACTIVE_BASE);
} else if (p >= UNDEFINED_CONTROL_SEQUENCE)
print_esc("IMPOSSIBLE.");
! else if (text(p) < 0 || text(p) > str_ptr)
print_esc("NONEXISTENT.");
else {
print_esc("");
--- 108,118 -----
print_char(' ');
}
} else if (p < ACTIVE_BASE)
! print_esc("IMPOSSIBLE.");
else print_str(p - ACTIVE_BASE);
} else if (p >= UNDEFINED_CONTROL_SEQUENCE)
print_esc("IMPOSSIBLE.");
! else if (text(p) < 0 || text(p) >= str_ptr)
print_esc("NONEXISTENT.");
else {
print_esc("");
diff -c Common.TeX.orig/hyph.c Common.TeX/hyph.c
*** Common.TeX.orig/hyph.c Tue Jul 28 17:41:00 1987
--- Common.TeX/hyph.c Tue Nov 17 19:27:37 1987
***************
*** 703,709
}
if (trie_o[q] != MIN_QUARTERWORD) {
print_err("Duplicate pattern");
! help1("(See Appendix H)");
error();
}
trie_o[q] = v;
--- 703,709 -----
}
if (trie_o[q] != MIN_QUARTERWORD) {
print_err("Duplicate pattern");
! help1("(See Appendix H.)");
error();
}
trie_o[q] = v;
***************
*** 718,724
default:
print_err("Bad ");
print_esc("patterns");
! help1("(See Appendix H)");
error();
break;
}
--- 718,724 -----
default:
print_err("Bad ");
print_esc("patterns");
! help1("(See Appendix H.)");
error();
break;
}
diff -c Common.TeX.orig/math.c Common.TeX/math.c
*** Common.TeX.orig/math.c Tue Jul 28 17:41:01 1987
--- Common.TeX/math.c Mon Nov 30 23:43:46 1987
***************
*** 246,252
show_fraction_noad (p)
ptr p;
{
! print_esc("fraction, thickness");
if (thickness(p) == DEFAULT_CODE)
print("= default");
else print_scaled(thickness(p));
--- 246,252 -----
show_fraction_noad (p)
ptr p;
{
! print_esc("fraction, thickness ");
if (thickness(p) == DEFAULT_CODE)
print("= default");
else print_scaled(thickness(p));
diff -c Common.TeX.orig/page.c Common.TeX/page.c
*** Common.TeX.orig/page.c Tue Jul 28 17:41:03 1987
--- Common.TeX/page.c Wed Nov 25 22:41:29 1987
***************
*** 884,890
help_box_255 ()
{
! help2("You shouldn't use \\box255 except in output routines.",
"Proceed, and I'll discard its present contents.");
}
--- 884,890 -----
help_box_255 ()
{
! help2("You shouldn't use \\box255 except in \\output routines.",
"Proceed, and I'll discard its present contents.");
}
***************
*** 891,896
help_dead_cycles ()
{
help3("I've concluded that your \\output is awry; it never does a",
! "\\shipout, so I'm shipping \box255 out myself. Next time",
"increase \\maxdeadcycles if you want me to be more patient!");
}
--- 892,897 -----
help_dead_cycles ()
{
help3("I've concluded that your \\output is awry; it never does a",
! "\\shipout, so I'm shipping \\box255 out myself. Next time",
"increase \\maxdeadcycles if you want me to be more patient!");
}
diff -c Common.TeX.orig/par.c Common.TeX/par.c
*** Common.TeX.orig/par.c Tue Jul 28 17:41:04 1987
--- Common.TeX/par.c Sat Dec 5 13:02:54 1987
***************
*** 186,243
int break_type;
{
ptr s;
! qword t;
ptr v;
do_all_six(set_break_width_to_background);
! if (break_type == UNHYPHENATED || cur_p == NULL) {
! for (s = cur_p; s != NULL; s = link(s)) {
! if (is_char_node(s))
! return;
! switch (type(s))
! {
! case GLUE_NODE:
! v = glue_ptr(s);
! break_width[1] -= width(v);
! break_width[2 + stretch_order(v)] -= stretch(v);
! break_width[6] -= shrink(v);
! break;
!
! case PENALTY_NODE:
! break;
!
! case MATH_NODE:
! case KERN_NODE:
! if (subtype(s) == ACC_KERN)
! return;
! else break_width[1] -= width(s);
! break;
!
! default:
! return;
! break;
! }
! }
! } else {
t = replace_count(cur_p);
! s = cur_p;
while (t > 0) {
decr(t);
! s = link(s);
! if (is_char_node(s))
! break_width[1] -= width_char(s);
else {
! switch (type(s))
{
case LIGATURE_NODE:
! break_width[1] -= width_lig_char(s);
break;
case HLIST_NODE:
case VLIST_NODE:
case RULE_NODE:
case KERN_NODE:
! break_width[1] -= width(s);
break;
default:
--- 186,217 -----
int break_type;
{
ptr s;
! int t;
ptr v;
do_all_six(set_break_width_to_background);
! s = cur_p;
! if (break_type > UNHYPHENATED && cur_p != NULL) {
t = replace_count(cur_p);
! v = cur_p;
! s = post_break(cur_p);
while (t > 0) {
decr(t);
! v = link(v);
! if (is_char_node(v))
! break_width[1] -= width_char(v);
else {
! switch (type(v))
{
case LIGATURE_NODE:
! break_width[1] -= width_lig_char(v);
break;
case HLIST_NODE:
case VLIST_NODE:
case RULE_NODE:
case KERN_NODE:
! break_width[1] -= width(v);
break;
default:
***************
*** 246,252
}
}
}
! for (s = post_break(cur_p); s != NULL; s = link(s)) {
if (is_char_node(s))
break_width[1] += width_char(s);
else {
--- 220,226 -----
}
}
}
! for (; s != NULL; s = link(s)) {
if (is_char_node(s))
break_width[1] += width_char(s);
else {
***************
*** 259,276
case HLIST_NODE:
case VLIST_NODE:
case RULE_NODE:
- case KERN_NODE:
break_width[1] += width(s);
break;
default:
confusion("disc2");
break;
}
}
}
break_width[1] += disc_width;
}
}
try_break (pi, break_type)
--- 233,286 -----
case HLIST_NODE:
case VLIST_NODE:
case RULE_NODE:
break_width[1] += width(s);
break;
+ case KERN_NODE:
+ if (t == 0 && subtype(s) != ACC_KERN)
+ t = -1; /* discardable */
+ else
+ break_width[1] += width(s);
+ break;
+
default:
confusion("disc2");
break;
}
}
+ incr(t);
}
break_width[1] += disc_width;
+ if (t == 0)
+ s = link(v); /* more nodes may be discardable after
+ the break */
}
+ for (; s != NULL; s = link(s)) {
+ if (is_char_node(s))
+ return;
+ switch (type(s)) {
+ case GLUE_NODE:
+ v = glue_ptr(s);
+ break_width[1] -= width(v);
+ break_width[2 + stretch_order(v)] -= stretch(v);
+ break_width[6] -= shrink(v);
+ break;
+
+ case PENALTY_NODE:
+ break;
+
+ case MATH_NODE:
+ case KERN_NODE:
+ if (subtype(s) == ACC_KERN)
+ return;
+ else break_width[1] -= width(s);
+ break;
+
+ default:
+ return;
+ break;
+ }
+ }
}
try_break (pi, break_type)
***************
*** 971,980
}
link(q) = r;
disc_break = TRUE;
! }
! if (!is_char_node(q) &&
! (type(q) == MATH_NODE || type(q) == KERN_NODE))
! width(q) = 0;
}
} else {
q = temp_head;
--- 981,990 -----
}
link(q) = r;
disc_break = TRUE;
! } else
! if (type(q) == MATH_NODE ||
! type(q) == KERN_NODE)
! width(q) = 0;
}
} else {
q = temp_head;
diff -c Common.TeX.orig/print.c Common.TeX/print.c
*** Common.TeX.orig/print.c Tue Jul 28 17:41:04 1987
--- Common.TeX/print.c Sun Nov 29 12:22:22 1987
***************
*** 304,310
print_char(*j);
n -= v;
}
! if (n == 0) return;
k = j + 2;
u = v / (*(k - 1) - '0');
if (*(k - 1) == '2') {
--- 324,330 -----
print_char(*j);
n -= v;
}
! if (n <= 0) return; /* nonpositive input produces no output */
k = j + 2;
u = v / (*(k - 1) - '0');
if (*(k - 1) == '2') {
diff -c Common.TeX.orig/scan.c Common.TeX/scan.c
*** Common.TeX.orig/scan.c Tue Jul 28 17:41:05 1987
--- Common.TeX/scan.c Mon Dec 7 12:56:32 1987
***************
*** 245,250
case GLUE_VAL:
cur_val = skip(cur_val);
break;
}
cur_val_level = m;
break;
--- 286,295 -----
case GLUE_VAL:
cur_val = skip(cur_val);
break;
+
+ case MU_VAL:
+ cur_val = mu_skip(cur_val);
+ break;
}
cur_val_level = m;
break;
***************
*** 363,369
scan_int();
if (cur_val < 0 || cur_val > 255) {
print_err("Bad character code");
! help_char();
int_error(cur_val);
cur_val = 0;
}
--- 408,414 -----
scan_int();
if (cur_val < 0 || cur_val > 255) {
print_err("Bad character code");
! help_char_num();
int_error(cur_val);
cur_val = 0;
}
***************
*** 741,748
help_mathchar ()
{
! help2("A numeric \\mathchar code must be between 0 and 32767.",
! "I changed this one to zero");
}
help_number ()
--- 841,848 -----
help_mathchar ()
{
! help2("A numeric math code must be between 0 and 32767.",
! "I changed this one to zero.");
}
help_number ()
***************
*** 753,762
help_char ()
{
! help2("The numeric code following \\char must be between 0 and 255.",
"I changed this one to zero.");
}
help_char_const ()
{
help2("A one-character control sequence belongs after a ` mark.",
--- 853,868 -----
help_char ()
{
! help2("The numeric code for a character must be between 0 and 127.",
"I changed this one to zero.");
}
+ help_char_num ()
+ {
+ help2("A character number must be between 0 and 255.",
+ "I changed this one to zero.");
+ }
+
help_char_const ()
{
help2("A one-character control sequence belongs after a ` mark.",
***************
*** 772,779
help_missing_number ()
{
help3("A number should have been here; I inserted `0'.",
! "(If you can't figure out why I needed a number,",
! "look up `weird error' in the TeX manual index.)");
}
help_filll ()
--- 878,885 -----
help_missing_number ()
{
help3("A number should have been here; I inserted `0'.",
! "(If you can't figure out why I needed to see a number,",
! "look up `weird error' in the index to The TeXbook.)");
}
help_filll ()
***************
*** 783,792
help_mu ()
{
! help4("The unit of measurement in \\mskip glue must be mu.",
"To recover gracefully from this error, it's best to",
! "delete the erroneous units; e.g. type `2' to delete",
! "two letters. (See Chapter 27 of the manual.)");
}
help_mu_error ()
--- 889,898 -----
help_mu ()
{
! help4("The unit of measurement in math glue must be mu.",
"To recover gracefully from this error, it's best to",
! "delete the erroneous units; e.g., type `2' to delete",
! "two letters. (See Chapter 27 of The TeXbook.)");
}
help_mu_error ()
***************
*** 812,819
help_thee ()
{
! help2("I'm forgetting what you said",
! "and using zero for this \\the.");
}
help_left ()
--- 918,924 -----
help_thee ()
{
! help1("I'm forgetting what you said and using zero instead.");
}
help_left ()
***************
*** 840,844
help_reg ()
{
! help1("I'm forgetting what you said and not changing anything.");
}
--- 945,950 -----
help_reg ()
{
! help2("A register number must be between 0 and 255.",
! "I changed this one to zero.");
}
diff -c Common.TeX.orig/tex.c Common.TeX/tex.c
*** Common.TeX.orig/tex.c Tue Jul 28 17:41:06 1987
--- Common.TeX/tex.c Fri Dec 4 15:38:58 1987
***************
*** 35,41
#include "print.h"
#include "page.h"
! char banner[] = "This is Common TeX, Version 2.1";
int ready_already;
main (argc, argv)
--- 35,41 -----
#include "print.h"
#include "page.h"
! char banner[] = "This is Common TeX, Version 2.1.1";
int ready_already;
main (argc, argv)
diff -c Common.TeX.orig/texext.c Common.TeX/texext.c
*** Common.TeX.orig/texext.c Tue Jul 28 17:41:06 1987
--- Common.TeX/texext.c Mon Dec 7 16:19:42 1987
***************
*** 124,130
case CLOSE_NODE:
print_write("closeout", p);
- print_int(write_stream(p));
break;
case SPECIAL_NODE:
--- 124,129 -----
case CLOSE_NODE:
print_write("closeout", p);
break;
case SPECIAL_NODE:
***************
*** 353,358
help_unbal_write ()
{
! help2("On this page there's a \\write with fewer real {'s than }'s",
"I can't handle that very well; good luck.");
}
--- 358,363 -----
help_unbal_write ()
{
! help2("On this page there's a \\write with fewer real {'s than }'s.",
"I can't handle that very well; good luck.");
}
diff -c Common.TeX.orig/tfm.c Common.TeX/tfm.c
*** Common.TeX.orig/tfm.c Tue Jul 28 17:41:07 1987
--- Common.TeX/tfm.c Fri Dec 4 15:24:42 1987
***************
*** 68,74
{print_err("Font "); sprint_cs(u); \
print_char('='); print_file_name(nom, aire, null_str); \
if (s >= 0) {print(" at "); print_scaled(s); print("pt");} \
! else if (s != -1000) {print(" scaled "); print_scaled(-s);}}
#define get_font_byte() \
(font_byte = getc(tfm_file))
--- 68,74 -----
{print_err("Font "); sprint_cs(u); \
print_char('='); print_file_name(nom, aire, null_str); \
if (s >= 0) {print(" at "); print_scaled(s); print("pt");} \
! else if (s != -1000) {print(" scaled "); print_int(-s);}}
#define get_font_byte() \
(font_byte = getc(tfm_file))
***************
*** 416,422
{
if (tracing_lost_chars > 0) {
begin_diagnostic();
! print("Missing character: There is no ");
print_ASCII(c);
print(" in font ");
print_str(font_name[f]);
--- 447,453 -----
{
if (tracing_lost_chars > 0) {
begin_diagnostic();
! print_nl("Missing character: There is no ");
print_ASCII(c);
print(" in font ");
print_str(font_name[f]);
***************
*** 479,485
help_font_param ()
{
help2("To increase the number of font parameters, you must",
! "use \\fontdimen immediately after the font code is defined.");
}
help_font_cs ()
--- 516,522 -----
help_font_param ()
{
help2("To increase the number of font parameters, you must",
! "use \\fontdimen immediately after the \\font is loaded.");
}
help_font_cs ()
diff -c Common.TeX.orig/token.c Common.TeX/token.c
*** Common.TeX.orig/token.c Tue Jul 28 17:41:07 1987
--- Common.TeX/token.c Wed Dec 2 14:09:58 1987
***************
*** 508,515
{
help4("I suspect you have forgotten a `}', causing me",
"to read past where you wanted me to stop.",
! "Either type `I}' to try recovering,",
! "or type 'X' and fix your file.");
}
help_funny ()
--- 535,542 -----
{
help4("I suspect you have forgotten a `}', causing me",
"to read past where you wanted me to stop.",
! "I'll try to recover; but if the error is serious,",
! "you'd better type `E' or `X' now and fix your file.");
}
help_funny ()
diff -c Common.TeX.orig/tokenlists.c Common.TeX/tokenlists.c
*** Common.TeX.orig/tokenlists.c Tue Jul 28 17:41:08 1987
--- Common.TeX/tokenlists.c Sat Dec 5 15:31:25 1987
***************
*** 400,406
else {
m = token(p) / 0400;
c = token(p) % 0400;
! if (m < 0 || c > 127)
print_esc("BAD.");
else {
switch (m)
--- 492,498 -----
else {
m = token(p) / 0400;
c = token(p) % 0400;
! if (token(p) < 0 || c > 127)
print_esc("BAD.");
else {
switch (m)
***************
*** 418,429
break;
case MAC_PARAM:
! print_char(c);
! print_char(c);
break;
case OUT_PARAM:
! print_char(match_chr);
if (c <= 9)
print_char(c + '0');
else {
--- 510,521 -----
break;
case MAC_PARAM:
! print_str(c);
! print_str(c);
break;
case OUT_PARAM:
! print_str(match_chr);
if (c <= 9)
print_char(c + '0');
else {
***************
*** 434,440
case MATCH:
match_chr = c;
! print_char(c);
incr(n);
print_char(n);
if (n > '9')
--- 526,532 -----
case MATCH:
match_chr = c;
! print_str(c);
incr(n);
print_char(n);
if (n > '9')
diff -c Common.TeX.orig/tokenstack.c Common.TeX/tokenstack.c
*** Common.TeX.orig/tokenstack.c Tue Jul 28 17:41:08 1987
--- Common.TeX/tokenstack.c Fri Dec 4 16:45:50 1987
***************
*** 282,288
for (i = start; i < j; incr(i)) {
if (i == loc)
set_trick_count();
! print_char(buffer[i]);
}
}
} else {
--- 337,343 -----
for (i = start; i < j; incr(i)) {
if (i == loc)
set_trick_count();
! print_str(buffer[i]);
}
}
} else {
--
Domainised: mark@comp.vuw.ac.nz Bang form: ...!uunet!vuwcomp!mark