JTC1/SC22/WG14
N894
SC22/WG14 N894
Editor's Report
October 6, 1999
The FDIS ballot closed on September 15 and was approved. I
have not heard anything from ITTF (the ISO/IEC Information
Technology Task Force; the mysterious organization that is
``responsible for the day-to-day planning and coordination
of the technical work of JTC 1 relative to IEC and ISO, and
supervises the application of the ISO and IEC Statutes and
rules of Procedure''), so I presume that they are happy with
our conformance to the ISO/IEC and JTC 1 directives and
style and won't be requesting any changes. They are
supposed to request final text to be published from me (or
at least provide a proof copy of what they're planning to
publish), at which time I plan to try to make the following
changes unless directed otherwise. Note that ITTF owns the
document at this point, not us, so there's no guarantee that
they will allow all of these changes.
General: The ^ and ~ characters should be typeset using the
Postscript asciicircum and asciitilde characters that are
bolder and centered on the line, rather than the circumflex
and tilde characters (^ and ~) that are intended for use as
diacritical marks.
Pages xi - xiv, the Foreword and Introduction: The right
margin is too wide.
Page xii, Foreword: In the list of new features, ``vararg
macros'' should read ``macros with a variable number of
arguments''.
Page xiii, Foreword: Add the following to the list of new
features.
-- conversion of array to pointer not limited to
lvalues
-- relaxed constraints on aggregate and union
initialization
-- relaxed restrictions on portable header names
-- return without expression not permitted in
function that returns a value (and vice versa)
Page xiii, paragraph 6: In the last sentence, ``are for
information only'' should read ``are also for information
only''.
2 SC22/WG14 N894
Page 30, 6.2.1p5: ``identifier'' should be quoted, not
italicized.
Page 40, 6.2.7p1: ``completed type'' should read ``complete
type''. (``Completed type'' should only be used to refer to
a complete type formed by completing a previous-incomplete
type.)
Page 71, footnote 78: In the last sentence, ``is converted
to a parameter with a pointer type'' should read ``is
adjusted to have a pointer type''.
Page 73, 6.5.2.3p5: ``completed type'' should read
``complete type''.
Page 83, 6.5.6p7: ``a nonarray object'' should read ``an
object that is not an element of an array''.
Page 85, 6.5.7p5: ``E1 divided by the quantity, 2 raised to
the power E2'' should be set as an equation.
Page 85, 6.5.8p4: ``a nonarray object'' should read ``an
object that is not an element of an array''.
Page 90, 6.5.15p3: ``compatible structure or union type''
should read ``the same structure or union type''. (In this
context, the only way for the types to be compatible is if
they are identical and this change clarifies subsequent
text.)
Page 92, 6.5.16.1p1: The ``or'' at the end of the fourth
list item should be deleted and the period at the end of the
fifth list item should be replaced by a semicolon and the
word ``or''.
Page 106, 6.7.2.3p2: ``completed'' should read ``complete''.
Page 118, 6.7.5.3p10: The declaration of the typedef VLA is
missing its trailing semicolon.
Page 128, 6.7.8p24: ``3.0i'' should read ``i3.0'' (for
consistency with usage elsewhere in the standard).
Page 156, 6.10.3.5p6: The comment should be removed from the
definition of INCFILE (it is incorrect).
Page 166, footnote 154: math_errhandling should be added to
the list of reserved identifiers.
Page 171, footnote 163: The second equation would look
better with a bit more space around the division operators.
Page 204, 7.11.1.1p2: In the last sentence, ``strftime
function'' should read ``strftime and wcsftime functions''.
SC22/WG14 N894 3
Page 248, 7.15p3: ``referred to as ap in this subclause''
should read ``generally referred to as ap in this
subclause''.
Page 248, 7.15.1p1: In the first sentence, ``va_start,
va_arg, and va_copy'' should read ``va_start and va_arg''.
In the second sentence, ``va_end is'' should read ``va_copy
and va_end are''. In the third sentence, ``with the name
va_end'' should read ``with the same name''. In the last
sentence, ``or'' should be ``and''.
Page 248, 7.15.1.1p2: The second and third sentences should
read:
The parameter ap shall have been initialized by the
va_start or va_copy macro (without an intervening
invocation of the va_end macro for the same ap). Each
invocation of the va_arg macro modifies ap so that the
values of successive arguments are returned in turn.
Page 249, 7.15.1.2p2: The paragraph should read:
The va_copy macro initializes dest as a copy of src, as
if the va_start macro had been applied to dest followed
by the same sequence of uses of the va_arg macro as had
previously been used to reach the present state of src.
Neither the va_copy nor va_start macro shall be invoked
to reinitialize dest without an intervening invocation
of the va_end macro for the same dest.
Page 749, 7.15.1.3p2: The paragraph should begin:
The va_end macro facilitates a normal return from the
function whose variable argument list was referred to
by the expansion of the va_start macro, or the function
containing the expansion of the va_copy macro, that
initialized the va_list ap. The va_end macro may
modify ap so that it is no longer usable (without being
reinitialized by the va_start or va_copy macro).
Page 250, 7.15.1.4p3: The paragraph should read:
The va_start macro initializes ap for subsequent use by
the va_arg and va_end macros. Neither the va_start nor
va_copy macro shall be invoked to reinitialize ap
without an intervening invocation of the va_end macro
for the same ap.
Page 268, 7.19.4.4p2: Append to the end of the paragraph:
4 SC22/WG14 N894
The function is potentially capable of generating
TMP_MAX different strings, but any or all of them may
already be in use by existing files and thus not be
suitable return values.
and delete the second sentence of paragraph 3.
Page 294, 7.19.7.1p3: In the first and last sentences,
``fgetc'' should read ``the fgetc function''.
Page 319, 7.20.6.2p1: The function names in the second and
third declarations should be ``ldiv'' and ``lldiv'' (this
isn't C++, after all).
Page 339, 7.23.2.3p3: The paragraph should be deleted.
(This is a remnant of the struct tmx stuff that was
overlooked.)
Page 345, 7.23.3.5p5: At the very end of the paragraph,
``1'' should read ``01''.
Page 366, 7.24.3.1p2 and 3: Paragraph 2 should read:
If the end-of-file indicator for the input stream
pointed to by stream is not set and a next wide
character is present, the fgetwc function obtains that
wide character as a wchar_t converted to a wint_t and
advances the associated file position indicator for the
stream (if defined).
Paragraph 3 should read:
If the end-of-file indicator for the stream is set, or
if the stream is at end-of-file, the end-of-file
indicator for the stream is set and the fgetwc function
returns WEOF. Otherwise, the fgetwc function returns
the next wide character from the input stream pointed
to by stream. If a read error occurs, the error
indicator for the stream is set and the fgetwc function
returns WEOF. If an encoding error occurs (including
too few bytes), the value of the macro EILSEQ is stored
in errno and the fgetwc function returns WEOF.
(This was supposed to have been done when fgetc was
reworded, but was overlooked.)
Page 393, 7.25.2.1p2: The paragraph should read:
SC22/WG14 N894 5
Each of the following functions returns true for each
wide character that corresponds (as if by a call to the
wctob function) to a single-byte character for which
the corresponding character classification function
from 7.4.1 returns true, except that the iswgraph and
iswpunct functions may differ with respect to wide
characters other than L' ' that are both printing and
white-space wide characters.
(I hope this is less incomprehensible than the previous
wording.)
Page 443, F.3p1: In the first sentence of the last item on
the page, strtof should follow strtod rather than preceding
it, and strtold should not appear at all. In the last
sentence, ``strtold functions ... provide'' should read
``strtold function ... provides''.
Page 445, F.3p1: In the last sentence of the last item,
``define'' should read ``defined''.
Page 445, footnote 302: In the last (parenthetical)
sentence, ``19'' should read ``18''.
Page 459, F.9.4.4p1: In the item ``pow(+1, x)'', ``x''
should read ``y'' in both places.
Page 465, G.1p1: ``Therefor'' should read ``Therefore''.
Page 470, G.6p3: ``0i'' should read ``i0''.
Page 471, G.6p8: All four occurrences of ``specification''
should read ``specifications'' and both occurrences of
``implies'' should read ``imply''.
Page 488, J.1: In the item for errno, ``external
identifier'' should read ``identifier with external
linkage''.
Page 489, J.1: In the first item, ``Whether va_end is a
macro or an identifier'' should read ``Whether va_copy and
va_end are macros or identifiers''.
Page 489, J.1: In the penultimate item, ``numeric returned''
should read ``numeric result returned'' and there should be
no ``('' before ``F.9.6.7''.
Page 492, J.2: In the fifth item, ``defines'' should read
``defined''.
Page 496, J.2: In the fourth item, there should be no ``,''
before the ``(''.
Page 497, J.2: In the third item, the last sentence should
6 SC22/WG14 N894
be a separate item.
Page 497, J.2: In the ninth item, ``7.13.1'' should read
``7.13''.
Page 498, J.2: In the first item, there should be no ``,''
before the ``(''.
Page 498, J.2: In the sixth item, near the end, ``va_end''
should read ``va_copy or va_end''.
Page 511, J.5.2p1: The ``_'' and ``$'' characters are in the
wrong font.
Page 517, Index: The ceiling and floor entries would look
better with a bit more white space before and after.
Page 518, Index: The entry for ``accuracy, floating-point''
should just point to ``floating-point accuracy''. Page 523,
Index: The entry for ``errno macro'' should include a
reference to 7.1.3.
Page 524, Index: The entry for ``extended integer types''
should include references to 6.3.1.1 and 6.4.4.1.
Page 525, Index: The entry for ``floating-point accuracy''
should not have 5.2.4.2.2 in bold; should include references
to 6.4.4.2, 6.5, 7.20.1.3, and F.5; and should include a
pointer to ``contracted expression''. The entry for
``FP_CONTRACT pragma'' should include a reference to 6.5 and
a pointer to ``contracted expression''.
Page 527, Index: The entry for ``integer types, extended''
should include references to 6.2.5 (in bold), 6.3.1.1, and
6.4.4.1.
Page 529, Index: The entry for ``local time'' should not
include a reference to 7.23.2.3.
Page 530, Index: The entry for ``math_errhandling'' should
include a reference to 7.1.3.
Page 533, Index: The entry for ``setjmp macro'' should
include a reference to 7.1.3.
Page 534, Index: There should be an entry for ``static, in
array declarators'' with references to 6.7.5.2 and 6.7.5.3
(in bold).
Page 537, Index: The entry for ``utilities, general'' should
be on one line and include a reference to 7.20 (in bold).
The entry for ``va_end macro'' should include a reference to
7.1.3. The entry for ``va_list type'' should not include
references to 7.15.1.1 or 7.15.1.2. The entry for
SC22/WG14 N894 7
``wcsftime function'' should include a reference to
7.11.1.1.