% Bugs (sigh) in Computers \& Typesetting

\input manmac
\def\curl{\mathop{\rm curl}}
\def\cycle{{\rm cycle}}\indent
\def\dashto{\mathrel{\hbox{-\thinspace-\kern-.05em}}}
\font\sltt=cmsltt10
\font\niness=cmss9
\font\ninessi=cmssi9
\proofmodefalse
\raggedbottom
\output{\hsize=29pc \onepageout{\unvbox255\kern-\dimen@ \vfil}}

\def\today{\number\day\
  \ifcase\month\or
  Jan\or Feb\or Mar\or Apr\or May\or Jun\or
  Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi
  \ \number\year}

\def\cutpar{{\parfillskip=0pt\par}}

\def\rhead{Bugs in {\tensl Computers \& Typesetting, 2001}}
\def\bugonpage#1(#2) \par{\bigbreak\tenpoint
  \hrule width\hsize
  \line{\lower3.5pt\vbox to13pt{}Page #1\hfil(#2)}\hrule width\hsize
  \nobreak\medskip}
\def\buginvol#1(#2) \par{\bigbreak\penalty-1000\tenpoint
  \hrule width\hsize
  \line{\lower3.5pt\vbox to13pt{}Volume #1\hfil(#2)}\hrule width\hsize
  \nobreak\medskip}
