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