[ksh93-integration-discuss] ksh93 "printf" builtin vs.CR#6558816 ("printf variants behaving incorrectly formultibytedecimal point") ...
Roland Mainz
roland.mainz at nrubsig.org
Fri Jan 18 13:55:01 PST 2008
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;)
More information about the ksh93-integration-discuss
mailing list