Module Name: src Committed By: tnozaki Date: Sun Jun 20 02:23:15 UTC 2010
Modified Files: src/lib/libc/locale: bsdctype.c runetype_file.h runetype_local.h Added Files: src/lib/libc/locale: runetype_misc.h Log Message: fix cross build breakage mklocale(1). move inline finction that uses sys/ctype_bits.h to runetype_misc.h. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/lib/libc/locale/bsdctype.c cvs rdiff -u -r1.2 -r1.3 src/lib/libc/locale/runetype_file.h cvs rdiff -u -r1.11 -r1.12 src/lib/libc/locale/runetype_local.h cvs rdiff -u -r0 -r1.1 src/lib/libc/locale/runetype_misc.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libc/locale/bsdctype.c diff -u src/lib/libc/locale/bsdctype.c:1.8 src/lib/libc/locale/bsdctype.c:1.9 --- src/lib/libc/locale/bsdctype.c:1.8 Sat Jun 19 13:26:52 2010 +++ src/lib/libc/locale/bsdctype.c Sun Jun 20 02:23:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: bsdctype.c,v 1.8 2010/06/19 13:26:52 tnozaki Exp $ */ +/* $NetBSD: bsdctype.c,v 1.9 2010/06/20 02:23:15 tnozaki Exp $ */ /*- * Copyright (c)2008 Citrus Project, @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #if defined(LIBC_SCCS) && !defined(lint) -__RCSID("$NetBSD: bsdctype.c,v 1.8 2010/06/19 13:26:52 tnozaki Exp $"); +__RCSID("$NetBSD: bsdctype.c,v 1.9 2010/06/20 02:23:15 tnozaki Exp $"); #endif /* LIBC_SCCS and not lint */ #include <sys/endian.h> @@ -41,7 +41,7 @@ #include <unistd.h> #include "bsdctype_local.h" -#include "runetype_file.h" +#include "runetype_misc.h" const _BSDCTypeLocale _DefaultBSDCTypeLocale = { _C_ctype_, Index: src/lib/libc/locale/runetype_file.h diff -u src/lib/libc/locale/runetype_file.h:1.2 src/lib/libc/locale/runetype_file.h:1.3 --- src/lib/libc/locale/runetype_file.h:1.2 Sat Jun 19 13:26:52 2010 +++ src/lib/libc/locale/runetype_file.h Sun Jun 20 02:23:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: runetype_file.h,v 1.2 2010/06/19 13:26:52 tnozaki Exp $ */ +/* $NetBSD: runetype_file.h,v 1.3 2010/06/20 02:23:15 tnozaki Exp $ */ /*- * Copyright (c) 1993 @@ -39,7 +39,6 @@ #include <sys/cdefs.h> #include <sys/types.h> -#include <sys/ctype_bits.h> #include "ctype_local.h" @@ -79,93 +78,6 @@ #define _RUNETYPE_SW2 UINT32_C(0x80000000) /* 2 width character */ #define _RUNETYPE_SW3 UINT32_C(0xc0000000) /* 3 width character */ -static __inline int -_runetype_to_ctype(_RuneType bits) -{ - int ret; - - if (bits == (_RuneType)0) - return 0; - ret = 0; - if (bits & _RUNETYPE_U) - ret |= _U; - if (bits & _RUNETYPE_L) - ret |= _L; - if (bits & _RUNETYPE_D) - ret |= _N; - if (bits & _RUNETYPE_S) - ret |= _S; - if (bits & _RUNETYPE_P) - ret |= _P; - if (bits & _RUNETYPE_C) - ret |= _C; - if (bits & _RUNETYPE_X) - ret |= _X; - /* - * TWEAK! _B has been used incorrectly (or with older - * declaration) in ctype.h isprint() macro. - * _B does not mean isblank, it means "isprint && !isgraph". - * the following is okay since isblank() was hardcoded in - * function (i.e. isblank() is inherently locale unfriendly). - */ -#if 1 - if ((bits & (_RUNETYPE_R | _RUNETYPE_G)) == _RUNETYPE_R) - ret |= _B; -#else - if (bits & _RUNETYPE_B) - ret |= _B; -#endif - return ret; -} - -static __inline _RuneType -_runetype_from_ctype(int bits, int ch) -{ - _RuneType ret; - - /* - * TWEAKS! - * - old locale file declarations do not have proper _B - * in many cases. - * - isprint() declaration in ctype.h incorrectly uses _B. - * _B means "isprint but !isgraph", not "isblank" with the - * declaration. - * - _X and _RUNETYPE_X have negligible difference in meaning. - * - we don't set digit value, fearing that it would be - * too much of hardcoding. we may need to revisit it. - */ - - ret = (_RuneType)0; - if (bits & _U) - ret |= _RUNETYPE_U; - if (bits & _L) - ret |= _RUNETYPE_L; - if (bits & _N) - ret |= _RUNETYPE_D; - if (bits & _S) - ret |= _RUNETYPE_S; - if (bits & _P) - ret |= _RUNETYPE_P; - if (bits & _C) - ret |= _RUNETYPE_C; - /* derived flag bits, duplicate of ctype.h */ - if (bits & (_U|_L)) - ret |= _RUNETYPE_A; - if (bits & (_N|_X)) - ret |= _RUNETYPE_X; - if (bits & (_P|_U|_L|_N)) - ret |= _RUNETYPE_G; - /* we don't really trust _B in the file. see above. */ - if (bits & _B) - ret |= _RUNETYPE_B; - if ((bits & (_P|_U|_L|_N|_B)) || ch == ' ') - ret |= (_RUNETYPE_R | _RUNETYPE_SW1); - if (ch == ' ' || ch == '\t') - ret |= _RUNETYPE_B; - return ret; -} - - /* * rune file format. network endian. */ Index: src/lib/libc/locale/runetype_local.h diff -u src/lib/libc/locale/runetype_local.h:1.11 src/lib/libc/locale/runetype_local.h:1.12 --- src/lib/libc/locale/runetype_local.h:1.11 Sat Jun 19 13:26:52 2010 +++ src/lib/libc/locale/runetype_local.h Sun Jun 20 02:23:15 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: runetype_local.h,v 1.11 2010/06/19 13:26:52 tnozaki Exp $ */ +/* $NetBSD: runetype_local.h,v 1.12 2010/06/20 02:23:15 tnozaki Exp $ */ /*- * Copyright (c) 1993 @@ -42,7 +42,7 @@ #include <sys/types.h> #include <stdio.h> -#include "runetype_file.h" +#include "runetype_misc.h" #define _RUNE_ISCACHED(c) ((c)>=0 && (c)<_CTYPE_CACHE_SIZE) Added files: Index: src/lib/libc/locale/runetype_misc.h diff -u /dev/null src/lib/libc/locale/runetype_misc.h:1.1 --- /dev/null Sun Jun 20 02:23:15 2010 +++ src/lib/libc/locale/runetype_misc.h Sun Jun 20 02:23:15 2010 @@ -0,0 +1,129 @@ +/* $NetBSD: runetype_misc.h,v 1.1 2010/06/20 02:23:15 tnozaki Exp $ */ + +/*- + * Copyright (c) 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)runetype.h 8.1 (Berkeley) 6/2/93 + */ + +#ifndef _RUNETYPE_MISC_H_ +#define _RUNETYPE_MISC_H_ + +#include <sys/ctype_bits.h> +#include "runetype_file.h" + +static __inline int +_runetype_to_ctype(_RuneType bits) +{ + int ret; + + if (bits == (_RuneType)0) + return 0; + ret = 0; + if (bits & _RUNETYPE_U) + ret |= _U; + if (bits & _RUNETYPE_L) + ret |= _L; + if (bits & _RUNETYPE_D) + ret |= _N; + if (bits & _RUNETYPE_S) + ret |= _S; + if (bits & _RUNETYPE_P) + ret |= _P; + if (bits & _RUNETYPE_C) + ret |= _C; + if (bits & _RUNETYPE_X) + ret |= _X; + /* + * TWEAK! _B has been used incorrectly (or with older + * declaration) in ctype.h isprint() macro. + * _B does not mean isblank, it means "isprint && !isgraph". + * the following is okay since isblank() was hardcoded in + * function (i.e. isblank() is inherently locale unfriendly). + */ +#if 1 + if ((bits & (_RUNETYPE_R | _RUNETYPE_G)) == _RUNETYPE_R) + ret |= _B; +#else + if (bits & _RUNETYPE_B) + ret |= _B; +#endif + return ret; +} + +static __inline _RuneType +_runetype_from_ctype(int bits, int ch) +{ + _RuneType ret; + + /* + * TWEAKS! + * - old locale file declarations do not have proper _B + * in many cases. + * - isprint() declaration in ctype.h incorrectly uses _B. + * _B means "isprint but !isgraph", not "isblank" with the + * declaration. + * - _X and _RUNETYPE_X have negligible difference in meaning. + * - we don't set digit value, fearing that it would be + * too much of hardcoding. we may need to revisit it. + */ + + ret = (_RuneType)0; + if (bits & _U) + ret |= _RUNETYPE_U; + if (bits & _L) + ret |= _RUNETYPE_L; + if (bits & _N) + ret |= _RUNETYPE_D; + if (bits & _S) + ret |= _RUNETYPE_S; + if (bits & _P) + ret |= _RUNETYPE_P; + if (bits & _C) + ret |= _RUNETYPE_C; + /* derived flag bits, duplicate of ctype.h */ + if (bits & (_U|_L)) + ret |= _RUNETYPE_A; + if (bits & (_N|_X)) + ret |= _RUNETYPE_X; + if (bits & (_P|_U|_L|_N)) + ret |= _RUNETYPE_G; + /* we don't really trust _B in the file. see above. */ + if (bits & _B) + ret |= _RUNETYPE_B; + if ((bits & (_P|_U|_L|_N|_B)) || ch == ' ') + ret |= (_RUNETYPE_R | _RUNETYPE_SW1); + if (ch == ' ' || ch == '\t') + ret |= _RUNETYPE_B; + return ret; +} + +#endif /* !_RUNETYPE_MISC_H_ */