Commit Graph

137 Commits

Author SHA1 Message Date
christos 3fd676b16c cast to size_t 2004-12-30 05:01:50 +00:00
christos 1f3a2bf23d sz should be size_t 2004-12-30 05:01:19 +00:00
christos 70c807f499 - cast to size_t
- sz should be size_t
2004-12-30 05:00:42 +00:00
yamt 5b3d234201 constify. 2004-12-21 11:25:43 +00:00
yamt acdc3d1e0f constify. 2004-12-21 09:29:04 +00:00
yamt 824b77d67e _citrus_find_getops: use _C_LABEL_STRING. 2004-12-21 09:00:01 +00:00
yamt 8a0e62d02d open_shared: correct a buffer size. 2004-12-21 08:07:41 +00:00
christos 366176888a PR/27283: Onno van der Linden: incorrect check for mmap return value
While I am here, clean up the error path, KNF and use the proper stat
macro.
2004-10-17 22:21:43 +00:00
yamt d94faebdc7 wctomb isn't supposed to set errno. 2004-09-26 00:51:39 +00:00
soda 89d5b6ffb2 forgot to replace #else with #endif, thanks yamt again. 2004-09-26 00:35:51 +00:00
yamt 8eaa138d56 _FUNCNAME(ctype_wcrtomb):
set *nresult on error rather than using stack garbage.
2004-09-26 00:17:15 +00:00
soda 63504487d1 oops, forgot to add "else" 2004-09-25 23:56:44 +00:00
soda 879ba02666 corrent an error in previous commit:
don't corrupt return value on error case, pointed out by yamt
2004-09-25 23:51:31 +00:00
soda bb8f03e106 correct the return values of wcrtomb(3) and wctomb(3).
These return values should include the length of shift sequence
to restore the initial shift state.
2004-09-25 22:53:46 +00:00
tshiozak 09e09c2c2c make sure CITRUS=no to work. 2004-07-21 20:27:46 +00:00
tshiozak 23affd3c41 make sure that _citrus_lookup family functions can be specified their case
sensitivity.
2004-07-21 14:16:34 +00:00
yamt c5bbd9dca0 _citrus_NONE_stdenc_wctomb: return E2BIG correctly. 2004-01-18 03:57:30 +00:00
christos 7d6187a689 PR/24023: Min Sik Kim: Don't deadlock while closing mappers. The module
uninit function can call close again, which will try to obtain a held
lock. Unlock the lock before calling the actual close function, since
we already disassociated cm from the rest of the data structures.
2004-01-08 19:23:19 +00:00
itojun 35f883b08a KNF 2004-01-02 21:49:35 +00:00
itojun 855852a04b comment on values from 0x80000000 to 0xffffffff 2004-01-02 12:27:41 +00:00
itojun 5d489a8a2a safer realloc 2004-01-02 12:25:46 +00:00
itojun 64d2443254 safer realloc, some KNF. noted by deraadt@openbsd 2004-01-02 12:19:25 +00:00
yamt 9a4bbff85d _citrus_iconv_std_iconv_convert:
- allow 0 byte input.  PR/23889 (Valeriy E. Ushakov)
- remove redundant E2BIG check, which should be done by
  each encoding modules anyway.
