CVS commit: [perseant-stdc-iso10646] src/lib/libc/citrus

2018-01-29 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Mon Jan 29 22:08:59 UTC 2018

Modified Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: Makefile.inc
citrus_trie.c citrus_trie.h
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5.c
citrus_big5_k2u.h citrus_big5_u2k.h citrus_euc.c citrus_euc_k2u.h
citrus_euc_u2k.h citrus_iso2022.c citrus_iso2022_k2u.h
citrus_iso2022_u2k.h citrus_mskanji.c citrus_mskanji_k2u.h
citrus_mskanji_u2k.h

Log Message:
Fix issues with trie implementation.  Now passes the locale tests when 
__STDC_ISO_10646__ is defined, with the exception of tests requiring LC_COLLATE 
support.


To generate a diff of this commit:
cvs rdiff -u -r1.8.40.1 -r1.8.40.2 src/lib/libc/citrus/Makefile.inc
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/lib/libc/citrus/citrus_trie.c \
src/lib/libc/citrus/citrus_trie.h
cvs rdiff -u -r1.15.18.4 -r1.15.18.5 \
src/lib/libc/citrus/modules/citrus_big5.c
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 \
src/lib/libc/citrus/modules/citrus_big5_k2u.h \
src/lib/libc/citrus/modules/citrus_big5_u2k.h \
src/lib/libc/citrus/modules/citrus_euc_k2u.h \
src/lib/libc/citrus/modules/citrus_euc_u2k.h \
src/lib/libc/citrus/modules/citrus_iso2022_k2u.h \
src/lib/libc/citrus/modules/citrus_iso2022_u2k.h \
src/lib/libc/citrus/modules/citrus_mskanji_k2u.h \
src/lib/libc/citrus/modules/citrus_mskanji_u2k.h
cvs rdiff -u -r1.17.20.4 -r1.17.20.5 src/lib/libc/citrus/modules/citrus_euc.c
cvs rdiff -u -r1.23.22.4 -r1.23.22.5 \
src/lib/libc/citrus/modules/citrus_iso2022.c
cvs rdiff -u -r1.14.22.4 -r1.14.22.5 \
src/lib/libc/citrus/modules/citrus_mskanji.c

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

diffs are larger than 1MB and have been omitted


CVS commit: [perseant-stdc-iso10646] src

2018-01-22 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Tue Jan 23 03:12:11 UTC 2018

Modified Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_ctype.h
citrus_none.c
src/tests/lib/libc/locale [perseant-stdc-iso10646]: t_toupper.c

Log Message:
Make the tests pass once more when __STDC_ISO_10646__ is not defined.


To generate a diff of this commit:
cvs rdiff -u -r1.3.22.2 -r1.3.22.3 src/lib/libc/citrus/citrus_ctype.h
cvs rdiff -u -r1.22.2.2 -r1.22.2.3 src/lib/libc/citrus/citrus_none.c
cvs rdiff -u -r1.1 -r1.1.4.1 src/tests/lib/libc/locale/t_toupper.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/citrus/citrus_ctype.h
diff -u src/lib/libc/citrus/citrus_ctype.h:1.3.22.2 src/lib/libc/citrus/citrus_ctype.h:1.3.22.3
--- src/lib/libc/citrus/citrus_ctype.h:1.3.22.2	Mon Jul 31 04:23:35 2017
+++ src/lib/libc/citrus/citrus_ctype.h	Tue Jan 23 03:12:11 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: citrus_ctype.h,v 1.3.22.2 2017/07/31 04:23:35 perseant Exp $	*/
+/*	$NetBSD: citrus_ctype.h,v 1.3.22.3 2018/01/23 03:12:11 perseant Exp $	*/
 
 /*-
  * Copyright (c)2002 Citrus Project,
@@ -206,8 +206,8 @@ _citrus_ctype_kt2ucs(_citrus_ctype_t cc,
 }
 #else
 /* Define away the calls to these functions */
-#define _citrus_ctype_ucs2kt(cl, ktp, wc) do {} while (0)
-#define _citrus_ctype_kt2ucs(cl, up, kt) do {} while (0)
+#define _citrus_ctype_ucs2kt(cl, ktp, wc) do { *ktp = wc; } while (0)
+#define _citrus_ctype_kt2ucs(cl, up, kt) do { *up = kt; } while (0)
 #endif
 
 extern _citrus_ctype_rec_t _citrus_ctype_default;

Index: src/lib/libc/citrus/citrus_none.c
diff -u src/lib/libc/citrus/citrus_none.c:1.22.2.2 src/lib/libc/citrus/citrus_none.c:1.22.2.3
--- src/lib/libc/citrus/citrus_none.c:1.22.2.2	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/citrus/citrus_none.c	Tue Jan 23 03:12:11 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: citrus_none.c,v 1.22.2.2 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: citrus_none.c,v 1.22.2.3 2018/01/23 03:12:11 perseant Exp $	*/
 
 /*-
  * Copyright (c)2002 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_none.c,v 1.22.2.2 2017/07/21 20:22:29 perseant Exp $");
+__RCSID("$NetBSD: citrus_none.c,v 1.22.2.3 2018/01/23 03:12:11 perseant Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include 
@@ -493,6 +493,10 @@ _citrus_NONE_ctype_ucs2kt(void * __restr
 			  wchar_kuten_t * __restrict ktp,
 			  wchar_ucs4_t wc)
 {
+#ifndef __STDC_ISO_10646__
+	*ktp = wc;
+	return 0;
+#else /* __STDC_ISO_10646__ */
 	struct _NONE_Info *nip = (struct _NONE_Info *)cl;
 	struct unicode2kuten_lookup *uk = NULL;
 
@@ -514,6 +518,7 @@ _citrus_NONE_ctype_ucs2kt(void * __restr
 	else
 		*ktp = WEOF;
 	return 0;
+#endif /* __STDC_ISO_10646__ */
 }
 
 static int
