Module Name: src
Committed By: christos
Date: Sat Aug 17 20:08:13 UTC 2024
Modified Files:
src/lib/libc/locale: c16rtomb.c c8rtomb.c mbrtoc16.c mbrtoc32.c
mbrtoc8.c
Log Message:
pass lint, XXX see lint bug.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/locale/c16rtomb.c
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/locale/c8rtomb.c \
src/lib/libc/locale/mbrtoc8.c
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/locale/mbrtoc16.c \
src/lib/libc/locale/mbrtoc32.c
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/c16rtomb.c
diff -u src/lib/libc/locale/c16rtomb.c:1.3 src/lib/libc/locale/c16rtomb.c:1.4
--- src/lib/libc/locale/c16rtomb.c:1.3 Thu Aug 15 18:22:35 2024
+++ src/lib/libc/locale/c16rtomb.c Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: c16rtomb.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $ */
+/* $NetBSD: c16rtomb.c,v 1.4 2024/08/17 20:08:13 christos Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: c16rtomb.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $");
+__RCSID("$NetBSD: c16rtomb.c,v 1.4 2024/08/17 20:08:13 christos Exp $");
#include "namespace.h"
@@ -124,7 +124,7 @@ c16rtomb(char *restrict s, char16_t c16,
/*
* Open the private UTF-16 decoding state.
*/
- S = (struct c16rtombstate *)ps;
+ S = (struct c16rtombstate *)(void *)ps;
#if 0
/*
@@ -163,8 +163,9 @@ c16rtomb(char *restrict s, char16_t c16,
}
const char16_t w1 = S->surrogate;
const char16_t w2 = c16;
- c32 = __SHIFTIN(__SHIFTOUT(w1, __BITS(9,0)), __BITS(19,10)) |
- __SHIFTIN(__SHIFTOUT(w2, __BITS(9,0)), __BITS(9,0));
+ c32 = (char32_t)(
+ __SHIFTIN(__SHIFTOUT(w1, __BITS(9,0)), __BITS(19,10)) |
+ __SHIFTIN(__SHIFTOUT(w2, __BITS(9,0)), __BITS(9,0)));
c32 += 0x10000;
S->surrogate = 0;
} else if (c16 >= 0xd800 && c16 <= 0xdbff) { /* 2. high surrogate */
Index: src/lib/libc/locale/c8rtomb.c
diff -u src/lib/libc/locale/c8rtomb.c:1.2 src/lib/libc/locale/c8rtomb.c:1.3
--- src/lib/libc/locale/c8rtomb.c:1.2 Thu Aug 15 18:23:17 2024
+++ src/lib/libc/locale/c8rtomb.c Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: c8rtomb.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $ */
+/* $NetBSD: c8rtomb.c,v 1.3 2024/08/17 20:08:13 christos Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: c8rtomb.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $");
+__RCSID("$NetBSD: c8rtomb.c,v 1.3 2024/08/17 20:08:13 christos Exp $");
#include "namespace.h"
@@ -158,7 +158,7 @@ c8rtomb(char *restrict s, char8_t c8, mb
/*
* Open the private UTF-8 decoding state.
*/
- S = (struct c8rtombstate *)ps;
+ S = (struct c8rtombstate *)(void *)ps;
#if 0
/*
@@ -181,8 +181,8 @@ c8rtomb(char *restrict s, char8_t c8, mb
* Get the current state and buffer.
*/
__CTASSERT(UTF8_ACCEPT == 0); /* initial conversion state */
- state = __SHIFTOUT(S->state_c32, __BITS(31,24));
- c32 = __SHIFTOUT(S->state_c32, __BITS(23,0));
+ state = (utf8_state_t)__SHIFTOUT(S->state_c32, __BITS(31,24));
+ c32 = (char32_t)__SHIFTOUT(S->state_c32, __BITS(23,0));
/*
* Feed the byte into the state machine to update the state.
@@ -200,15 +200,19 @@ c8rtomb(char *restrict s, char8_t c8, mb
* Valid UTF-8 so far but incomplete. Update state and
* output nothing.
*/
- S->state_c32 = __SHIFTIN(state, __BITS(31,24)) |
- __SHIFTIN(c32, __BITS(23,0));
+ S->state_c32 = (char32_t)(
+ __SHIFTIN(state, __BITS(31,24)) |
+ __SHIFTIN(c32, __BITS(23,0)));
return 0;
case UTF8_ACCEPT:
/*
* We have a scalar value. Clear the state and output
* the scalar value.
*/
+#ifndef __lint__
+ // XXX: lint does not grok struct decl after case label!
__CTASSERT(UTF8_ACCEPT == 0);
+#endif
S->state_c32 = 0;
return c32rtomb(s, c32, &S->mbs);
}
Index: src/lib/libc/locale/mbrtoc8.c
diff -u src/lib/libc/locale/mbrtoc8.c:1.2 src/lib/libc/locale/mbrtoc8.c:1.3
--- src/lib/libc/locale/mbrtoc8.c:1.2 Thu Aug 15 18:23:17 2024
+++ src/lib/libc/locale/mbrtoc8.c Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mbrtoc8.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $ */
+/* $NetBSD: mbrtoc8.c,v 1.3 2024/08/17 20:08:13 christos Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -72,7 +72,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc8.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc8.c,v 1.3 2024/08/17 20:08:13 christos Exp $");
#include "namespace.h"
@@ -133,7 +133,7 @@ mbrtoc8(char8_t *restrict pc8, const cha
/*
* Get the private conversion state.
*/
- S = (struct mbrtoc8state *)ps;
+ S = (struct mbrtoc8state *)(void *)ps;
/*
* If there are pending trailing bytes, yield them and return
@@ -181,23 +181,32 @@ mbrtoc8(char8_t *restrict pc8, const cha
break;
case 0x0080 ... 0x07ff:
if (pc8)
- *pc8 = 0xc0 | __SHIFTOUT(c32, __BITS(10,6));
- S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+ *pc8 = (char8_t)(
+ 0xc0 | __SHIFTOUT(c32, __BITS(10,6)));
+ S->buf[2] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(5,0)));
S->nleft = 1;
break;
case 0x0800 ... 0xffff:
if (pc8)
- *pc8 = 0xe0 | __SHIFTOUT(c32, __BITS(15,12));
- S->buf[1] = 0x80 | __SHIFTOUT(c32, __BITS(11,6));
- S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+ *pc8 = (char8_t)(
+ 0xe0 | __SHIFTOUT(c32, __BITS(15,12)));
+ S->buf[1] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(11,6)));
+ S->buf[2] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(5,0)));
S->nleft = 2;
break;
case 0x10000 ... 0x10ffff:
if (pc8)
- *pc8 = 0xf0 | __SHIFTOUT(c32, __BITS(20,18));
- S->buf[0] = 0x80 | __SHIFTOUT(c32, __BITS(17,12));
- S->buf[1] = 0x80 | __SHIFTOUT(c32, __BITS(11,6));
- S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+ *pc8 = (char8_t)(
+ 0xf0 | __SHIFTOUT(c32, __BITS(20,18)));
+ S->buf[0] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(17,12)));
+ S->buf[1] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(11,6)));
+ S->buf[2] = (char8_t)(
+ 0x80 | __SHIFTOUT(c32, __BITS(5,0)));
S->nleft = 3;
break;
default:
Index: src/lib/libc/locale/mbrtoc16.c
diff -u src/lib/libc/locale/mbrtoc16.c:1.4 src/lib/libc/locale/mbrtoc16.c:1.5
--- src/lib/libc/locale/mbrtoc16.c:1.4 Thu Aug 15 18:22:35 2024
+++ src/lib/libc/locale/mbrtoc16.c Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mbrtoc16.c,v 1.4 2024/08/15 22:22:35 riastradh Exp $ */
+/* $NetBSD: mbrtoc16.c,v 1.5 2024/08/17 20:08:13 christos Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc16.c,v 1.4 2024/08/15 22:22:35 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc16.c,v 1.5 2024/08/17 20:08:13 christos Exp $");
#include "namespace.h"
@@ -133,7 +133,7 @@ mbrtoc16(char16_t *restrict pc16, const
/*
* Get the private conversion state.
*/
- S = (struct mbrtoc16state *)ps;
+ S = (struct mbrtoc16state *)(void *)ps;
/*
* If there is a pending surrogate, yield it and consume no
@@ -182,8 +182,10 @@ mbrtoc16(char16_t *restrict pc16, const
_DIAGASSERT(S->surrogate == 0);
} else {
c32 -= 0x10000;
- const char16_t w1 = 0xd800 | __SHIFTOUT(c32, __BITS(19,10));
- const char16_t w2 = 0xdc00 | __SHIFTOUT(c32, __BITS(9,0));
+ const char16_t w1 = (char16_t)(
+ 0xd800 | __SHIFTOUT(c32, __BITS(19,10)));
+ const char16_t w2 = (char16_t)(
+ 0xdc00 | __SHIFTOUT(c32, __BITS(9,0)));
if (pc16)
*pc16 = w1;
S->surrogate = w2;
Index: src/lib/libc/locale/mbrtoc32.c
diff -u src/lib/libc/locale/mbrtoc32.c:1.4 src/lib/libc/locale/mbrtoc32.c:1.5
--- src/lib/libc/locale/mbrtoc32.c:1.4 Fri Aug 16 10:00:48 2024
+++ src/lib/libc/locale/mbrtoc32.c Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $ */
+/* $NetBSD: mbrtoc32.c,v 1.5 2024/08/17 20:08:13 christos Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -52,7 +52,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc32.c,v 1.5 2024/08/17 20:08:13 christos Exp $");
#include "namespace.h"
@@ -132,7 +132,7 @@ mbrtoc32(char32_t *restrict pc32, const
/*
* Get the private conversion state.
*/
- S = (struct mbrtoc32state *)ps;
+ S = (struct mbrtoc32state *)(void *)ps;
/*
* If input length is zero, the result is always incomplete by