ISO/ IEC 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.