<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/include/_ctype.h, branch upstream/11.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2015-10-13T20:43:49Z</updated>
<entry>
<title>Commit log from Dragonfly:</title>
<updated>2015-10-13T20:43:49Z</updated>
<author>
<name>Baptiste Daroussin</name>
<email>bapt@FreeBSD.org</email>
</author>
<published>2015-10-13T20:43:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f5dde0166d6658309344f309845075707f207509'/>
<id>urn:sha1:f5dde0166d6658309344f309845075707f207509</id>
<content type='text'>
FreeBSD extended ctypes to include numbers (e.g. isnumber()) but never
actually implemented it.  The isnumber() function was equivalent to the
isdigit() function in every case.

Now that DragonFly's ctype source files have number definitions, the
number ctype can finally be implemented.  It's given a new flag _CTYPE_N.
The isalnum() and iswalnum() functions have been changed to use this
flag rather than the _CTYPE_D digit flag.

While isalnum(), isnumber(), and their wide equivalents now return
different values in locale cases, the ishexnumber() and iswhexnumber()
functions are unchanged.  They are still aliases for isxdigit() and
iswxdigit().

Also change ctype.h for isdigit and isxdigit to use sbistype like the
other functions.

Obtained from:	dragonfly
</content>
</entry>
<entry>
<title>Remove the Berkeley clause 3's.</title>
<updated>2010-02-16T19:39:50Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2010-02-16T19:39:50Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f2556687c6724a3c8b3685103aad511afb3068b2'/>
<id>urn:sha1:f2556687c6724a3c8b3685103aad511afb3068b2</id>
<content type='text'>
Add a few $FreeBSD$
</content>
</entry>
<entry>
<title>Back out not human readable optimization in prev. commit which shown</title>
<updated>2007-11-01T03:18:02Z</updated>
<author>
<name>Andrey A. Chernov</name>
<email>ache@FreeBSD.org</email>
</author>
<published>2007-11-01T03:18:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=70e7b0732ae922553e5893967fb0e6d54626ada0'/>
<id>urn:sha1:70e7b0732ae922553e5893967fb0e6d54626ada0</id>
<content type='text'>
to generate 3bytes longer opcode.
</content>
</entry>
<entry>
<title>Micro-optimization of prev. commit, change</title>
<updated>2007-10-27T22:32:27Z</updated>
<author>
<name>Andrey A. Chernov</name>
<email>ache@FreeBSD.org</email>
</author>
<published>2007-10-27T22:32:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5dfb7ce5fc1e7a32423c890e3caa9eaecdcbd1da'/>
<id>urn:sha1:5dfb7ce5fc1e7a32423c890e3caa9eaecdcbd1da</id>
<content type='text'>
(_c &lt; 0 || _c &gt;= 128) to (_c &amp; ~0x7F)
</content>
</entry>
<entry>
<title>Small improvement for __isctype(): don't use __mb_sb_limit but</title>
<updated>2007-10-27T09:32:32Z</updated>
<author>
<name>Andrey A. Chernov</name>
<email>ache@FreeBSD.org</email>
</author>
<published>2007-10-27T09:32:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=eb75c0a0d00bd18b1823583247b2f5cd6dcefdc5'/>
<id>urn:sha1:eb75c0a0d00bd18b1823583247b2f5cd6dcefdc5</id>
<content type='text'>
hardcode 128 here instead, since default locale never define anything
above 127 char.
</content>
</entry>
<entry>
<title>The problem is: currently our single byte ctype(3) functions are broken</title>
<updated>2007-10-13T16:28:22Z</updated>
<author>
<name>Andrey A. Chernov</name>
<email>ache@FreeBSD.org</email>
</author>
<published>2007-10-13T16:28:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=367ed4e13d697ceb415183d8a7acddf5f707667c'/>
<id>urn:sha1:367ed4e13d697ceb415183d8a7acddf5f707667c</id>
<content type='text'>
for wide characters locales in the argument range &gt;= 0x80 - they may
return false positives.

Example 1: for UTF-8 locale we currently have:
iswspace(0xA0)==1 and isspace(0xA0)==1
(because iswspace() and isspace() are the same code)
but must have
iswspace(0xA0)==1 and isspace(0xA0)==0
(because there is no such character and all others in the range
0x80..0xff for the UTF-8 locale, it keeps ASCII only in the single byte
range because our internal wchar_t representation for UTF-8 is UCS-4).

Example 2: for all wide character locales isalpha(arg) when arg &gt; 0xFF may
return false positives (must be 0).
(because iswalpha() and isalpha() are the same code)

This change address this issue separating single byte and wide ctype
and also fix iswascii() (currently iswascii() is broken for
arguments &gt; 0xFF).
This change is 100% binary compatible with old binaries.

Reviewied by: i18n@
</content>
</entry>
<entry>
<title>Let GCC know that ___runetype(), ___tolower() and ___toupper() are pure</title>
<updated>2004-08-21T07:00:40Z</updated>
<author>
<name>Tim J. Robbins</name>
<email>tjr@FreeBSD.org</email>
</author>
<published>2004-08-21T07:00:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=17211a5f9a0963117be5a2aef12bcaa8312b2cc6'/>
<id>urn:sha1:17211a5f9a0963117be5a2aef12bcaa8312b2cc6</id>
<content type='text'>
functions, allowing it to generate better code for the &lt;ctype.h&gt; and
&lt;wctype.h&gt; functions. For example, it can now keep _CurrentRuneLocale
in a register across calls to these functions, and can delete calls to
___runetype() if the result is already known or not used.
</content>
</entry>
<entry>
<title>Implement wcwidth() as an inline function.</title>
<updated>2004-08-12T12:19:11Z</updated>
<author>
<name>Tim J. Robbins</name>
<email>tjr@FreeBSD.org</email>
</author>
<published>2004-08-12T12:19:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=de6c9c9d5bf3ec1f15d6196253f08c327a504fa7'/>
<id>urn:sha1:de6c9c9d5bf3ec1f15d6196253f08c327a504fa7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move some internal macros and inlines from ctype.h to a new file, _ctype.h,</title>
<updated>2004-08-12T09:33:47Z</updated>
<author>
<name>Tim J. Robbins</name>
<email>tjr@FreeBSD.org</email>
</author>
<published>2004-08-12T09:33:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=16133e1530309622f8593c1411f7c4ed1847e672'/>
<id>urn:sha1:16133e1530309622f8593c1411f7c4ed1847e672</id>
<content type='text'>
which has been repo-copied from ctype.h. This will allow us to remove
namespace pollution from &lt;wctype.h&gt; and to make wcwidth() an inline function
without introducing more pollution.
</content>
</entry>
<entry>
<title>Now that &lt;runetype.h&gt; no longer brings in namespace pollution,</title>
<updated>2004-06-23T07:11:39Z</updated>
<author>
<name>Tim J. Robbins</name>
<email>tjr@FreeBSD.org</email>
</author>
<published>2004-06-23T07:11:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=838faf1c74baef97c12d0c44ab410ffe1735f04a'/>
<id>urn:sha1:838faf1c74baef97c12d0c44ab410ffe1735f04a</id>
<content type='text'>
bring back the inline functions for the !__BSD_VISIBLE case.
</content>
</entry>
</feed>
