Don Cragun wrote: > >From: Glenn Fowler <gsf at research.att.com> > > > >Don > >can you clarify > >for decimal_point and thousands_sep does the standard specify > >(1) a \0 terminated string? > >(2) if the value is "\0" then there is no corresponding separator? > >(3) if the value is "<byte1><byte2>\0" then the separator is <byte1>? > >thanks > > Glenn, > This is not an official interpretation of the C99 standard... ;-} > But, the way I read C99, char *decimal_point and char *thousands_sep > each point to a single byte character; not to a string having one > single-byte character followed by a null byte. > > I believe that the wording in the POSIX standard is intended to allow > the desired processing of these two pointers IF a technical corrigenda > modifies C99 to make them pointers to strings.
Erm... (dumb ?!) question: How are POSIX and C99 related in this case - is this a superset, subset or extension-like relationship or is this somehow else structured ? > It may well be that > some implementations provide null terminated strings now, but the C99 > standard doesn't require that and the POSIX standard doesn't require > that; so an application that assumes those pointers point to null > terminated strings is not portable. Is there a way to file a "clarification request" to the POSIX people and ask whether multibyte characters (and therefore the terminating '\0') are allowed ? Otherwise we can drop the idea of using any arabic symbols for |decimal_point| and |thousands_sep| as described in the original posting (see http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2008-January/005855.html) and have to live with the ASCII stuff (which is AFAIK a bit end-user unfriendly...). ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 7950090 (;O/ \/ \O;)