2003-12-29 18:05:01 +00:00
yamt 95a5e260a9 _citrus_MSKanji_wcrtomb_priv: return E2BIG correctly. 2003-12-29 17:59:03 +00:00
yamt 556685e5a3 _citrus_NONE_stdenc_cstomb: return E2BIG correctly. 2003-12-29 17:49:22 +00:00
jmc 782579c57a SUSE3 says htonl and friends come in via arpa/inet.h. This will actually not
hurt on NetBSD and makes hosting on non-native for tools/ work correctly
2003-10-28 04:00:51 +00:00
lukem 171d653219 Overhaul how `build.sh tools' are used:
*	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).
2003-10-27 00:12:41 +00:00
yamt faf00d99a2 don't use uninitialized variable ('chlenbak').
the problem reported by Markus Illenseer on tech-userlevel@
and analyzed by enami tsugutomo.
2003-10-14 12:50:03 +00:00
tshiozak cf33db0f3a fix the problem about resetting the state of iconv().
iconv() was not conforming to the SUSv3 at this point.
reported by Bruno Haible.
2003-09-01 06:16:13 +00:00
agc eb7c1594f1 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
2003-08-07 16:42:00 +00:00
thorpej 31ede4a9e3 Pull in host-tool config.h, if necessary. 2003-07-21 07:10:28 +00:00
tshiozak 5e3e3850e3 correct boundary check in _citrus_db_lookup_string_by_string(). 2003-07-16 08:13:51 +00:00
itojun 2ec4a5905e use bounded string op 2003-07-16 08:05:27 +00:00
tshiozak 0e0aa0868c use NONIDENTICAL instead of ILSEQ if the reverse conversion of ISO646.
(fix for lib/22135)
2003-07-14 11:37:49 +00:00
tshiozak c1e771ab90 separate "nonidentical conversion" and "ilseq" under csmapper.
"nonidentical" means "the input character index is valid, but not
corresponding to the output codeset."
"ilseq" means "the input character index is invalid for the input codeset."
2003-07-12 15:39:19 +00:00
tshiozak 888aa165a5 add forgotten _CITRUS_HASH_REMOVE() at release_shared().
This hopefully fixes the PR pkg/22113.
2003-07-10 09:08:57 +00:00
tshiozak 8adfd9b778 make _DIAGNOSTIC happy. 2003-07-10 08:50:43 +00:00
tshiozak 918c07021f separate "close" process into two parts (with and without handling hash).
This change makes the code symmetrical and ensures the lock not to be
aquired recursively.
The problem that the lock is tried to be aquired recursively was
pointed out by Matthias Drochner.
2003-07-02 17:48:57 +00:00
tshiozak 58db2e99e2 add iconv_t cache.
- separate shared part and context part from iconv_t.
  - add cache of shared part.
and, bump shlib_version minor of i18n modules because iconv i/f is changed.
2003-07-01 09:42:15 +00:00
tshiozak 290f7cdee9 cosmetic change. 2003-07-01 08:34:03 +00:00
tshiozak b50ac1a74f fix lib/22023 - there were references to uninitialized variables. 2003-07-01 08:33:06 +00:00
christos 6363afb646 use __attribute__((__packed__)) instead of __packed. 2003-06-30 17:54:13 +00:00
tshiozak a8076e0474 add #include "config.h" when these files are built as parts of host tools. 2003-06-30 12:32:21 +00:00
tshiozak cba952da4e u_int*_t -> uint*_t.
I would like to use stdint.h, but it is too modern for the host tools.
u_int*_t are more popular under UNIX-like systems, although they are
not backed up with any standards.
(src/tools/compat/stdint.h is maybe necessary.)
2003-06-29 17:30:07 +00:00
tshiozak 82d5554eda sync with the last change for citrus_hash.h. 2003-06-27 17:53:31 +00:00
tshiozak 2aa99730ce make sure to use LIST_* macros defined in sys/queue.h.
pointed out by yamt@netbsd.
2003-06-27 17:43:15 +00:00
yamt d71154b0e4 in _citrus_ctype_btowc_fallback() and _citrus_ctype_wctob_fallback(),
use enough size byte arrays, instead of abusing mbstate_t.
just pedantic.  no functional change is involved.
2003-06-27 14:52:25 +00:00
yamt 8822a3e83e $NetBSD $ -> $NetBSD$ 2003-06-27 12:55:13 +00:00
itojun c7ca01fc7d i guess the original intent was this... 2003-06-27 08:58:18 +00:00
itojun 877654378b memset() after null check 2003-06-27 08:56:07 +00:00
itojun 29aff1f984 clear memory after malloc() 2003-06-27 08:50:47 +00:00
tshiozak f3995f1ad3 correct wcrtomb(3) - it is not conforming to standard on handling L'\0'.
This change also affects Citrus iconv engine.
2003-06-26 12:09:56 +00:00
tshiozak f77c39f209 make sure that key is case-insensitive. 2003-06-26 12:05:04 +00:00
tshiozak 04e58308a3 Citrus iconv support (1)
add core engine of Citrus iconv and some support routines.
  - iconv core (citrus_iconv)
  - coded character set mapper (csmapper)
  - encoding scheme database (esdb)
  - standard encoding scheme handler (stdenc)
  - basic character set manipulation utilities (bcs)
  - mmap based infrastructure (citrus_lookup/_mmap/_memstream/_db)
  - some source codes of new plugins (not built yet)
2003-06-25 09:51:26 +00:00
petrov cc36666171 No need in default label if default case is not processed. 2003-05-08 20:42:39 +00:00
tshiozak c2cadb8a46 add support for zh_CN.GB18030 locale.
(lib/20835 by sigsegv at s25 dot xrea dot com)
XXX: charclass for GBK compatible area is not supported.
2003-03-25 18:26:51 +00:00
tshiozak d0db871d32 fix the problem if EILSEQ is caused in mbrtowc(3) under *.UTF-8 locales.
(lib/20873 by khym at azeotrope dot org)
2003-03-25 17:35:36 +00:00
tshiozak 326ed36874 changes related to lib/20576 and lib/20577.
- 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.
2003-03-05 20:18:14 +00:00
yamt a7e4d902d4 - handle s==NULL case of wcrtomb.
- add a comment about it.

fix rest of PR 18269 by wurlitzer.
2003-01-01 15:57:12 +00:00
yamt 6a7521b053 - add missing _CEI_TO_EI/_TO_CEI.
- don't use 'cl' before assert it's non NULL.
2003-01-01 15:25:54 +00:00
yamt 13820b1f52 - add missing _CEI_TO_EI/_TO_CEI.
- add missing _STATE_NEEDS_EXPLICIT_INIT checks.
- more comment.
2003-01-01 15:04:01 +00:00
yamt 26baecb89a in _RESTART_BEGIN macro, don't use external variable directly. 2003-01-01 14:45:13 +00:00
yamt 1e35b17a10 when s==0, wctomb should initialize its internal state and return if
encodings have state dependency or not.

a patch provided with PR 18269 by wurlitzer.
modified by me.

fix part of PR 18269.
2003-01-01 14:34:27 +00:00
yamt dec2654840 mbsrtowcs_priv template:
n == 0 is not an error. it's a valid input.
_citrus_NONE_ctype_mbsrtowcs:
	fix a typo that causes SEGV.

while i'm here, make them similar each other.

fix PR 19620.
2003-01-01 13:29:45 +00:00
uebayasi 1e0907fb9a Typos in comments. 2002-12-26 07:58:19 +00:00
lukem 91d06a031b More use of ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path 2002-08-19 13:35:05 +00:00
thorpej 967ae659f1 Add some casts to quiet a "discards qualifier from pointer target type"
warning from gcc 3.2 (experimental) (which is complaining about the loss
of __restrict).

Reviewed and approved by tshiozak@astec.co.jp.
2002-05-24 04:04:30 +00:00
yamt ab015054f8 - fix a.out case. (pointed by an anonymous person)
- use __ELF__ to determine if we're using elf.
2002-04-20 05:55:47 +00:00
yamt 27563a14f1 - move _TO_CEI to template from each module/*.c.
- nuke _TO_EI and _TO_STATE.
- convert _TO_EI(cl) to _CEI_TO_EI(_TO_CEI(cl)).
- wrap long lines.
2002-03-28 10:53:48 +00:00
yamt 0f59b7f0ae fix comments.
(_TO_INTERNAL_STATE -> _CEI_TO_STATE)
2002-03-28 10:38:52 +00:00
yamt 3daba72ae9 introduce new macro _STATE_NEEDS_EXPLICIT_INIT.
and use it for encodings that needs explicit
init_state in addition to zero-fill.
2002-03-28 10:29:11 +00:00
yamt 6854a8c8c8 drop __packed__ attribute from _ISO2022State. 2002-03-28 01:59:50 +00:00
yamt 7b15929c54 fix wcstombs: convertion should always begin with
an initial shift state. and nuke s_wcstombs.
2002-03-27 17:54:40 +00:00
yamt 097394b63d fix state backup.
XXX this should be move into wcrtomb_priv.
2002-03-27 17:18:41 +00:00
yamt f0ab6c6443 - change _ENCODING_MB_CUR_MAX to take a pointer to encoding info.
- don't use MB_CUR_MAX here since it's depend on current locale.
  use _ENCODING_MB_CUR_MAX instead.
2002-03-27 15:01:16 +00:00
yamt 9e8142572a fix wcsrtombs to restart correctly. 2002-03-26 07:53:38 +00:00
yamt c89607bec7 wcsrtombs: handle dst == 0 case correctly. 2002-03-25 20:47:02 +00:00
yamt e274c8a885 - handle the case that buffer size == 0 for wcsrtombs.
- add a XXX comment.
2002-03-25 20:29:30 +00:00
yamt c5c3bb4159 fix mbtowc to return if the encoding's state-dependent or not
correctly.
2002-03-25 19:40:35 +00:00
yamt ede3d88aad calculate the return value of wcsrtombs correctly
for stateful encodings.
2002-03-25 19:10:45 +00:00
yamt c87321b3bf remove unneeded ARGSUSED. 2002-03-18 10:52:55 +00:00
yamt a8bb4f07ee don't set errno here. caller will set it. 2002-03-18 10:01:12 +00:00
yamt d9660875a9 move definition of _citrus_ctype_default out of #ifdef _I18N_DYNAMIC
as it's used by static binaries.
2002-03-18 09:02:50 +00:00
yamt 4ac8cfbb1d don't check variable s0 before assign. 2002-03-18 08:56:32 +00:00
yamt 1d869db224 make mbsrtowcs work.(fix a typo) 2002-03-18 08:09:28 +00:00
tshiozak d1902c2111 fix a bug; calling mbtowc(0, 0, 0) causes the programs to crash under
single byte locales.
2002-03-18 05:50:25 +00:00
tshiozak dc7d18ff88 refine i18n stuffs.
- 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.
2002-03-17 22:14:05 +00:00