Subject: C functions for localedef strings

From: Keld J|rn Simonsen <[email-masked]>
Date: Sat, 8 Dec 90 20:21:46 +0100

Dear i18n-ers,

I was present to the recent WG14 meeting (programming language "C"
if any is in doubt) i Copenhagen. Their main subject is to produce an
addendum to the new ISO C standard ISO/IEC 9899:1990. The addendum will
address interpretations and "character set issues". The latter subject
should sound familiar to you ;-)

On the character set issues the following was discussed:

1. DS proposal of alternate spellings of certain keywords to accomodate
   national versions of ISO 646. WG14 was positive to a solution based
   on alternate spellings of {} [] and macroes for the rest
   (that is: a header file <iso646.h> with macroes "or" for | etc.)

2. multibyte support, the Japanese proposal as we have also seen it
   in RIN and other places with full support of strings and printf/scanf 
   functions. WG14 recommended that a new set of functions were specified.
3. Use of letters from extended character sets in identifiers.
   WG14 recognised the need and will consider proposals.
   DS proposed one on the current locale's alpha class.
   Tom Plum proposed that any character outside the C locale
   could be part of an identifier.

4. An enhanced C locale for extended character sets.
   This was proposed by me and based on the Danish POSIX locale.
   WG14 was in favour of this, but would prefer a less voluminous
   locale, and without special Danish collating etc.

   One problem about this is that the C standard has not got a
   definition of the locale format. Is it possible to publish some
   specifications without definition of the syntax?

5. I proposed that WG14 should consider a "general character" type
   based on the POSIX localedef strings, with accompanying 
   str..., printf and scanf functions. Thus you would have
   character set encoding independent strings! This is of cause
   based on charmaps. An example would be:

         gprintf("Fran<c-cedille>oise");
 
   where <c-cedille> would mean this French character.

   My question here is if this is a good idea and if it is, then
   if this is something for C or POSIX or both.

Keld