\def\slMF{{\manual 89:;}\-{\manual <=>:}} % slant the logo
\def\0{\raise.7ex\hbox{$\scriptstyle\#$}}
\newcount\nn
\newdimen\nsize \newdimen\msize \newdimen\ninept \ninept=9pt
\newbox\eqbox \setbox\eqbox=\hbox{\kern2pt\eightrm=\kern2pt}

\tenpoint
\noindent This is a list of all substantial corrections made to {\sl Computers
\& Typesetting\/} between the first ``Millennium edition'' of 2000 and the
second such edition, which appeared late in 2001.
(More precisely, it lists errors to the 16th, 7th, 6th, 4th, and 5th
printings of Volumes A, B, C, D, and E, respectively, that were corrected
in the 17th, 8th, 7th, 5th, and 6th printings.)
Changes to the mini-indexes
and master indexes of Volumes B, D, and~E are not shown here unless they are
not obviously derivable from what has been shown.
\looseness=-1

% volume A

\bugonpage A16, line 7 from the bottom (06/30/01)

\font\magnifiedfiverm=cmr5 at 10pt
\tenpoint\indent
Ten-point type is different from%
  \magnifiedfiverm\ magnif{}ied f{}ive-point type.

\bugonpage A17, line 7 (06/30/01)

\ninepoint\indent
fications that grow in geometric ratios---something like equal-tempered
tuning\cutpar

\bugonpage A51, lines 18--20 (06/30/01)

\tenpoint\kern-6pt\noindent
$$\openup1pt\halign{\indent#\hfil\cr
|ff| yields ff\thinspace;$\!$\quad |fi| yields fi\thinspace;$\!$\quad
|fl| yields fl\thinspace;$\!$\quad
|ffi| yields ffi\thinspace;$\!$\quad |ffl| yields ffl\thinspace;\cr
|``| yields``\thinspace;\qquad |''| yields ''\thinspace;\qquad
|!||`| yields !`\thinspace;\qquad |?||`| yields ?`\thinspace;\cr
|--| yields --\thinspace;\qquad |---| yields ---\thinspace.\cr}$$

\bugonpage A52, line 7 from the bottom (06/30/01)

\tenpoint\kern-6pt\noindent
$$\halign{\indent\hbox to 50pt{#\hfil}&\hbox to 35pt{#\hfil}&#\hfil\cr
|\ae,\AE|&\ae,\thinspace\AE&(Latin ligature and Scandinavian letter AE)\cr}$$

\bugonpage A71, line 15 (06/30/01)

\tenpoint\indent
One of the interesting things that can happen when glue stretches and\cutpar

\bugonpage A180, line 20 (06/30/01)

\ninepoint\indent
Challenge number 5:\enspace
$\qquad\tenmath k=1.38065\times10^{-16}\rm\,erg\,K^{-1}$.

\bugonpage A254, line 12 from the bottom becomes two lines (04/09/01)

\ninepoint\noindent
\begintt
\output={\unvbox255
  \ifnum\outputpenalty<10000 \penalty\outputpenalty\fi}
\endtt

\bugonpage A292, lines 13--16 (06/30/01)

\def\s{\hskip0pt plus1pt}
\ninepoint\textindent{$\bull$}|\mathchoice|\s
$\langle$filler$\rangle$\s|{|\s$\langle$math mode material$\rangle$\s|}|\s
$\langle$filler$\rangle$\s|{|\s$\langle$math mode material$\rangle$\s|}|\break
$\langle$filler$\rangle$|{|$\langle$math mode material$\rangle$|}|
$\langle$filler$\rangle$|{|$\langle$math mode material$\rangle$|}|.
Four math lists, which are defined as in the
second alternative of a \<math field>, are
recorded in a ``choice item'' that is appended to the current list.

\bugonpage A306, line 7 (06/30/01)

\ninepoint\noindent
instead of a shelf{\kern0pt}ful.
In fact, the latter idea---to
insert an italic correction---is prefer-\cutpar

\bugonpage A323, line 12 from the bottom (06/30/01)

\ninepoint\noindent
\hbox to\parindent{\bf\hss18.31.\enspace}%
|$k=1.38065\times10^{-16}\rm\,erg\,K^{-1}$|.

\bugonpage A451, line 15 (01/30/01)

\tenpoint\noindent
{\sl Connecticut Yankee\/} come out with only nine or
ten bad hyphens:

\bugonpage A451, line 23 (01/30/01)

\tenpoint\noindent\begintt
  mo-er-der-mohren-mut-ter-mar-mor-mon-u-menten-macher.
\endtt

\bugonpage A454, lines 23--30 (06/30/01)

\begingroup
\hyphenpenalty=-1000 \pretolerance=-1 \tolerance=1000
\doublehyphendemerits=-100000 \finalhyphendemerits=-100000
\ddanger If a suitable starting letter is found, let it be in font~$f$.
Hyphenation is abandoned unless the |\hyphenchar| of~$f$ is a number
between 0 and~255, inclusive.
If this test is passed, \TeX\ continues to scan forward
until coming to something that's not one of the following three
``admissible items'': (1)~a character in font~$f$ whose |\lccode|
is nonzero; (2)~a ligature formed entirely from characters of type~(1);
(3)~an implicit kern. The first inadmissible item terminates this part of
the process; the trial word consists of all the letters found in admissible
items. Notice that all of these letters are in font~$f$.
\par\endgroup

\bugonpage A461, right column (07/08/01)

\eightpoint\noindent
\llap{*}|\char|, {\it 43--45}, 76, 86, 155, 283, $\underline{286}$,

\bugonpage A466, left column (07/09/01)

\eightpoint\noindent
\llap{*}|\floatingpenalty|, $\underline{123}$--$\underline{124}$,
 272, 281, {\it 363}.

\bugonpage A473, left column (06/30/01)

\eightpoint\noindent
orphans, {\sl see\/} widow words.

% volume B
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode

\hsize=35pc

\bugonpage B8, line 2 (05/04/01)

\tenpoint\noindent
statements will be meaningful. We insert the label
`\\{exit}' just before the `{\bf end}' of a procedure in\cutpar

\bugonpage B30, line $-4$ (05/04/01)

\ninepoint\noindent
\quad{\bf begin} \\{update\_terminal};\quad$\{\,$now the user sees
 the prompt for sure$\,\}$

\bugonpage B84, lines 22 and 27 (05/04/01)

\ninepoint\noindent
\quad$\\{ignore}=9$\quad$\{\,$characters to ignore ( |^^@| )$\,\}$\par
\noindent
\quad$\\{active\_char}=13$\quad$\{\,$characters that invoke
 macros ( |~| )$\,\}$

\bugonpage B280, lines 23 and 24 (04/08/01)

\tenpoint\noindent
or unset nodes; in particular, each mlist item appears in the
variable-size part of \\{mem}, so the \\{type} field is always present.

\bugonpage B382, line 6 (01/01/01)

\tenpoint\noindent
between `fl' and `y', then $m=2$, $t=2$, and $y_1$ will
be a ligature node for `fl' followed by an\cutpar

\bugonpage B386, line 11 (04/08/01)

\ninepoint\noindent
\quad$\\{qi}(2),\\{qi}(6)$: {\bf begin} $\\{cur\_r}\gets\\{rem\_byte}(q)$;%
 \quad$\{\,$\||=:|, \||=:>|$\,\}$

\bugonpage B475, line 12 (07/01/01)

\ninepoint\noindent
\qquad{\bf end};\quad$\{\,$now we are in vertical mode,
 working on the list that will contain the display$\,\}$

% volume C
\hsize=29pc
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\ddashto{\mathrel{\hbox{-\thinspace-\thinspace-\kern-.05em}}}
\def\tension{\mathop{\rm tension}}
\def\controls{\mathop{\rm controls}}
\def\and{\,{\rm and}\,}

\bugonpage C204, line 3 from the bottom (07/08/01)

\ninepoint\noindent
slightly. If $\\{autorounding}>1$,
you get even more changes: Paths are perturbed slightly\cutpar

\bugonpage C238, lines 9 and 8 from the bottom (07/08/01)

\ninepoint\noindent
tance is ${\rm length}(z_4-z_1)$. But there's a slicker solution:
Just calculate
$$\hbox{abs ypart$((z_1-z_2)\mathbin{\rm rotated}-{\rm angle}(z_3-z_2))$.}$$

\bugonpage C313, bottom line (06/30/01)

\rightline{\eightss--- LA ROCHEFOUCAULD, {\eightssi Maximes\/}\enspace(1665)}

\bugonpage C352, left column (06/30/01)

\eightpoint\noindent
La Rochefoucauld, Fran\c cois VI, 313.

\bugonpage C357, right column (07/08/01)

\eightpoint\noindent
\llap{*}|true|, 55, {\it64\/}--{\it65}, 170, 210.

% Volume D
\def\\#1{\hbox{\it#1\/\kern.05em}} % italic type for identifiers
\def\to{\mathrel{.\,.}} % double dot, used only in math mode

\hsize=35pc

\bugonpage D8, line 2 (05/04/01)

\tenpoint\noindent
statements will be meaningful. We insert the label
`\\{exit}' just before the `{\bf end}' of a procedure in\cutpar

\bugonpage D28, line $-8$ (05/04/01)

\ninepoint\noindent
\quad{\bf begin} \\{update\_terminal};\quad$\{\,$now the user sees
 the prompt for sure$\,\}$

\bugonpage D101, line 21 (07/08/01)

\ninepoint\noindent
\quad{\bf define} $\\{subscr\_head\_loc}(\hbox{\tt\#})\equiv\hbox{\tt\#}+1$
\quad$\{\,$where \\{value}, \\{subscr\_head}, and \\{attr\_head} are$\,\}$

\bugonpage D180, lines 22 and 23 (01/26/01)

\tenpoint\noindent
$(y,-x)$ will appear in node~$p$. Similarly, a fourth-octant
transformation will have been applied after the transition, so
we will have $\\{x\_coord}(q)=\hbox{$-x$}$ and $\\{y\_coord}(q)=y$.

\bugonpage D196, lines 7 and 8 (01/26/01)

\tenpoint\noindent
where $x'(t)\ge0$ we have $\\{right\_type}=%
\\{first\_octant}$ or $\\{right\_type}=\\{eighth\_octant}$; in regions where
$x'(t)\le0$,
we have $\\{right\_type}=\\{fifth\_octant}$ or $\\{right\_type}=\\{fourth%
\_octant}$.

\bugonpage D511, line 17 (07/03/01)

\tenpoint\noindent
from appearing again.

% volume E
\hsize=29pc

\newbox\shorthyf \setbox\shorthyf=\hbox{-\kern-.05em}
\mathchardef\period=`\.
{\catcode`\-=\active \global\def-{\copy\shorthyf\mkern3.9mu}
 \catcode`\.=\active \global\def.{\period\mkern3mu}}
\def\8#1{\mathrel{\mathcode`\.="8000 \mathcode`\-="8000
  #1\unkern}} % `..' and `--'

\bugonpage E9, line 9 (07/03/01)

\tenpoint\indent
|[92] [123] [124]) ) )|

\bye


