* Rename "config.h" to "nbtool_config.h" and
HAVE_CONFIG_H to HAVE_NBTOOL_CONFIG_H.
This makes in more obvious in the source when we're using
tools/compat/config.h versus "standard autoconf" config.h
* Consistently move the inclusion of nbtool_config.h to before
<sys/cdefs.h> so that the former can provide __RCSID() (et al),
and there's no need to protect those macros any more.
These changes should make it easier to "tool-ify" a program by adding:
#if HAVE_NBTOOL_CONFIG_H
#include "nbtool_config.h"
#endif
to the top of the source files (for the general case).
- 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).
- 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 libc/citrus directory.
this directory contains the common stuffs not only for locale
but also other facilities relating to i18n (e.g. iconv).
- To keep the binary compatibility for the ctype modules easily,
the interface between libc and the modules is simplified.
- For the future integrated extension, module pool is renamed
from "/usr/lib/runemodule" to "/usr/lib/i18n".
In the future, this directory will contain the modules for "iconv",
"collation", etc.
- some cosmetic changes.
- Bug fix for runetype.h; __attribute__((__packed__)) is placed at
the wrong position and it is invalid unintentionally.
But, the all members of the structures seem well-aligned. Thus,
this bug causes no problem, hopefully.
HEADS UP:
- /usr/lib/rumemodule is obsoleted. If you use the multibyte locales,
you need to install /usr/lib/i18n/* from sys/lib/i18n_module .
- The binary compatibility of /usr/share/locale/*/LC_CTYPE is probably kept.
Perhaps, the bug fix about __packed__ mentioned above breaks the
compatibility... Be careful especially on 64bit platforms.
round has been tested on Solaris/x86 and Linux hosts.
* Add host tools cap_mkdb, ctags, m4, uudecode.
* Protect __RCSID() and __COPYRIGHT() better.
* Reduce the number of places that need to include "config.h", to keep
sources closer to their "vanilla" versions.
* Add more compat #defines and autoconf-checked functions.
to write it. fwrite(3) is a noop in that case anyway, and the error
detection logic here was screwing up on the 0 return from fwrite(3)
(that return value is mandated by SUSv2 for size or count of 0).
While here, improve the error messgages given to the user.
if there are any mistakes, please report (i only speak English/Japanese).
currently, only singlebyte locales are usable.
TODO: enable multibyte handler in libc - there still are few design
discussions, but we are almost ready.