Path: csiph.com!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!3.eu.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.std.c Subject: Re: Add @ to basic character set? Date: Sat, 05 Dec 2020 14:17:30 -0800 Organization: None to speak of Lines: 36 Message-ID: <87pn3ngao5.fsf@nosuchdomain.example.com> References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: reader02.eternal-september.org; posting-host="21a760876e9c1eabe7ed291c8e573257"; logging-data="27866"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+YdKQvKs6O8jMrd5dKqmqX" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cancel-Lock: sha1:ay2d9LoliIol+pMKvuO3F83/Fp8= sha1:dVScts9CPJDPQGqBICWnvmmrCTU= Xref: csiph.com comp.std.c:6170 James Kuyper writes: > On 12/5/20 2:58 AM, Philipp Klaus Krause wrote: >> I wonder if it would make sense to add @ to the basic character set. >> Virtually everyone is using it in comments and strings already anyway >> (for email addresses), and I don't see anything preventing >> implementations from supporting it, as it is available in both ASCII and >> common EBCDIC code pages: >> >> http://www.colecovision.eu/stuff/proposal-basic-@.html > > '@' is not in the ISO/IEC 646 invariant subset; in the Danish, Dutch, > French, French Canadian, German, Italian, Spanish, Swedish, and Swiss > national variants, that code point is assigned to some other character. > With UTF-8 (on Unix-like systems) and UTF-16 (on Windows systems) > becoming so common place, that is less of a concern than it used to be, > but it is still something the committee is likely to pay attention to. > There are other characters that already are part of the C basic > character set that aren't in the invariant subset: "# [ ] { } \ | ~ ^". > However, all of those characters played an important role in C syntax > long before ISO/IEC 646; that's not the case for '@'. Trigraphs were > invented to allow those characters to be used on systems that didn't > support them natively. Apparently the C++ committee felt that it was of so little concern that they removed trigraphs in C++17. I don't know of any plans to do the same in C. There are three printable ASCII characters that aren't in C's basic character set: '$', '`', and '@'. A guarantee that all three can be used in string literals, character constants, and comments could be useful. (Most programmers probably already assume they can be.) -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for Philips Healthcare void Void(void) { Void(); } /* The recursive call of the void */