summary refs log tree commit diff
path: root/catgets
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-11-28 13:57:45 +0000
committerUlrich Drepper <drepper@redhat.com>2000-11-28 13:57:45 +0000
commit14d5391f9be3b8fc538fa31303c1c9ceac23cd1a (patch)
tree60901263cf3270a18c74622eaf2c30048ebce3a0 /catgets
parentee25ee65c50800db31d0fde1db70338e3c44d8a7 (diff)
downloadglibc-14d5391f9be3b8fc538fa31303c1c9ceac23cd1a.tar.gz
glibc-14d5391f9be3b8fc538fa31303c1c9ceac23cd1a.tar.xz
glibc-14d5391f9be3b8fc538fa31303c1c9ceac23cd1a.zip
Update.
2000-11-28  Ulrich Drepper  <drepper@redhat.com>

	* catgets/gencat.c (normalize_line): Take extra parameter with escape
	character.  Change callers.
	(open_conversion): Determine mapping of 0x5c as wchar_t value.
	* catgets/Makefile: Add rules to build and run test-gencat.
	* catgets/sample.SJIS: New file.
	* catgets/test-gencat.c: New file.
	* catgets/test-gencat.sh: New file.
	Report and test case by Shinya Hanataka <hanataka@abyss.rim.or.jp>.
Diffstat (limited to 'catgets')
-rw-r--r--catgets/Makefile14
-rw-r--r--catgets/sample.SJIS10
-rw-r--r--catgets/test-gencat.c23
-rwxr-xr-xcatgets/test-gencat.sh40
4 files changed, 85 insertions, 2 deletions
diff --git a/catgets/Makefile b/catgets/Makefile
index caf8eec651..d6b4f0e64b 100644
--- a/catgets/Makefile
+++ b/catgets/Makefile
@@ -22,13 +22,15 @@
 subdir	:= catgets
 
 headers		= nl_types.h
-distribute	= catgetsinfo.h config.h xopen-msg.sed test1.msg
+distribute	= catgetsinfo.h config.h xopen-msg.sed test1.msg \
+		  test-gencat.sh sample.SJIS
 routines	= catgets open_catalog
 others		= gencat
 install-bin	= gencat
 extra-objs	= $(gencat-modules:=.o)
 
 tests = tst-catgets
+test-srcs = test-gencat
 
 gencat-modules	= xmalloc
 
@@ -49,7 +51,7 @@ generated-dirs = de
 tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de
 
 ifneq ($(cross-compiling),yes)
-tests: $(objpfx)de/libc.cat $(objpfx)test1.cat
+tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test-gencat.out
 # This test just checks whether the program produces any error or not.
 # The result is not tested.
 $(objpfx)test1.cat: test1.msg $(objpfx)gencat
@@ -65,4 +67,12 @@ $(objpfx)tst-catgets.out: $(objpfx)de/libc.cat
 # Generate a non-simple input file.
 $(objpfx)de.msg: $(..)po/de.po
 	sed -f xopen-msg.sed $< > $@
+
+$(objpfx)test-gencat.out: test-gencat.sh $(objpfx)test-gencat \
+			  $(objpfx)sample.SJIS.cat
+	$(SHELL) -e $< $(common-objpfx) '$(built-program-cmd)'
+
+$(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat
+	GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+	$(built-program-cmd) < $(word 1,$^) > $@
 endif
diff --git a/catgets/sample.SJIS b/catgets/sample.SJIS
new file mode 100644
index 0000000000..9ffcc01ac5
--- /dev/null
+++ b/catgets/sample.SJIS
@@ -0,0 +1,10 @@
+$	test message catalog
+
+$ codeset=sjis
+$quote	"
+$set 1
+1 sample1:ABCDEF:
+2 sample2:日本語:
+3 sample3:予定表:
+4 sample4:TEST\tTAB:
+5 sample5:機能\t十種類:
diff --git a/catgets/test-gencat.c b/catgets/test-gencat.c
new file mode 100644
index 0000000000..fe5d0916b7
--- /dev/null
+++ b/catgets/test-gencat.c
@@ -0,0 +1,23 @@
+#include <locale.h>
+#include <nl_types.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+  nl_catd catalog;
+  setlocale (LC_ALL, "");
+
+  printf ("LC_MESSAGES = %s\n", setlocale (LC_MESSAGES, NULL));
+
+  catalog = catopen ("sample", NL_CAT_LOCALE);
+  printf ("%s\n", catgets(catalog, 1, 1, "sample 1"));
+  printf ("%s\n", catgets(catalog, 1, 2, "sample 2"));
+  printf ("%s\n", catgets(catalog, 1, 3, "sample 3"));
+  printf ("%s\n", catgets(catalog, 1, 4, "sample 4"));
+  printf ("%s\n", catgets(catalog, 1, 5, "sample 5"));
+  catclose (catalog);
+
+  return 0;
+}
diff --git a/catgets/test-gencat.sh b/catgets/test-gencat.sh
new file mode 100755
index 0000000000..99de335c76
--- /dev/null
+++ b/catgets/test-gencat.sh
@@ -0,0 +1,40 @@
+#! /bin/sh
+# Test escape character handling in gencat.
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+#
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with the GNU C Library; see the file COPYING.LIB.  If
+# not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+common_objpfx=$1
+run_program_prefix=$2
+
+# Run the test program.
+LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
+NLSPATH=${common_objpfx}catgets/%N.%c.cat LC_ALL=ja_JP.SJIS \
+  ${run_program_prefix} \
+    > ${common_objpfx}catgets/test-gencat.out
+
+# Compare with the expected result.
+cmp - ${common_objpfx}catgets/test-gencat.out <<EOF
+LC_MESSAGES = ja_JP.SJIS
+sample1:ABCDEF:
+sample2:日本語:
+sample3:予定表:
+sample4:TEST	TAB:
+sample5:機能	十種類:
+EOF
+
+exit $?