aboutsummaryrefslogtreecommitdiff
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.zip
glibc-14d5391f9be3b8fc538fa31303c1c9ceac23cd1a.tar.gz
glibc-14d5391f9be3b8fc538fa31303c1c9ceac23cd1a.tar.bz2
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 caf8eec..d6b4f0e 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 0000000..9ffcc01
--- /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 0000000..fe5d091
--- /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 0000000..99de335
--- /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 $?