Date: Sat, 27 Dec 1997 10:05:05 +1030 From: Greg Lehey <grog@lemis.com> To: FreeBSD Hackers <hackers@FreeBSD.ORG> Cc: Brian Clapper <bmc@WillsCreek.COM> Subject: Re: <wctype.h> Message-ID: <19971227100505.15399@lemis.com>
index | next in thread | raw e-mail
A few days ago, somebody asked a question about wctype.h, and the
consensus was that it was some kind of Microsoft thing. This appears
not to be the case; I answered a question on -questions a day or two
ago, and got a number of replies. This is probably the most detailed
one.
Greg
-----Forwarded message from Brian Clapper <bmc@WillsCreek.COM>-----
Date: Fri, 26 Dec 1997 14:48:17 -0500 (EST)
From: Brian Clapper <bmc@WillsCreek.COM>
To: Greg Lehey <grog@lemis.com>
Cc: Donn Miller <dmm125@bellatlantic.net>,
FreeBSD Questions <questions@FreeBSD.ORG>
Subject: Re: <wctype.h>
On 25 December, 1997, at 10:20 (+1030)
Greg Lehey wrote:
> On Wed, Dec 24, 1997 at 02:46:06PM -0800, Doug White wrote:
>> On Tue, 23 Dec 1997, Donn Miller wrote:
>>
>>> Just wondering about the <wctype.h> include file. FreeBSD doesn't seem to
>>> have it. Does fbsd support this library?
>>
>> What's the name of the library or package? It may not come with the core
>> system but may be available as a package.
>
> This question came up on -hackers in the last day or so in connection
> with wine. The replies indicate that it's some kind of Microsoft
> header file, and that it shouldn't be used under UNIX: there should be
> some kind of #ifdef. You might like to check if that fits in with
> what your package wants.
Sorry, it's not (just) some kind of Microsoft header file; it's a new ANSI
header file that provides support routines and definitions for wide
characters. In addition to being provided by the MS Visual C++ development
environment, it's available on Solaris 2.5. The functions/macros it
provides are also available on other commercial Unices--such as Digital's
version of OSF/1, HP/UX 10, and AIX 4.2--even though they don't provide the
<wctype.h> header file. (You include either <wchar.h> or <ctype.h> to get
them, depending on the OS flavor.)
I find I miss the functionality on FreeBSD, in fact, when I try to port
certain software (namely stuff I'm doing at work) onto my boxes at home.
P.J. Plauger's DinkumWare site (`http://www.dinkumware.com/') has this to
say on the subject:
`http://www.dinkumware.com/htm_cl/wctype.html#<wctype.h>':
Include the standard header <wctype.h> to declare several functions
that are useful for classifying and mapping codes from the target
wide-character set.
Every function that has a parameter of type wint_t can accept the
value of the macro WEOF or any valid wide-character code (of type
wchar_t). Thus, the argument can be the value returned by any of
the functions: btowc, fgetwc, fputwc, getwc, getwchar, putwc,
putwchar, towctrans, towlower, towupper, or ungetwc. You must not
call these functions with other wide-character argument values.
The wide-character classification functions are strongly related to
the (byte) character classification functions. Each function isXXX
has a corresponding wide-character classification function
iswXXX.
Thus, <wctype.h> is analogous to <ctype.h>: It provides macros such as
islower(), iswupper(), towlower(), towupper(), iswpunct(), etc. Complete
info is available at the above URL. (The topic index page is helpful; it's
located here: `http://www.dinkumware.com/htm_cl/_index.html'.)
According to `http://www.dinkumware.com/htm_cl/lib_over.html#Amendment',
"The headers <iso646.h>, <wchar.h>, and <wctype.h> are added with Amendment
1, an addition to the C Standard published in 1995."
See `http://www.dinkumware.com/refc.html' for a "complete HTML description
of the Standard C Library, corresponding to ISO/IEC 9899 (1990) as amended
in 1995."
-----
Brian Clapper, bmc@WillsCreek.COM, http://WWW.WillsCreek.COM/
Real Programs don't use shared text. Otherwise, how can they use
functions for scratch space after they are finished calling them?
-----End of forwarded message-----
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971227100505.15399>
