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.