Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!sri-unix!hplabs!gatech!cbosgd!mark From: mark@cbosgd.ATT.COM (Mark Horton) Newsgroups: comp.lang.c,comp.std.internat Subject: locales Message-ID: <3231@cbosgd.ATT.COM> Date: Thu, 8-Jan-87 15:51:48 EST Article-I.D.: cbosgd.3231 Posted: Thu Jan 8 15:51:48 1987 Date-Received: Fri, 9-Jan-87 04:38:33 EST Organization: AT&T Bell Laboratories, Columbus, Oh Lines: 24 Xref: mnetor comp.lang.c:634 comp.std.internat:64 I've been looking at the new ANSI C standard, and there's one feature I just don't understand: the locale. The feature seems intended to help port programs to environments with different character sets, such as Europe (with their umlouts, accents, etc) and Japan with their 16 bit picture characters. I don't, however, see how the feature, as defined, meets this goal. It seems to be very nice if a program wants to explicitly say that it conforms to the German rules (say), and that by default everything conforms to the C (e.g. USA) rules. But I don't see how it helps a program conform to whatever country it happens to be running in, without recompiling it. If I'm misunderstanding the intent, can someone please set me straight? Show me an example of how this is supposed to be used, and what it buys you. While we're on the subject, I have another question. In German, for example, the lower case ess-tset letter has no single character upper case equivalent, and is supposed to be mapped into "SS" in upper case. (There are other languages with similar mappings.) What is the toupper function supposed to do when presented with an ess-tset? Wouldn't a string-to-string mapping function similar to strupr be more portable? Mark