@@ -522,6 +527,10 @@ _citrus_NONE_ctype_kt2ucs(void * __restr
 			  wchar_ucs4_t * __restrict up,
 			  wchar_kuten_t kt)
 {
+#ifndef __STDC_ISO_10646__
+	*up = kt;
+	return 0;
+#else /* __STDC_ISO_10646__ */
 	if (cl == NULL) {
 		*up = kt;
 		return 0;
@@ -529,6 +538,7 @@ _citrus_NONE_ctype_kt2ucs(void * __restr
 
 	*up = ((struct _NONE_Info *)cl)->forward[kt];
 	return 0;
+#endif /* __STDC_ISO_10646__ */
 }
 
 /* -- */

Index: src/tests/lib/libc/locale/t_toupper.c
diff -u src/tests/lib/libc/locale/t_toupper.c:1.1 src/tests/lib/libc/locale/t_toupper.c:1.1.4.1
--- src/tests/lib/libc/locale/t_toupper.c:1.1	Tue May 30 02:11:03 2017
+++ src/tests/lib/libc/locale/t_toupper.c	Tue Jan 23 03:12:11 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: t_toupper.c,v 1.1 2017/05/30 02:11:03 perseant Exp $ */
+/* $NetBSD: t_toupper.c,v 1.1.4.1 2018/01/23 03:12:11 perseant Exp $ */
 
 /*-
  * Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 #include 
 __COPYRIGHT("@(#) Copyright (c) 2017\
  The NetBSD Foundation, inc. All rights reserved.");
-__RCSID("$NetBSD: t_toupper.c,v 1.1 2017/05/30 02:11:03 perseant Exp $");
+__RCSID("$NetBSD: t_toupper.c,v 1.1.4.1 2018/01/23 03:12:11 perseant Exp $");
 
 #include 
 #include 
@@ -71,6 +71,7 @@ h_swapcase(const struct test *t, int upp
 	ATF_REQUIRE_STREQ(setlocale(LC_ALL, "C"), "C");
 	printf("Trying locale %s...\n", t->locale);
 	ATF_REQUIRE(setlocale(LC_CTYPE, t->locale) != NULL);
+	printf("Using locale: %s\n", setlocale(LC_ALL, NULL));
 
 	for (i = 0; i < strlen(t->lower); i++) {
 		printf("Comparing char %d, lower %2.2x, with upper %2.2x\n",



CVS commit: [perseant-stdc-iso10646] src/lib/libc/citrus

2018-01-21 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Sun Jan 21 19:35:10 UTC 2018

Added Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_trie.c
citrus_trie.h

Log Message:
Add files missing from previous commit


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/citrus/citrus_trie.c \
src/lib/libc/citrus/citrus_trie.h

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

Added files:

Index: src/lib/libc/citrus/citrus_trie.c
diff -u /dev/null src/lib/libc/citrus/citrus_trie.c:1.1.2.1
--- /dev/null	Sun Jan 21 19:35:10 2018
+++ src/lib/libc/citrus/citrus_trie.c	Sun Jan 21 19:35:10 2018
@@ -0,0 +1,404 @@
+#include "citrus_trie.h"
+#ifdef DEBUG_TRIE
+# include "modules/citrus_euc_data.h"
+# include "citrus_trie_test.h"
+#endif
+
+static void citrus_trie_dump_table_recursive(citrus_trie_node_t, size_t, FILE *, int);
+static void citrus_trie_load_table_recursive(citrus_trie_node_t, size_t, FILE *);
+static void citrus_trie_init_recursive(citrus_trie_node_t *, VALUE_TYPE *, int, int *, int *);
+
+citrus_trie_header_t
+citrus_trie_create(unsigned int flags, size_t bitwidth,
+		   size_t nlevels, size_t off, size_t len)
+{
+	citrus_trie_header_t h;
+
+	h = (citrus_trie_header_t)malloc(sizeof(*h));
+	h->th_flags = flags;
+	h->th_bitwidth = bitwidth;
+	h->th_bitmask = (1 << bitwidth) - 1;
+	h->th_off = off;
+	h->th_level = nlevels - 1;
+#ifdef DEBUG_TRIE
+	h->th_size = sizeof(*h);
+#endif
+	h->th_root = citrus_trie_node_create(h, h->th_level, len);
+
+	return h;
+}
+
+citrus_trie_node_t
+citrus_trie_node_create(citrus_trie_header_t h, size_t level, size_t len)
+{
+	int i;
+	citrus_trie_node_t t;
+
+	t = (citrus_trie_node_t)citrus_trie_malloc(h, sizeof(*t));
+	t->tr_len = len;
+	if (len > 0) {
+		t->tr_u = (union citrus_trie_node_union *)citrus_trie_malloc(h, len * sizeof(*t->tr_u));
+		if (level == 0) {
+			for (i = 0; i < len; i++)
+t->tr_u[i].u_value = INVALID_VALUE;
+		} else {
+			for (i = 0; i < len; i++)
+t->tr_u[i].u_child = NULL;
+		}
+	} else
+		t->tr_u = NULL;
+
+	return t;
+}
+
+int
+citrus_trie_node_insert(citrus_trie_header_t h, citrus_trie_node_t t, size_t level, citrus_trie_key_t key, VALUE_TYPE value)
+{
+	size_t idx, i, olen;
+
+	idx = (key >> (level * h->th_bitwidth)) & h->th_bitmask;
+	if (idx < h->th_off)
+		return EINVAL;
+
+	idx -= h->th_off;
+	if (t->tr_len <= idx) {
+		olen = t->tr_len;
+		t->tr_len = idx + 1;
+#ifdef DEBUG_TRIE
+		h->th_size += (t->tr_len - olen) * sizeof(*t->tr_u);
+#endif
+		t->tr_u = (union citrus_trie_node_union *)realloc(t->tr_u, t->tr_len * sizeof(*t->tr_u));
+		for (i = olen; i < t->tr_len; i++) {
+			if (level == 0)
+t->tr_u[i].u_value = INVALID_VALUE;
+			else
+t->tr_u[i].u_child = NULL;
+		}
+	}
+
+	if (level == 0) {
+		t->tr_u[idx].u_value = value;
+		return 0;
+	} else {
+		if (t->tr_u[idx].u_child == NULL)
+			t->tr_u[idx].u_child = citrus_trie_node_create(h, level - 1, 0);
+		return citrus_trie_node_insert(h, t->tr_u[idx].u_child, level - 1,
+	key, value);
+	}
+}
+
+int
+citrus_trie_insert(citrus_trie_header_t h, citrus_trie_key_t key, VALUE_TYPE value)
+{
+	int r = citrus_trie_node_insert(h, h->th_root, h->th_level, key, value);
+#ifdef DEBUG_TRIE
+	int c = citrus_trie_lookup(h, key);
+	if (c != value)
+		fprintf(stderr, "Error on insert: key %x expected %x got %x\n", (unsigned)key, value, c);
+#endif
+	return r;
+}
+
+VALUE_TYPE
+citrus_trie_node_lookup(citrus_trie_header_t h, citrus_trie_node_t t, size_t level, citrus_trie_key_t key)
+{
+	size_t idx;
+
+	idx = (key >> (level * h->th_bitwidth)) & h->th_bitmask;
+	if (idx < h->th_off)
+		return INVALID_VALUE;
+
+	idx -= h->th_off;
+	if (idx >= t->tr_len)
+		return INVALID_VALUE;
+
+	if (level == 0) {
+		return t->tr_u[idx].u_value;
+	}
+	return citrus_trie_node_lookup(h, t->tr_u[idx].u_child, level - 1, key);
+}
+
+VALUE_TYPE
+citrus_trie_lookup(citrus_trie_header_t h, citrus_trie_key_t key)
+{
+	return citrus_trie_node_lookup(h, h->th_root, h->th_level, key);
+}
+
+/*
+ * Assume VALUE_TYPE flat[N][2].
+ */
+citrus_trie_header_t
+citrus_trie_create_from_flat(VALUE_TYPE *flat, size_t bitwidth, int count) {
+	VALUE_TYPE ne_key;
+	int i, j;
+	unsigned val;
+	citrus_trie_header_t h;
+	size_t bitmask = (1 << bitwidth) - 1;
+	size_t maxshift = (8 * sizeof(VALUE_TYPE)) / bitwidth;
+	size_t min = bitmask, max = 0, level = 0;
+
+	/* Loop through every element to see what
+	   level, off and len should be */
+	for (i = 0; i < count; i++) {
+		ne_key = flat[i * 2];
+		for (j = 0; j < maxshift; j++) {
+			val = (ne_key >> (j * bitwidth)) & bitmask;
+			if (level < j + 1 && val)
+level = j + 1;
+			if (min > val)
+min = val;
+			if (max < val)
+max = val;
+		}
+	}
+
+	h = citrus_trie_create(0x0, bitwidth, level, min, max - min + 1);
+
+	/* Now add every value */
+	for (i = 0; i < count; i++) {
+		ne_key = flat[i * 2];
+		
+		citrus_trie_insert(h, ne_key, flat[i * 2 

CVS commit: [perseant-stdc-iso10646] src

2018-01-20 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Sat Jan 20 19:36:29 UTC 2018

Modified Files:
src/include [perseant-stdc-iso10646]: wchar.h
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_lc_collate.c
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5.c
citrus_euc.c citrus_iso2022.c citrus_mskanji.c
src/lib/libc/locale [perseant-stdc-iso10646]: collate.h
collate_locale.c ducet_collation_data.h unicode_ucd.c
src/tools [perseant-stdc-iso10646]: Makefile
src/usr.bin/localedef [perseant-stdc-iso10646]: Makefile collate.c
Added Files:
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5_k2u.h
citrus_big5_u2k.h citrus_euc_k2u.h citrus_euc_u2k.h
citrus_iso2022_k2u.h citrus_iso2022_u2k.h citrus_mskanji_k2u.h
citrus_mskanji_u2k.h
Removed Files:
src/usr.bin/localedef [perseant-stdc-iso10646]: localedef parser.c
parser.h

Log Message:
Use multilevel tables (tries) to convert kuten <-> unicode.
Get rid of dchains, replace with chain/rchain conversions through keys
allocated from the PUA.


To generate a diff of this commit:
cvs rdiff -u -r1.42.8.1 -r1.42.8.2 src/include/wchar.h
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/lib/libc/citrus/citrus_lc_collate.c
cvs rdiff -u -r1.15.18.3 -r1.15.18.4 \
src/lib/libc/citrus/modules/citrus_big5.c
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/citrus/modules/citrus_big5_k2u.h \
src/lib/libc/citrus/modules/citrus_big5_u2k.h \
src/lib/libc/citrus/modules/citrus_euc_k2u.h \
src/lib/libc/citrus/modules/citrus_euc_u2k.h \
src/lib/libc/citrus/modules/citrus_iso2022_k2u.h \
src/lib/libc/citrus/modules/citrus_iso2022_u2k.h \
src/lib/libc/citrus/modules/citrus_mskanji_k2u.h \
src/lib/libc/citrus/modules/citrus_mskanji_u2k.h
cvs rdiff -u -r1.17.20.3 -r1.17.20.4 src/lib/libc/citrus/modules/citrus_euc.c
cvs rdiff -u -r1.23.22.3 -r1.23.22.4 \
src/lib/libc/citrus/modules/citrus_iso2022.c
cvs rdiff -u -r1.14.22.3 -r1.14.22.4 \
src/lib/libc/citrus/modules/citrus_mskanji.c
cvs rdiff -u -r1.1.40.1 -r1.1.40.2 src/lib/libc/locale/collate.h
cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/lib/libc/locale/collate_locale.c \
src/lib/libc/locale/unicode_ucd.c
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/lib/libc/locale/ducet_collation_data.h
cvs rdiff -u -r1.191 -r1.191.2.1 src/tools/Makefile
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/usr.bin/localedef/Makefile \
src/usr.bin/localedef/collate.c
cvs rdiff -u -r1.1.2.1 -r0 src/usr.bin/localedef/localedef \
src/usr.bin/localedef/parser.c src/usr.bin/localedef/parser.h

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

diffs are larger than 1MB and have been omitted


CVS commit: [perseant-stdc-iso10646] src

2017-08-07 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Mon Aug  7 14:27:11 UTC 2017

Modified Files:
src/lib/libc/locale [perseant-stdc-iso10646]: _wctrans_local.h rune.c
src/usr.bin [perseant-stdc-iso10646]: Makefile

Log Message:
Make it compile again when __STDC_ISO_10646__ is not defined.


To generate a diff of this commit:
cvs rdiff -u -r1.9.40.1 -r1.9.40.2 src/lib/libc/locale/_wctrans_local.h
cvs rdiff -u -r1.46.22.2 -r1.46.22.3 src/lib/libc/locale/rune.c
cvs rdiff -u -r1.229 -r1.229.4.1 src/usr.bin/Makefile

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/_wctrans_local.h
diff -u src/lib/libc/locale/_wctrans_local.h:1.9.40.1 src/lib/libc/locale/_wctrans_local.h:1.9.40.2
--- src/lib/libc/locale/_wctrans_local.h:1.9.40.1	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/locale/_wctrans_local.h	Mon Aug  7 14:27:11 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: _wctrans_local.h,v 1.9.40.1 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: _wctrans_local.h,v 1.9.40.2 2017/08/07 14:27:11 perseant Exp $	*/
 
 /*-
  * Copyright (c)2003 Citrus Project,
@@ -40,7 +40,7 @@ __END_DECLS
 static __inline wint_t
 _towctrans_priv(wint_ucs4_t c, _WCTransEntry const *te, const _RuneLocale *rl)
 {
-	wint_kuten_t ktc;
+	wint_kuten_t ktc = 0;
 
 	_citrus_ctype_ucs2kt(rl->rl_citrus_ctype, , c);
 	ktc = (_RUNE_ISCACHED(ktc)

Index: src/lib/libc/locale/rune.c
diff -u src/lib/libc/locale/rune.c:1.46.22.2 src/lib/libc/locale/rune.c:1.46.22.3
--- src/lib/libc/locale/rune.c:1.46.22.2	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/locale/rune.c	Mon Aug  7 14:27:11 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: rune.c,v 1.46.22.2 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: rune.c,v 1.46.22.3 2017/08/07 14:27:11 perseant Exp $	*/
 /*-
  * Copyright (c)2010 Citrus Project,
  * All rights reserved.
@@ -312,12 +312,10 @@ do {	\
 
 #define CONVERT_MAP(name)		\
 do {	\
-	wint_ucs4_t map;		\
-	wint_kuten_t kmap;		\
+	wint_kuten_t map;		\
 	int c;\
 	\
 	map = _towctrans_priv(wc, _wctrans_##name(rl), rl);		\
-	_citrus_ctype_ucs2kt(rl->rl_citrus_ctype, , map);		\
 	if (map == wc || (_citrus_ctype_wctob(rl->rl_citrus_ctype,	\
 	map, )  || c == EOF))	\
 		c = i;			\

Index: src/usr.bin/Makefile
diff -u src/usr.bin/Makefile:1.229 src/usr.bin/Makefile:1.229.4.1
--- src/usr.bin/Makefile:1.229	Sun May 21 15:28:42 2017
+++ src/usr.bin/Makefile	Mon Aug  7 14:27:11 2017
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.229 2017/05/21 15:28:42 riastradh Exp $
+#	$NetBSD: Makefile,v 1.229.4.1 2017/08/07 14:27:11 perseant Exp $
 #	from: @(#)Makefile	8.3 (Berkeley) 1/7/94
 
 .include 
@@ -15,7 +15,7 @@ SUBDIR= apply asa at audio audiocfg \
 	getopt gettext gprof \
 	head hexdump iconv id indent infocmp innetgr ipcrm ipcs join jot \
 	kdump ktrace ktruss lam last lastcomm ldd leave \
-	locale locate lock logger login logname look lorder m4 \
+	locale localedef locate lock logger login logname look lorder m4 \
 	machine mail make man menuc mesg midiplay midirecord mixerctl \
 	mkcsmapper mkdep mkesdb mkfifo mklocale mkstr mktemp mkubootimage \
 	moduli msgc msgs \



CVS commit: [perseant-stdc-iso10646] src/usr.bin/localedef

2017-08-05 Thread Thomas Klausner
Module Name:src
Committed By:   wiz
Date:   Sat Aug  5 20:30:41 UTC 2017

Modified Files:
src/usr.bin/localedef [perseant-stdc-iso10646]: localedef.1

Log Message:
Sort; simplify; new sentence, new line; fix typo.


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/usr.bin/localedef/localedef.1

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

Modified files:

Index: src/usr.bin/localedef/localedef.1
diff -u src/usr.bin/localedef/localedef.1:1.1.2.1 src/usr.bin/localedef/localedef.1:1.1.2.2
--- src/usr.bin/localedef/localedef.1:1.1.2.1	Fri Aug  4 21:43:11 2017
+++ src/usr.bin/localedef/localedef.1	Sat Aug  5 20:30:41 2017
@@ -1,3 +1,5 @@
+.\" $NetBSD: localedef.1,v 1.1.2.2 2017/08/05 20:30:41 wiz Exp $
+.\"
 .\" Copyright (c) 1992, X/Open Company Limited  All Rights Reserved
 .\" Portions Copyright (c) 2003, Sun Microsystems, Inc.  All Rights Reserved
 .\" Portions Copyright 2013 DEY Storage Systems, Inc.
@@ -71,6 +73,8 @@ The following categories are supported:
 Defines character classification and case conversion.
 .It Ev LC_COLLATE
 Defines collation rules.
+.It Ev LC_MESSAGES
+Defines the format and values of affirmative and negative responses.
 .It Ev LC_MONETARY
 Defines the format and symbols used in formatting of monetary information.
 .It Ev LC_NUMERIC
@@ -78,8 +82,6 @@ Defines the decimal delimiter, grouping 
 numeric editing.
 .It Ev LC_TIME
 Defines the format and content of date and time information.
-.It Ev LC_MESSAGES
-Defines the format and values of affirmative and negative responses.
 .El
 .Pp
 The following options are supported:
@@ -112,17 +114,18 @@ option is not present, the default chara
 The path name of a file containing the source definitions.
 If this option is not present, source definitions will be read from
 standard input.
+.It Fl U
+Ignore the presence of character symbols that have no matching character
+definition.
+This facilitates the use of a common locale definition file
+to be used across multiple encodings, even when some symbols are not
+present in a given encoding.
 .It Fl u Ar codeset
 Specifies the name of a codeset used as the target mapping of character symbols
 and collating element symbols whose encoding values are defined in terms of the
 ISO/IEC 10646-1:2000 standard position constant values.
 See
 .Sx NOTES .
-.It Fl U
-Ignore the presence of character symbols that have no matching character
-definition.  This facilitates the use of a common locale definition file
-to be used across multiple encodings, even when some symbols are not
-present in a given encoding.
 .It Fl v
 Emit verbose debugging output on standard output.
 .It Fl w Ar widthfile
@@ -151,10 +154,9 @@ belonging to the same locale can be proc
 .Nm
 creates a directory of files that represents the locale's data,
 unless instructed otherwise by the
-.Fl D (
-BSD
-output) option.
-The contants of this directory should generally be copied into the
+.Fl D
+(BSD output) option.
+The contents of this directory should generally be copied into the
 appropriate subdirectory of
 .Pa /usr/share/locale
 in order the definitions to be visible to programs linked with libc.
@@ -170,7 +172,7 @@ execution of
 .Ev LC_CTYPE ,
 .Ev LC_MESSAGES ,
 .Ev LC_MONETARY ,
-.Ev LC_MUMERIC ,
+.Ev LC_NUMERIC ,
 .Ev LC_TIME ,
 and
 .Ev NLSPATH .



CVS commit: [perseant-stdc-iso10646] src/lib/libc/locale

2017-08-01 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Tue Aug  1 19:35:51 UTC 2017

Added Files:
src/lib/libc/locale [perseant-stdc-iso10646]: collate.h
ducet_collation_data.h unicode_dm_data.h

Log Message:
Add files missing from last commit (commitid: 7B1ZL3FMi0tUSk1A):

Support loading collation data from file.  Began with FreeBSD's
xlocale_collate, but had to change it somewhat to accommodate the
requirements of the Unicode Collation Algorithm (in particular,
there are maps from single-character collation elements to
multiple collation weight vectors, and multiple-to-multiple
mappings as well).


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1.40.1 src/lib/libc/locale/collate.h
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/locale/ducet_collation_data.h \
src/lib/libc/locale/unicode_dm_data.h

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

diffs are larger than 1MB and have been omitted


CVS commit: [perseant-stdc-iso10646] src/lib/libc

2017-07-30 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Mon Jul 31 04:29:50 UTC 2017

Modified Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_lc_collate.c
src/lib/libc/locale [perseant-stdc-iso10646]: collate_local.h
collate_locale.c unicode_collate.c unicode_nfd_qc_data.h
unicode_ucd.c unicode_ucd.h

Log Message:
Support loading collation data from file.  Began with FreeBSD's
xlocale_collate, but had to change it somewhat to accommodate the
requirements of the Unicode Collation Algorithm (in particular,
there are maps from single-character collation elements to
multiple collation weight vectors, and multiple-to-multiple
mappings as well).


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/lib/libc/citrus/citrus_lc_collate.c
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/lib/libc/locale/collate_local.h \
src/lib/libc/locale/collate_locale.c \
src/lib/libc/locale/unicode_collate.c \
src/lib/libc/locale/unicode_nfd_qc_data.h \
src/lib/libc/locale/unicode_ucd.c src/lib/libc/locale/unicode_ucd.h

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/citrus/citrus_lc_collate.c
diff -u src/lib/libc/citrus/citrus_lc_collate.c:1.1.2.1 src/lib/libc/citrus/citrus_lc_collate.c:1.1.2.2
--- src/lib/libc/citrus/citrus_lc_collate.c:1.1.2.1	Fri Jul 14 15:53:07 2017
+++ src/lib/libc/citrus/citrus_lc_collate.c	Mon Jul 31 04:29:50 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: citrus_lc_collate.c,v 1.1.2.1 2017/07/14 15:53:07 perseant Exp $ */
+/* $NetBSD: citrus_lc_collate.c,v 1.1.2.2 2017/07/31 04:29:50 perseant Exp $ */
 
 /*-
  * Copyright (c)2008 Citrus Project,
@@ -28,7 +28,7 @@
 
 #include 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_lc_collate.c,v 1.1.2.1 2017/07/14 15:53:07 perseant Exp $");
+__RCSID("$NetBSD: citrus_lc_collate.c,v 1.1.2.2 2017/07/31 04:29:50 perseant Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "reentrant.h"
@@ -65,13 +65,13 @@ __RCSID("$NetBSD: citrus_lc_collate.c,v 
 /*
  * macro required by nb_lc_template(_decl).h
  */
-#define _CATEGORY_TYPE  _CollateLocale
+#define _CATEGORY_TYPE  struct xlocale_collate
 
 #include "nb_lc_template_decl.h"
 
 static int
 _citrus_LC_COLLATE_create_impl(const char * __restrict root,
-const char * __restrict name, _CollateLocale ** __restrict pdata)
+const char * __restrict name, struct xlocale_collate ** __restrict pdata)
 {
 	char path[PATH_MAX + 1];
 	int ret;
@@ -92,7 +92,7 @@ _citrus_LC_COLLATE_create_impl(const cha
 }
 
 static __inline void
-_PREFIX(update_global)(_CollateLocale *data)
+_PREFIX(update_global)(struct xlocale_collate *data)
 {
 	_DIAGASSERT(data != NULL);
 }

Index: src/lib/libc/locale/collate_local.h
diff -u src/lib/libc/locale/collate_local.h:1.1.2.1 src/lib/libc/locale/collate_local.h:1.1.2.2
--- src/lib/libc/locale/collate_local.h:1.1.2.1	Fri Jul 14 15:53:08 2017
+++ src/lib/libc/locale/collate_local.h	Mon Jul 31 04:29:50 2017
@@ -1,26 +1,45 @@
-/*	$NetBSD: collate_local.h,v 1.1.2.1 2017/07/14 15:53:08 perseant Exp $	*/
+/*	$NetBSD: collate_local.h,v 1.1.2.2 2017/07/31 04:29:50 perseant Exp $	*/
 
 #ifndef	_COLLATE_LOCAL_H_
 #define	_COLLATE_LOCAL_H_
 
 #include 
+#include "collate.h"
 
 #include "unicode_ucd.h"
 
 typedef struct _CollateLocale {
 	void		*coll_variable;
 	size_t		 coll_variable_len;
-	struct ucd_coll *coll_data;
+	struct ucd_coll*coll_data; /* XXX obsolescent */
 	size_t   coll_data_len;
+	const struct _FileCollateLocale *coll_fcl;
+#define coll_collinfo  coll_fcl->fcl_collinfo
+#define coll_char_data coll_fcl->fcl_char_data
+	const collate_subst_t  *coll_subst;
+	const collate_chain_t  *coll_chains;
+	const collate_large_t  *coll_large;
 } _CollateLocale;
 
+typedef struct _FileCollateLocale {
+	collate_info_t  fcl_collinfo;
+	collate_char_t  fcl_char_data[0x100];
+/*
+These fields are variable length (perhaps 0)
+	and follow the previous fields in the file:
+	collate_chain_t *chains;
+	collate_large_t *large;
+	collate_subst_t *subst;
+*/
+} _FileCollateLocale;
+
 /*
  * global variables
  */
-extern __dso_hidden const _CollateLocale _DefaultCollateLocale;
+extern __dso_hidden const struct xlocale_collate _DefaultCollateLocale;
 
 __BEGIN_DECLS
-int _collate_load(const char * __restrict, size_t, _CollateLocale ** __restrict);
+int _collate_load(const char * __restrict, size_t, struct xlocale_collate ** __restrict);
 __END_DECLS
 
 #endif	/* !_COLLATE_LOCAL_H_ */
Index: src/lib/libc/locale/collate_locale.c
diff -u src/lib/libc/locale/collate_locale.c:1.1.2.1 src/lib/libc/locale/collate_locale.c:1.1.2.2
--- src/lib/libc/locale/collate_locale.c:1.1.2.1	Fri Jul 14 15:53:08 2017
+++ src/lib/libc/locale/collate_locale.c	Mon Jul 31 04:29:50 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: collate_locale.c,v 1.1.2.1 2017/07/14 15:53:08 perseant Exp $	*/
+/*	$NetBSD: collate_locale.c,v 1.1.2.2 

CVS commit: [perseant-stdc-iso10646] src/lib/libc/citrus

2017-07-30 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Mon Jul 31 04:23:35 UTC 2017

Modified Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_ctype.h
citrus_ctype_template.h
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5.c
citrus_euc.c citrus_iso2022.c citrus_mskanji.c

Log Message:
Make the compilation conditional on __STDC_ISO_10646__, so that applications
that need one of the East Asian locales but don't want __STDC_ISO_10646__
don't have to pay the penalty for it.


To generate a diff of this commit:
cvs rdiff -u -r1.3.22.1 -r1.3.22.2 src/lib/libc/citrus/citrus_ctype.h
cvs rdiff -u -r1.36.22.1 -r1.36.22.2 \
src/lib/libc/citrus/citrus_ctype_template.h
cvs rdiff -u -r1.15.18.2 -r1.15.18.3 \
src/lib/libc/citrus/modules/citrus_big5.c
cvs rdiff -u -r1.17.20.2 -r1.17.20.3 src/lib/libc/citrus/modules/citrus_euc.c
cvs rdiff -u -r1.23.22.2 -r1.23.22.3 \
src/lib/libc/citrus/modules/citrus_iso2022.c
cvs rdiff -u -r1.14.22.2 -r1.14.22.3 \
src/lib/libc/citrus/modules/citrus_mskanji.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/citrus/citrus_ctype.h
diff -u src/lib/libc/citrus/citrus_ctype.h:1.3.22.1 src/lib/libc/citrus/citrus_ctype.h:1.3.22.2
--- src/lib/libc/citrus/citrus_ctype.h:1.3.22.1	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/citrus/citrus_ctype.h	Mon Jul 31 04:23:35 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: citrus_ctype.h,v 1.3.22.1 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: citrus_ctype.h,v 1.3.22.2 2017/07/31 04:23:35 perseant Exp $	*/
 
 /*-
  * Copyright (c)2002 Citrus Project,
@@ -30,6 +30,7 @@
 #ifndef _CITRUS_CTYPE_H_
 #define _CITRUS_CTYPE_H_
 
+#include  /* For __STDC_ISO_10646__ */
 #include "citrus_ctype_local.h"
 
 typedef struct _citrus_ctype_rec *_citrus_ctype_t;
@@ -185,6 +186,7 @@ _citrus_ctype_wctob(_citrus_ctype_t cc, 
 	return (*cc->cc_ops->co_wctob)(cc, c, cresult);
 }
 
+#ifdef __STDC_ISO_10646__
 static __inline int
 _citrus_ctype_ucs2kt(_citrus_ctype_t cc,
 		  wchar_kuten_t * __restrict ktp,
@@ -202,6 +204,11 @@ _citrus_ctype_kt2ucs(_citrus_ctype_t cc,
 	_DIAGASSERT(cc && cc->cc_ops && cc->cc_ops->co_kt2ucs);
 	return (*cc->cc_ops->co_kt2ucs)(cc->cc_closure, up, kt);
 }
+#else
+/* Define away the calls to these functions */
+#define _citrus_ctype_ucs2kt(cl, ktp, wc) do {} while (0)
+#define _citrus_ctype_kt2ucs(cl, up, kt) do {} while (0)
+#endif
 
 extern _citrus_ctype_rec_t _citrus_ctype_default;
 

Index: src/lib/libc/citrus/citrus_ctype_template.h
diff -u src/lib/libc/citrus/citrus_ctype_template.h:1.36.22.1 src/lib/libc/citrus/citrus_ctype_template.h:1.36.22.2
--- src/lib/libc/citrus/citrus_ctype_template.h:1.36.22.1	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/citrus/citrus_ctype_template.h	Mon Jul 31 04:23:35 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: citrus_ctype_template.h,v 1.36.22.1 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: citrus_ctype_template.h,v 1.36.22.2 2017/07/31 04:23:35 perseant Exp $	*/
 
 /*-
  * Copyright (c)2002 Citrus Project,
@@ -118,6 +118,7 @@
  *
  */
 
+#include  /* For __STDC_ISO_10646__ */
 
 /* prototypes */
 
@@ -938,6 +939,7 @@ _FUNCNAME(ctype_wctob)(_citrus_ctype_rec
 	return 0;
 }
 
+#ifdef __STDC_ISO_10646__
 static __inline int
 /*ARGSUSED*/
 _FUNCNAME(ctype_ucs2kt)(void * __restrict cl,
@@ -953,4 +955,8 @@ _FUNCNAME(ctype_kt2ucs)(void * __restric
 {
 	return _FUNCNAME(kt2ucs)(_CEI_TO_EI(_TO_CEI(cl)), up, kt);
 }
-
+#else
+/* Define away the calls to these functions */
+#define _FUNCNAME(ctype_ucs2kt)(cl, ktp, wc) do {} while (0)
+#define _FUNCNAME(ctype_kt2ucs)(cl, up, kt) do {} while (0)
+#endif

Index: src/lib/libc/citrus/modules/citrus_big5.c
diff -u src/lib/libc/citrus/modules/citrus_big5.c:1.15.18.2 src/lib/libc/citrus/modules/citrus_big5.c:1.15.18.3
--- src/lib/libc/citrus/modules/citrus_big5.c:1.15.18.2	Fri Jul 21 20:22:29 2017
+++ src/lib/libc/citrus/modules/citrus_big5.c	Mon Jul 31 04:23:35 2017
@@ -1,4 +1,4 @@
-/*	$NetBSD: citrus_big5.c,v 1.15.18.2 2017/07/21 20:22:29 perseant Exp $	*/
+/*	$NetBSD: citrus_big5.c,v 1.15.18.3 2017/07/31 04:23:35 perseant Exp $	*/
 
 /*-
  * Copyright (c)2002, 2006 Citrus Project,
@@ -60,7 +60,7 @@
 
 #include 
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: citrus_big5.c,v 1.15.18.2 2017/07/21 20:22:29 perseant Exp $");
+__RCSID("$NetBSD: citrus_big5.c,v 1.15.18.3 2017/07/31 04:23:35 perseant Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include 
@@ -134,6 +134,7 @@ typedef struct {
 #define _ENCODING_IS_STATE_DEPENDENT	0
 #define _STATE_NEEDS_EXPLICIT_INIT(_ps_)	0
 
+#ifdef __STDC_ISO_10646__
 #include "citrus_big5_data.h"
 
 static __inline int
@@ -188,6 +189,9 @@ _FUNCNAME(kt2ucs)(_ENCODING_INFO * __res
 
 	return 0;
 }
+#else
+#include "citrus_u2k_template.h"
+#endif
 
 static __inline void
 /*ARGSUSED*/

Index: src/lib/libc/citrus/modules/citrus_euc.c
diff -u 

CVS commit: [perseant-stdc-iso10646] src/tests/lib/libc/locale

2017-07-23 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Sun Jul 23 19:16:11 UTC 2017

Modified Files:
src/tests/lib/libc/locale [perseant-stdc-iso10646]: Makefile
ducet_test.h t_ducet.c

Log Message:
Add Unicode copyright notice and more verbose DUCET test.


To generate a diff of this commit:
cvs rdiff -u -r1.10.2.1 -r1.10.2.2 src/tests/lib/libc/locale/Makefile
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/tests/lib/libc/locale/ducet_test.h \
src/tests/lib/libc/locale/t_ducet.c

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

Modified files:

Index: src/tests/lib/libc/locale/Makefile
diff -u src/tests/lib/libc/locale/Makefile:1.10.2.1 src/tests/lib/libc/locale/Makefile:1.10.2.2
--- src/tests/lib/libc/locale/Makefile:1.10.2.1	Fri Jul 14 15:53:08 2017
+++ src/tests/lib/libc/locale/Makefile	Sun Jul 23 19:16:11 2017
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.10.2.1 2017/07/14 15:53:08 perseant Exp $
+# $NetBSD: Makefile,v 1.10.2.2 2017/07/23 19:16:11 perseant Exp $
 
 .include 
 

Index: src/tests/lib/libc/locale/ducet_test.h
diff -u src/tests/lib/libc/locale/ducet_test.h:1.1.2.1 src/tests/lib/libc/locale/ducet_test.h:1.1.2.2
--- src/tests/lib/libc/locale/ducet_test.h:1.1.2.1	Fri Jul 14 15:53:08 2017
+++ src/tests/lib/libc/locale/ducet_test.h	Sun Jul 23 19:16:11 2017
@@ -6,6 +6,39 @@
 /* UCA Version: 10.0.0*/
 /* UCD Version: 10.0.0*/
 /* For a description of the format and usage, see CollationTest.html*/
+/*
+ * Copyright © 1991-2017 Unicode, Inc. All rights reserved.
+ * Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of the Unicode data files and any associated documentation
+ * (the "Data Files") or Unicode software and any associated documentation
+ * (the "Software") to deal in the Data Files or Software
+ * without restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, and/or sell copies of
+ * the Data Files or Software, and to permit persons to whom the Data Files
+ * or Software are furnished to do so, provided that either
+ * (a) this copyright and permission notice appear with all copies
+ * of the Data Files or Software, or
+ * (b) this copyright and permission notice appear in associated
+ * Documentation.
+ * 
+ * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+ * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+ * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in these Data Files or Software without prior
+ * written authorization of the copyright holder.
+ */
 #define MAX_TS_LEN 7
 wchar_t ducet_test_data[][MAX_TS_LEN] = {
 {0x0338, 0x0334, 0x0},
Index: src/tests/lib/libc/locale/t_ducet.c
diff -u src/tests/lib/libc/locale/t_ducet.c:1.1.2.1 src/tests/lib/libc/locale/t_ducet.c:1.1.2.2
--- src/tests/lib/libc/locale/t_ducet.c:1.1.2.1	Fri Jul 14 15:53:08 2017
+++ src/tests/lib/libc/locale/t_ducet.c	Sun Jul 23 19:16:11 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: t_ducet.c,v 1.1.2.1 2017/07/14 15:53:08 perseant Exp $ */
+/* $NetBSD: t_ducet.c,v 1.1.2.2 2017/07/23 19:16:11 perseant Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
 #include 
 __COPYRIGHT("@(#) Copyright (c) 2011\
  The NetBSD Foundation, inc. All rights reserved.");
-__RCSID("$NetBSD: t_ducet.c,v 1.1.2.1 2017/07/14 15:53:08 perseant Exp $");
+__RCSID("$NetBSD: t_ducet.c,v 1.1.2.2 2017/07/23 19:16:11 perseant Exp $");
 
 #include 
 #include 
@@ -98,7 +98,7 @@ ATF_TC_BODY(wcsxfrm_ducet, tc)
 	wchar_t *tmp, *oline = NULL, *line;
 	wchar_t xfb1[BUFLEN], xfb2[BUFLEN]; /* Gross overestimates */
 	wchar_t *oxf = xfb1, *xf = xfb2;
-	int i, lineno = 0;
+	int i, lineno = 0, result;
 
 	setlocale(LC_COLLATE, "en_US.UTF-8"); /* should be "vanilla" DUCET, but en_US will do */
 	ATF_REQUIRE_STREQ("en_US.UTF-8", setlocale(LC_COLLATE, NULL));
@@ -122,7 +122,18 @@ ATF_TC_BODY(wcsxfrm_ducet, tc)
 		printf("\n");
 		
 		wcsxfrm(xf, line, BUFLEN);
-		ATF_CHECK(wcscmp(oxf, xf) < 0);
+		result = wcscmp(oxf, xf);
+		if (result > 0) {
+			printf("FAILED result was %d\nweights were ", result);
+			for (i = 0; oxf[i] != 0; i++)
+printf("0x%lx ", (long)oline[i]);
+			printf(" and ");
+			for (i = 0; xf[i] != 0; 

CVS commit: [perseant-stdc-iso10646] src/lib/libc

2017-07-21 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Fri Jul 21 20:22:29 UTC 2017

Modified Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_ctype.c
citrus_ctype.h citrus_ctype_fallback.c citrus_ctype_fallback.h
citrus_ctype_local.h citrus_ctype_template.h citrus_iconv.h
citrus_iconv_local.h citrus_namespace.h citrus_none.c
citrus_stdenc.h citrus_stdenc_local.h citrus_stdenc_template.h
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5.c
citrus_dechanyu.c citrus_euc.c citrus_euctw.c citrus_gbk2k.c
citrus_hz.c citrus_iconv_none.c citrus_iconv_std.c citrus_iso2022.c
citrus_johab.c citrus_mskanji.c citrus_ues.c citrus_utf1632.c
citrus_utf7.c citrus_utf8.c citrus_viqr.c citrus_zw.c
src/lib/libc/locale [perseant-stdc-iso10646]: Makefile.inc _wctrans.c
_wctrans_local.h _wctype.c iswctype_mb.c multibyte.h
multibyte_amd1.c multibyte_c90.c rune.c
Added Files:
src/lib/libc/citrus/modules [perseant-stdc-iso10646]:
citrus_big5_data.h citrus_euc_data.h citrus_iso2022_data.h
citrus_mskanji_data.h
Removed Files:
src/lib/libc/locale [perseant-stdc-iso10646]: rune_iso10646.c
rune_iso10646.h u2k.h

Log Message:
Move Unicode <-> ku/ten mapping into the individual codec modules.
Mapping is based on existing iconv data for single-byte encodings,
and included for several, but not all, multibyte encodings.


To generate a diff of this commit:
cvs rdiff -u -r1.7.22.1 -r1.7.22.2 src/lib/libc/citrus/citrus_ctype.c
cvs rdiff -u -r1.3 -r1.3.22.1 src/lib/libc/citrus/citrus_ctype.h \
src/lib/libc/citrus/citrus_ctype_fallback.c
cvs rdiff -u -r1.2 -r1.2.22.1 src/lib/libc/citrus/citrus_ctype_fallback.h
cvs rdiff -u -r1.4 -r1.4.22.1 src/lib/libc/citrus/citrus_ctype_local.h
cvs rdiff -u -r1.36 -r1.36.22.1 src/lib/libc/citrus/citrus_ctype_template.h
cvs rdiff -u -r1.5.64.1 -r1.5.64.2 src/lib/libc/citrus/citrus_iconv.h
cvs rdiff -u -r1.3.64.1 -r1.3.64.2 src/lib/libc/citrus/citrus_iconv_local.h
cvs rdiff -u -r1.8.42.1 -r1.8.42.2 src/lib/libc/citrus/citrus_namespace.h
cvs rdiff -u -r1.22.2.1 -r1.22.2.2 src/lib/libc/citrus/citrus_none.c
cvs rdiff -u -r1.4.80.1 -r1.4.80.2 src/lib/libc/citrus/citrus_stdenc.h
cvs rdiff -u -r1.4.64.1 -r1.4.64.2 src/lib/libc/citrus/citrus_stdenc_local.h \
src/lib/libc/citrus/citrus_stdenc_template.h
cvs rdiff -u -r1.15.18.1 -r1.15.18.2 \
src/lib/libc/citrus/modules/citrus_big5.c
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/citrus/modules/citrus_big5_data.h \
src/lib/libc/citrus/modules/citrus_euc_data.h \
src/lib/libc/citrus/modules/citrus_iso2022_data.h \
src/lib/libc/citrus/modules/citrus_mskanji_data.h
cvs rdiff -u -r1.5.22.1 -r1.5.22.2 \
src/lib/libc/citrus/modules/citrus_dechanyu.c \
src/lib/libc/citrus/modules/citrus_zw.c
cvs rdiff -u -r1.17.20.1 -r1.17.20.2 src/lib/libc/citrus/modules/citrus_euc.c
cvs rdiff -u -r1.12.22.1 -r1.12.22.2 \
src/lib/libc/citrus/modules/citrus_euctw.c
cvs rdiff -u -r1.8.22.1 -r1.8.22.2 src/lib/libc/citrus/modules/citrus_gbk2k.c
cvs rdiff -u -r1.4.18.1 -r1.4.18.2 src/lib/libc/citrus/modules/citrus_hz.c
cvs rdiff -u -r1.3.38.1 -r1.3.38.2 \
src/lib/libc/citrus/modules/citrus_iconv_none.c
cvs rdiff -u -r1.16.34.1 -r1.16.34.2 \
src/lib/libc/citrus/modules/citrus_iconv_std.c
cvs rdiff -u -r1.23.22.1 -r1.23.22.2 \
src/lib/libc/citrus/modules/citrus_iso2022.c
cvs rdiff -u -r1.6.10.1 -r1.6.10.2 src/lib/libc/citrus/modules/citrus_johab.c
cvs rdiff -u -r1.14.22.1 -r1.14.22.2 \
src/lib/libc/citrus/modules/citrus_mskanji.c
cvs rdiff -u -r1.4.22.1 -r1.4.22.2 src/lib/libc/citrus/modules/citrus_ues.c
cvs rdiff -u -r1.12.34.1 -r1.12.34.2 \
src/lib/libc/citrus/modules/citrus_utf1632.c
cvs rdiff -u -r1.6.22.1 -r1.6.22.2 src/lib/libc/citrus/modules/citrus_utf7.c \
src/lib/libc/citrus/modules/citrus_viqr.c
cvs rdiff -u -r1.18.22.1 -r1.18.22.2 \
src/lib/libc/citrus/modules/citrus_utf8.c
cvs rdiff -u -r1.64.20.1 -r1.64.20.2 src/lib/libc/locale/Makefile.inc
cvs rdiff -u -r1.17 -r1.17.40.1 src/lib/libc/locale/_wctrans.c
cvs rdiff -u -r1.9 -r1.9.40.1 src/lib/libc/locale/_wctrans_local.h
cvs rdiff -u -r1.9.40.1 -r1.9.40.2 src/lib/libc/locale/_wctype.c
cvs rdiff -u -r1.13.22.1 -r1.13.22.2 src/lib/libc/locale/iswctype_mb.c
cvs rdiff -u -r1.6 -r1.6.20.1 src/lib/libc/locale/multibyte.h
cvs rdiff -u -r1.14.20.1 -r1.14.20.2 src/lib/libc/locale/multibyte_amd1.c
cvs rdiff -u -r1.12.20.1 -r1.12.20.2 src/lib/libc/locale/multibyte_c90.c
cvs rdiff -u -r1.46.22.1 -r1.46.22.2 src/lib/libc/locale/rune.c
cvs rdiff -u -r1.1.2.1 -r0 src/lib/libc/locale/rune_iso10646.c \
src/lib/libc/locale/rune_iso10646.h src/lib/libc/locale/u2k.h

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

diffs are larger than 1MB and have been omitted


CVS commit: [perseant-stdc-iso10646] src/distrib/sets/lists

2017-07-18 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Tue Jul 18 14:55:29 UTC 2017

Modified Files:
src/distrib/sets/lists/debug [perseant-stdc-iso10646]: mi
src/distrib/sets/lists/tests [perseant-stdc-iso10646]: mi

Log Message:
Add t_ducet test


To generate a diff of this commit:
cvs rdiff -u -r1.220 -r1.220.2.1 src/distrib/sets/lists/debug/mi
cvs rdiff -u -r1.757 -r1.757.2.1 src/distrib/sets/lists/tests/mi

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

Modified files:

Index: src/distrib/sets/lists/debug/mi
diff -u src/distrib/sets/lists/debug/mi:1.220 src/distrib/sets/lists/debug/mi:1.220.2.1
--- src/distrib/sets/lists/debug/mi:1.220	Fri Jul 14 14:57:43 2017
+++ src/distrib/sets/lists/debug/mi	Tue Jul 18 14:55:29 2017
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.220 2017/07/14 14:57:43 perseant Exp $
+# $NetBSD: mi,v 1.220.2.1 2017/07/18 14:55:29 perseant Exp $
 ./etc/mtree/set.debug   comp-sys-root
 ./usr/lib	comp-sys-usr		compatdir
 ./usr/lib/i18n/libBIG5_g.a			comp-c-debuglib		debuglib,compatfile
@@ -1947,6 +1947,7 @@
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_ctype2.debug		tests-obsolete		obsolete,compattestfile
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_btowc.debug		tests-lib-debug		debug,atf,compattestfile
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_digittoint.debug	tests-lib-debug		debug,atf,compattestfile
+./usr/libdata/debug/usr/tests/lib/libc/locale/t_ducet.debug		tests-lib-debug		debug,atf,compattestfile
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_io.debug		tests-lib-debug		debug,atf,compattestfile
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_mbrtowc.debug		tests-lib-debug		debug,atf,compattestfile
 ./usr/libdata/debug/usr/tests/lib/libc/locale/t_mbsnrtowcs.debug	tests-lib-debug		debug,atf,compattestfile

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.757 src/distrib/sets/lists/tests/mi:1.757.2.1
--- src/distrib/sets/lists/tests/mi:1.757	Tue Jul 18 02:16:07 2017
+++ src/distrib/sets/lists/tests/mi	Tue Jul 18 14:55:29 2017
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.757 2017/07/18 02:16:07 ozaki-r Exp $
+# $NetBSD: mi,v 1.757.2.1 2017/07/18 14:55:29 perseant Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -2544,6 +2544,7 @@
 ./usr/tests/lib/libc/locale/t_ctype2		tests-obsolete		obsolete
 ./usr/tests/lib/libc/locale/t_btowc		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libc/locale/t_digittoint	tests-lib-tests		compattestfile,atf
+./usr/tests/lib/libc/locale/t_ducet		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libc/locale/t_io		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libc/locale/t_mbrtowc		tests-lib-tests		compattestfile,atf
 ./usr/tests/lib/libc/locale/t_mbsnrtowcs	tests-lib-tests		compattestfile,atf



CVS commit: [perseant-stdc-iso10646] src

2017-07-14 Thread Konrad Schroder
Module Name:src
Committed By:   perseant
Date:   Fri Jul 14 15:53:08 UTC 2017

Modified Files:
src/include [perseant-stdc-iso10646]: wchar.h
src/lib/libc/citrus [perseant-stdc-iso10646]: Makefile.inc
citrus_ctype.c citrus_iconv.c citrus_iconv.h citrus_iconv_local.h
citrus_namespace.h citrus_none.c citrus_stdenc.h
citrus_stdenc_local.h citrus_stdenc_template.h
src/lib/libc/citrus/modules [perseant-stdc-iso10646]: citrus_big5.c
citrus_dechanyu.c citrus_euc.c citrus_euctw.c citrus_gbk2k.c
citrus_hz.c citrus_iconv_none.c citrus_iconv_std.c citrus_iso2022.c
citrus_johab.c citrus_mskanji.c citrus_ues.c citrus_utf1632.c
citrus_utf7.c citrus_utf8.c citrus_viqr.c citrus_zw.c
src/lib/libc/locale [perseant-stdc-iso10646]: Makefile.inc _wcstod.h
_wctype.c global_locale.c iswctype_mb.c multibyte_amd1.c
multibyte_c90.c rune.c runetable.c runetype_local.h setlocale.c
setlocale_local.h wcscoll.c wcsxfrm.c
src/tests/lib/libc/locale [perseant-stdc-iso10646]: Makefile
t_wcscoll.c
Added Files:
src/lib/libc/citrus [perseant-stdc-iso10646]: citrus_lc_collate.c
src/lib/libc/locale [perseant-stdc-iso10646]: collate_local.h
collate_locale.c rune_iso10646.c rune_iso10646.h u2k.h
unicode_ccc_data.h unicode_collate.c unicode_collate.h
unicode_collation_data.h unicode_decomp_data.h unicode_lc_collate.c
unicode_nfd_qc_data.h unicode_reserved_cp_data.h
unicode_reserved_range_data.h unicode_ucd.c unicode_ucd.h
src/tests/lib/libc/locale [perseant-stdc-iso10646]: ducet_test.h
t_ducet.c

Log Message:
Initial commit of a mostly-working implementation of __STDC_ISO_10646__,
with collation support using the Unicode Collation Algorithm.

The conversion from men/ku/ten form to Unicode is a gross hack at present.
Fixing this, and fleshing out the LC_COLLATE locale component, are next
on the agenda.


To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.42.8.1 src/include/wchar.h
cvs rdiff -u -r1.8 -r1.8.40.1 src/lib/libc/citrus/Makefile.inc
cvs rdiff -u -r1.7 -r1.7.22.1 src/lib/libc/citrus/citrus_ctype.c
cvs rdiff -u -r1.10 -r1.10.34.1 src/lib/libc/citrus/citrus_iconv.c
cvs rdiff -u -r1.5 -r1.5.64.1 src/lib/libc/citrus/citrus_iconv.h
cvs rdiff -u -r1.3 -r1.3.64.1 src/lib/libc/citrus/citrus_iconv_local.h
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/citrus/citrus_lc_collate.c
cvs rdiff -u -r1.8 -r1.8.42.1 src/lib/libc/citrus/citrus_namespace.h
cvs rdiff -u -r1.22 -r1.22.2.1 src/lib/libc/citrus/citrus_none.c
cvs rdiff -u -r1.4 -r1.4.80.1 src/lib/libc/citrus/citrus_stdenc.h
cvs rdiff -u -r1.4 -r1.4.64.1 src/lib/libc/citrus/citrus_stdenc_local.h \
src/lib/libc/citrus/citrus_stdenc_template.h
cvs rdiff -u -r1.15 -r1.15.18.1 src/lib/libc/citrus/modules/citrus_big5.c
cvs rdiff -u -r1.5 -r1.5.22.1 src/lib/libc/citrus/modules/citrus_dechanyu.c \
src/lib/libc/citrus/modules/citrus_zw.c
cvs rdiff -u -r1.17 -r1.17.20.1 src/lib/libc/citrus/modules/citrus_euc.c
cvs rdiff -u -r1.12 -r1.12.22.1 src/lib/libc/citrus/modules/citrus_euctw.c
cvs rdiff -u -r1.8 -r1.8.22.1 src/lib/libc/citrus/modules/citrus_gbk2k.c
cvs rdiff -u -r1.4 -r1.4.18.1 src/lib/libc/citrus/modules/citrus_hz.c
cvs rdiff -u -r1.3 -r1.3.38.1 src/lib/libc/citrus/modules/citrus_iconv_none.c
cvs rdiff -u -r1.16 -r1.16.34.1 \
src/lib/libc/citrus/modules/citrus_iconv_std.c
cvs rdiff -u -r1.23 -r1.23.22.1 src/lib/libc/citrus/modules/citrus_iso2022.c
cvs rdiff -u -r1.6 -r1.6.10.1 src/lib/libc/citrus/modules/citrus_johab.c
cvs rdiff -u -r1.14 -r1.14.22.1 src/lib/libc/citrus/modules/citrus_mskanji.c
cvs rdiff -u -r1.4 -r1.4.22.1 src/lib/libc/citrus/modules/citrus_ues.c
cvs rdiff -u -r1.12 -r1.12.34.1 src/lib/libc/citrus/modules/citrus_utf1632.c
cvs rdiff -u -r1.6 -r1.6.22.1 src/lib/libc/citrus/modules/citrus_utf7.c \
src/lib/libc/citrus/modules/citrus_viqr.c
cvs rdiff -u -r1.18 -r1.18.22.1 src/lib/libc/citrus/modules/citrus_utf8.c
cvs rdiff -u -r1.64 -r1.64.20.1 src/lib/libc/locale/Makefile.inc \
src/lib/libc/locale/setlocale.c
cvs rdiff -u -r1.4 -r1.4.22.1 src/lib/libc/locale/_wcstod.h \
src/lib/libc/locale/wcscoll.c
cvs rdiff -u -r1.9 -r1.9.40.1 src/lib/libc/locale/_wctype.c
cvs rdiff -u -r0 -r1.1.2.1 src/lib/libc/locale/collate_local.h \
src/lib/libc/locale/collate_locale.c src/lib/libc/locale/rune_iso10646.c \
src/lib/libc/locale/rune_iso10646.h src/lib/libc/locale/u2k.h \
src/lib/libc/locale/unicode_ccc_data.h \
src/lib/libc/locale/unicode_collate.c \
src/lib/libc/locale/unicode_collate.h \
src/lib/libc/locale/unicode_collation_data.h \
src/lib/libc/locale/unicode_decomp_data.h \
src/lib/libc/locale/unicode_lc_collate.c \
src/lib/libc/locale/unicode_nfd_qc_data.h \
src/lib/libc/locale/unicode_reserved_cp_data.h \