mirror of https://gitee.com/Nocallback/glibc.git
Browse Source
* locale/findlocale.c (free_mem): We can remove NODELETE marked data, just not the C locale data. * intl/tst-gettext.c: Use setlocale() in addition to setting envvar. * intl/tst-gettext.sh: Copy locale data if necessary. * intl/Makefile (generated-dirs): Add localedir. * intl/dcigettext.c (guess_category_value): For libc always use the setlocale() method. * intl/Makefile: Add rules to build, run and, distribute tst-gettext2. * intl/tst-gettext2.c: New file. * intl/tst-gettext2.sh: New file. * intl/tstlang1.po: New file. * intl/tstlang2.po: New file. Patch by Andreas Jaeger <aj@suse.de>. 2000-10-26 GOTO Masanori <gotom@debian.or.jp> * intl/locale.alias: Add ja_JP.ujis alias. 2000-10-30 Ulrich Drepper <drepper@redhat.com>cvs/glibc-2-2-branch
12 changed files with 224 additions and 28 deletions
@ -0,0 +1,68 @@ |
|||
/* Test of the gettext functions.
|
|||
Copyright (C) 2000 Free Software Foundation, Inc. |
|||
Contributed by Thorsten Kukuk <kukuk@suse.de> and |
|||
Andreas Jaeger <aj@suse.de>, 2000. |
|||
|
|||
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. */ |
|||
|
|||
|
|||
#include <locale.h> |
|||
#include <libintl.h> |
|||
#include <stdlib.h> |
|||
#include <stdio.h> |
|||
|
|||
struct data_t { |
|||
const char *selection; |
|||
const char *description; |
|||
}; |
|||
|
|||
int data_cnt = 2; |
|||
struct data_t strings[] = |
|||
{{"String1", N_("First string for testing.")}, |
|||
{"String2", N_("Another string for testing.")} |
|||
}; |
|||
|
|||
const int lang_cnt = 3; |
|||
const char *lang[] = {"lang1", "lang2", "lang3"}; |
|||
|
|||
int |
|||
main (void) |
|||
{ |
|||
int i; |
|||
|
|||
/* Clean up environment. */ |
|||
unsetenv ("LANGUAGE"); |
|||
unsetenv ("LC_ALL"); |
|||
unsetenv ("LC_MESSAGES"); |
|||
unsetenv ("LC_CTYPE"); |
|||
unsetenv ("LANG"); |
|||
unsetenv ("OUTPUT_CHARSET"); |
|||
|
|||
textdomain ("tstlang"); |
|||
|
|||
for (i = 0; i < lang_cnt; ++i) |
|||
{ |
|||
int j; |
|||
|
|||
setlocale (LC_ALL, lang[i]); |
|||
bindtextdomain ("tstlang", OBJPFX "domaindir"); |
|||
|
|||
for (j = 0; j < data_cnt; ++j) |
|||
printf ("%s - %s\n", strings[j].selection, _(strings[j].description)); |
|||
} |
|||
|
|||
return 0; |
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
#! /bin/sh |
|||
# Test of gettext functions. |
|||
# 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 |
|||
objpfx=$2 |
|||
malloc_trace=$3 |
|||
|
|||
GCONV_PATH=${common_objpfx}iconvdata |
|||
export GCONV_PATH |
|||
LOCPATH=${common_objpfx}localedata |
|||
export LOCPATH |
|||
LC_ALL=C |
|||
export LC_ALL |
|||
|
|||
# Generate the test data. |
|||
test -d ${objpfx}domaindir || mkdir ${objpfx}domaindir |
|||
# Create the locale directories. |
|||
test -d ${objpfx}domaindir/lang1 || mkdir ${objpfx}domaindir/lang1 |
|||
test -d ${objpfx}domaindir/lang2 || mkdir ${objpfx}domaindir/lang2 |
|||
test -d ${objpfx}domaindir/lang1/LC_MESSAGES || mkdir ${objpfx}domaindir/lang1/LC_MESSAGES |
|||
test -d ${objpfx}domaindir/lang2/LC_MESSAGES || mkdir ${objpfx}domaindir/lang2/LC_MESSAGES |
|||
|
|||
# Populate them. |
|||
msgfmt -o ${objpfx}domaindir/lang1/LC_MESSAGES/tstlang.mo \ |
|||
tstlang1.po |
|||
|
|||
msgfmt -o ${objpfx}domaindir/lang2/LC_MESSAGES/tstlang.mo \ |
|||
tstlang2.po |
|||
|
|||
|
|||
# Now run the test. |
|||
MALLOC_TRACE=$malloc_trace \ |
|||
${common_objpfx}elf/ld.so --library-path $common_objpfx \ |
|||
${objpfx}tst-gettext2 > ${objpfx}tst-gettext2.out ${objpfx}domaindir |
|||
|
|||
exit $? |
|||
|
|||
@ -0,0 +1,13 @@ |
|||
msgid "" |
|||
msgstr "" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=US-ASCII\n" |
|||
"Content-Transfer-Encoding: 7-bit\n" |
|||
|
|||
#: tst-gettext2.c:33 |
|||
msgid "First string for testing." |
|||
msgstr "Lang1: 1st string" |
|||
|
|||
#: tst-gettext2.c:34 |
|||
msgid "Another string for testing." |
|||
msgstr "Lang1: 2nd string" |
|||
@ -0,0 +1,13 @@ |
|||
msgid "" |
|||
msgstr "" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=US-ASCII\n" |
|||
"Content-Transfer-Encoding: 7-bit\n" |
|||
|
|||
#: tst-gettext2.c:33 |
|||
msgid "First string for testing." |
|||
msgstr "Lang2: 1st string" |
|||
|
|||
#: tst-gettext2.c:34 |
|||
msgid "Another string for testing." |
|||
msgstr "Lang2: 2nd string" |
|||
Loading…
Reference in new issue