Module Name: src
Committed By: riastradh
Date: Fri Aug 16 14:00:48 UTC 2024
Modified Files:
src/lib/libc/locale: mbrtoc32.c
Log Message:
mbrtoc32(3): Clarify control flow.
No need for another goto here; let's keep it clearly structured with
a single `out' label.
No functional change intended.
PR lib/52374: <uchar.h> missing
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 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/mbrtoc32.c
diff -u src/lib/libc/locale/mbrtoc32.c:1.3 src/lib/libc/locale/mbrtoc32.c:1.4
--- src/lib/libc/locale/mbrtoc32.c:1.3 Thu Aug 15 22:22:35 2024
+++ src/lib/libc/locale/mbrtoc32.c Fri Aug 16 14:00:48 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: mbrtoc32.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $ */
+/* $NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -52,7 +52,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc32.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $");
#include "namespace.h"
@@ -180,7 +180,7 @@ mbrtoc32(char32_t *restrict pc32, const
_CITRUS_ICONV_F_HIDE_INVALID, &inval);
if (error != EINVAL) {
if (error == 0)
- goto ok;
+ break;
errno = error;
len = (size_t)-1;
goto out;
@@ -188,14 +188,15 @@ mbrtoc32(char32_t *restrict pc32, const
}
/*
- * Incomplete. Return (size_t)-2 and let the caller try again.
- * We have consumed all n bytes at this point without finding a
- * complete code point.
+ * If it is still incomplete after trying the whole input
+ * buffer, return (size_t)-2 and let the caller try again.
*/
- len = (size_t)-2;
- goto out;
+ if (error) {
+ len = (size_t)-2;
+ goto out;
+ }
-ok: /*
+ /*
* Successfully converted a minimal byte sequence, which should
* produce exactly one UTF-32 code unit, encoded in
* little-endian, representing a code point. Get the code