code reading dds

Code ReadingErrata

The following is a list of typographical and other errors found in the book:
Diomidis Spinellis. Code Reading: The Open Source Perspective. Addison Wesley, 2003. ISBN 0-201-79940-5.

Many of the errors have been fixed in subsequent printings of the book. Earlier versions of this page indicated the errors applicable to each printing. Unfortunately, the publisher managed to reintroduce some errors that had been corrected between the third and the fourth printing. From that point onward I lost track of the printing where each error was corrected.

p. xxviii
Addision-Wesley should of course read Addison-Wesley.
Spotted by Scott Meyers.

p. 33
Numbered element 1 should read
Optarg will point to the argument of -t.
instead of
Optind will point to the argument of -t.
Noted by Chris Dunlap, meta-corrected by Tim Heaney.

p. 42
Fortran implementations are free to select short-circuit evaluation of boolean expressions (like Java, C, C++, and Perl), or to evaluate all the expression's elements (like Pascal and many Basic dialects). This is a design decision that provides the compiler the flexibility to optimize away jump machine instructions. Noted by Arjen Markus.

p. 53
Second paragraph, fourth sentence. It should read
When performing arithmetic on unsigned integers, read ...
Noted by Paul Hankin.
p. 75
Section 3.2, 2nd line: unnecessary space appears in the word "following". Noted by Anto Jurkovic.

p. 87
The first line should read
of the memory block by 16 slots each time the allocated memory is exhausted.
Noted by Mike Cheponis.

p. 106
5th line from the bottom: "sp" should read "opsp". Noted by Anto Jurkovic.

p. 130
In Figure 4.15 the box with the operator "==" (on the third level from the top, right) should contain the operator "=". Noted by Anto Jurkovic.

p. 131
The code listing should read
struct node_str {
Noted by the author.

p. 138
The second sentence should read:
... and a list of its parents (version.obj is the parent of EXTERN.h and INTERN.h).
Reported by SunJian.

p. 144
The second line should read "n!, can be defined as n(n - 1)!" (the last exclamation mark is missing).
Spotted by Ryan Barrett.

p. 173
The expanded macro ASSERT should read
if (k > n)
    if (!(process(n) == 0))
        botch(__STRING(process(n) == 0));
    if (!(process(k) == 0))
        botch(__STRING(process(k) == 0));
(the existing code uses process(l) in the first expanded instance).
Spotted by Vassilios Karakoidas.

p. 190, 191
The arrows in Figures 6.7 and 6.8 should point in the opposite direction. The UML 1.5 specification was not entirely clear, but UML 2.0 leaves no doubt. The corresponding dependency example in Figure 1.2 is also drawn in the opposite way round. Here is the correct Figure 6.7 and the correct Figure 6.8.
Noticed by Simon Wright.

p. 235
There is an extra period after the name of Charles Simonyi.
Spotted by Panos I. Papadopoulos.

p. 261
The second footnote should read:
Spotted by Anthon van der Neut.

p. 305
The getConnection method is missing a closing brace and is wrongly indented. It should read:
    public Connection getConnection() {
	if (Trace.TRACE) {
	return cConnection;
Noted by Arjen Markus.

p. 312
The typedef for the FSUB structure is missing a semicolon at the end of the id member declaration. The fifth element should read
int (*id)(char *, int);
Noted by Konstantinos Aboudolas.

p. 344
In Figure 10.2 the fourth annotation should read:
Add tag line to the lines array.
Noticed by the author.

p. 346
The sequence C-M-m should be C-M-n.
Spotted by Tokuya Kameshima.

p. 355
The option for obtaining context information from the diff command is -c (or -u), not-g.
Noticed by the author.

p. 366
The figure's caption should state groff classes.
Reported by NISHIDA Masanori.

p. 388
The semicolon appearing in the adj360 formal argument declaration, after deg, should not be there.
Noticed by Konstantinos Aboudolas.

p. 399
Footnote 1 should read

p. 403
Keith E. Brandt should be included in the source code credits, as the author of pom.c.
Noted by Col Keith. E. Brandt, MD, MPH.
p. 405
The epigram's author is Wiener (Norbert Wiener the mathematician who described cybernetics), not Weiner, as it is often misquoted on the web. See the German Wikiquote page.
Noted by Bastiaan Harmsen.
p. 428
Item 44 should read
When performing arithmetic on unsigned integers, read ...
Noted by Paul Hankin.
p. 488
The index entry vcfLicense.txt should point to page 413 (where an epigram from the VCF license appears) rather than page 457.

p. 493
The author index entry "Raymond, E. S." should also contain "p. 435".

Book homepage | Author homepage

Valid XHTML 1.0! Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0 (C) Copyright 2000-2006 D. Spinellis. May be freely uploaded by WWW viewers and similar programs. All other rights reserved.
Last modified: $Date: 2014/12/31 08:13:41 $