Module Name:    src
Committed By:   rin
Date:           Mon Sep  2 01:04:35 UTC 2024

Modified Files:
        src/external/historical/nawk/dist: main.c

Log Message:
nawk: Fix previous for UTF-8 locales

We need `setlocale(LC_CTYPE, "")` before `nl_langinfo(CODESET)`.
Otherwise, `nl_langinfo(CODESET)` returns "646" (== ASCII)
regardless of environment variables.

This fixes regression for usr.bin/awk/t_awk:multibyte.


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/external/historical/nawk/dist/main.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/historical/nawk/dist/main.c
diff -u src/external/historical/nawk/dist/main.c:1.13 src/external/historical/nawk/dist/main.c:1.14
--- src/external/historical/nawk/dist/main.c:1.13	Sun Sep  1 14:45:39 2024
+++ src/external/historical/nawk/dist/main.c	Mon Sep  2 01:04:35 2024
@@ -142,9 +142,11 @@ int main(int argc, char *argv[])
 	const char *fs = NULL;
 	char *fn, *vn;
 
+	setlocale(LC_CTYPE, "");
 	setlocale(LC_NUMERIC, "C"); /* for parsing cmdline & prog */
 	/* Force C locale for non-UTF-8 */
-	setlocale(LC_CTYPE, strcmp(nl_langinfo(CODESET), "UTF-8") ? "C" : "");
+	if (strcmp(nl_langinfo(CODESET), "UTF-8") != 0)
+		setlocale(LC_CTYPE, "C");
 	awk_mb_cur_max = MB_CUR_MAX;
 	cmdname = argv[0];
 	if (argc == 1) {

Reply via email to