- make sure that __nbrune_t is unsigned 32bit clean and
- fix wrong copyright notice in the last commit.
this patch is contributed by Takehiko NOZAKI <sigsegv at s25 dot xrea dot com>.
- rename some macros and types defined in runetype.h.
- move declarations of some global symbols to rune.h from runetype.h.
- make sure the target sources use rune.h and mklocale use runetype.h.
I tested them on FreeBSD-4.6.2 box (./build.sh -m i386 tools).
- these are defined in C99 (wcsto[ui]max) and SUSv3.
- these implementations are written by sigsegv@s25.xrea.com,
derived from NetBSD's wcstol/wcstoul.
- I just added some comments.
- clean up cpp directives.
- stop including rune.h from mklocale.
- stop using _BSD_RUNE_T macro. instead, use int32_t directly in runetype.h.
- move _DEFAULT_INVALID_RUNE to runetype.h.
These were for historical reason on porting rune from FreeBSD,
but it seems that these are no longer reasonable but troublesome
under the current NetBSD build system.
additionally:
- runetype.h -> locale/runetype.h in mklocale, because this might conflict
to FreeBSD's one.
- add wcstok() and wcswcs(),
- add wcstok(3),
- move btowc() and wctob() into each ctype modules,
- bump ctype interface ABI version,
- bump i18n modules' minor and
- update sets.
and fix a stupid bug in _RUNE_ISCACHED macro.
argunemt and with a string containing many slashes for the second argument.
This bug may cause setlocale() to destroy static datas.
If a setuid program calls this function as 'setlocale(LC_ALL, "");',
this might be vulnerable, although there are few programs having such
vulnerability. This bug probably affects every versions of NetBSD,
including 1.4, 1.5 and 1.6.
XXX: This part of setlocale is unseemly, thus we had better rewrite it in
the future.