Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libc/locale fix cross build breakage mklocale(1).



details:   https://anonhg.NetBSD.org/src/rev/b09dbaa7b17d
branches:  trunk
changeset: 755783:b09dbaa7b17d
user:      tnozaki <tnozaki%NetBSD.org@localhost>
date:      Sun Jun 20 02:23:15 2010 +0000

description:
fix cross build breakage mklocale(1).
move inline finction that uses sys/ctype_bits.h to runetype_misc.h.

diffstat:

 lib/libc/locale/bsdctype.c       |    6 +-
 lib/libc/locale/runetype_file.h  |   90 +--------------------------
 lib/libc/locale/runetype_local.h |    4 +-
 lib/libc/locale/runetype_misc.h  |  129 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 135 insertions(+), 94 deletions(-)

diffs (289 lines):

diff -r ecd7d13f3a70 -r b09dbaa7b17d lib/libc/locale/bsdctype.c
--- a/lib/libc/locale/bsdctype.c        Sun Jun 20 00:25:41 2010 +0000
+++ b/lib/libc/locale/bsdctype.c        Sun Jun 20 02:23:15 2010 +0000
@@ -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_,
diff -r ecd7d13f3a70 -r b09dbaa7b17d lib/libc/locale/runetype_file.h
--- a/lib/libc/locale/runetype_file.h   Sun Jun 20 00:25:41 2010 +0000
+++ b/lib/libc/locale/runetype_file.h   Sun Jun 20 02:23:15 2010 +0000
@@ -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.
  */
diff -r ecd7d13f3a70 -r b09dbaa7b17d lib/libc/locale/runetype_local.h
--- a/lib/libc/locale/runetype_local.h  Sun Jun 20 00:25:41 2010 +0000
+++ b/lib/libc/locale/runetype_local.h  Sun Jun 20 02:23:15 2010 +0000
@@ -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)
 
diff -r ecd7d13f3a70 -r b09dbaa7b17d lib/libc/locale/runetype_misc.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/locale/runetype_misc.h   Sun Jun 20 02:23:15 2010 +0000
@@ -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_ */



Home | Main Index | Thread Index | Old Index