Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 28 Nov 2000 13:57:45 +0000 (13:57 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 28 Nov 2000 13:57:45 +0000 (13:57 +0000)
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>.

ChangeLog
catgets/Makefile
catgets/sample.SJIS [new file with mode: 0644]
catgets/test-gencat.c [new file with mode: 0644]
catgets/test-gencat.sh [new file with mode: 0755]
localedata/Makefile

index ec6ce79..a221455 100644 (file)
--- 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
index caf8eec..d6b4f0e 100644 (file)
 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 (file)
index 0000000..9ffcc01
--- /dev/null
@@ -0,0 +1,10 @@
+$      test message catalog
+
+$ codeset=sjis
+$quote "
+$set 1
+1 sample1:ABCDEF:
+2 sample2:\93ú\96{\8cê:
+3 sample3:\97\\92è\95\:
+4 sample4:TEST\tTAB:
+5 sample5:\8b@\94\\t\8f\\8eí\97Þ:
diff --git a/catgets/test-gencat.c b/catgets/test-gencat.c
new file mode 100644 (file)
index 0000000..fe5d091
--- /dev/null
@@ -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 (executable)
index 0000000..99de335
--- /dev/null
@@ -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:\93ú\96{\8cê:
+sample3:\97\\92è\95\:
+sample4:TEST   TAB:
+sample5:\8b@\94\   \8f\\8eí\97Þ:
+EOF
+
+exit $?
index ed46db9..88b3698 100644 (file)
@@ -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))