aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--catgets/Makefile14
-rw-r--r--catgets/sample.SJIS10
-rw-r--r--catgets/test-gencat.c23
-rwxr-xr-xcatgets/test-gencat.sh40
-rw-r--r--localedata/Makefile2
6 files changed, 97 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ec6ce7938a..a221455c5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+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>.
+
2000-11-28 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/mips/bits/socket.h: Synch with generic
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 $?
diff --git a/localedata/Makefile b/localedata/Makefile
index ed46db9069..88b369834d 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -123,7 +123,7 @@ ifeq (no,$(cross-compiling))
# We have to generate locales
LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \
- hr_HR.ISO-8859-2 sv_SE.ISO-8859-1
+ hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS
LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
CHARMAPS := $(shell echo "$(LOCALES)"|sed 's/[^ .]*[.]\([^ ]*\)/\1/g')
CTYPE_FILES = $(addsuffix /LC_CTYPE,$(LOCALES))