Am 02.06.2011 19:44, schrieb liam mail:
On 2 June 2011 18:09, Tony Finch <dot@dotat.at <mailto:dot@dotat.at>>
wrote:
Marc Balmer <marc@msys.ch <mailto:marc@msys.ch>> wrote:
>
> What does the standard say is*() should return if the argument is
EOF?
> Is that specified at all?
It seems to be unspecified. This is probably a bug in the standard.
Here's a link to C99 with all the technical corrigenda included. The
relevant part is section 7.4 starting on page 181.
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
Tony.
--
f.anthony.n.finch <dot@dotat.at <mailto:dot@dotat.at>> http://dotat.at/
Rockall, Malin, Hebrides: South 5 to 7, occasionally gale 8 at first in
Rockall and Malin, veering west or northwest 4 or 5, then backing
southwest 5
or 6 later. Rough or very rough. Occasional rain. Moderate or good,
occasionally poor.
Although the C99 standard does not state it, the C99 rationale v5.1[1]
does
"*7.4.1Character classification functions *
**The definitions of /printing character /and /control character /have
been generalized from ASCII.
Note that none of these functions returns a nonzero value (true) for the
argument value *EOF*."
So if Microsoft claims to be in support of the C99 standard, this is
clearly a bug in their implementation of the SDK. And since they don't
have a friendly mailing list and community like Lua does, I am fucked.
Seems like I have to take is*() from another system, just to be sure...
[1] http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf