Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
2001-04-05  David S. Miller  <davem@redhat.com>

	Add hp-timing support for sparcv9/sparc64 targets.
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: New file
	* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: New file
	* sysdeps/sparc/sparc64/hp-timing.c: New file
	* sysdeps/sparc/sparc64/hp-timing.h: New file
	* sysdeps/sparc/sparc32/sparcv9/Makefile: Build hp-timing.
	* sysdeps/sparc/sparc64/Makefile: Likewise.

2001-04-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/generic/fd_to_filename.h: New file.
	* sysdeps/unix/sysv/linux/fd_to_filename.h: New file.
	* libio/freopen.c (freopen): If FILENAME is NULL, try to get
	filename from the open file descriptor.
	* libio/freopen64.c (freopen64): Likewise.

2001-04-09  Bruno Haible  <haible@clisp.cons.org>

	* misc/error.c (error): fflush stdout also if
	error_print_progname != NULL.
	(error_at_line): Likewise.

2001-04-07  Bruno Haible <haible@clisp.cons.org>

	* intl/gettextP.h (struct loaded_domain): Add codeset_cntr field.
	(struct binding): Add codeset_cntr field.
	(_nl_load_domain): Add domainbinding argument.
	(_nl_init_domain_conv, _nl_free_domain_conv): New declarations.
	(_nl_find_msg): New declaration, moved here from loadinfo.h.
	* intl/loadinfo.h (struct loaded_l10nfile): Remove domainbinding field.
	(_nl_make_l10nflist): Remove domainbinding argument.
	(_nl_find_msg): Move declaration to gettextP.h.
	* intl/bindtextdom.c (set_binding_values): Initialize ->codeset_cntr
	to 0.  Increment it when ->codeset is changed.
	* intl/dcigettext.c (DCIGETTEXT): Pass binding to _nl_find_msg.
	(_nl_find_msg): Add domainbinding argument.  Reinitialize the converter
	if domainbinding->codeset_cntr has been incremented.
	* intl/finddomain.c (_nl_find_domain): Don't pass domainbinding to
	_nl_make_l10nflist().  Pass it to _nl_load_domain() instead.
	* intl/l10nflist.c (_nl_make_l10nflist): Remove domainbinding argument.
	* intl/loadmsgcat.c (_nl_init_domain_conv): New function, extracted
	 from _nl_load_domain.  Append //TRANSLIT also when using libiconv.
	(_nl_free_domain_conv): New function, extracted from _nl_unload_domain.
	(_nl_load_domain): Add domainbinding argument.  Call
	_nl_init_domain_conv.
	(_nl_unload_domain): Call _nl_free_domain_conv.
	* intl/Makefile (distribute): Add tst-codeset.sh, tstcodeset.po.
	(test-srcs): Add tst-codeset.
	(tests): Depend on tst-codeset.out.
	(tst-codeset.out): New rule.
	(CFLAGS-tst-codeset.c): New variable.
	* intl/tst-codeset.sh: New file.
	* intl/tstcodeset.po: New file.
	* intl/tst-codeset.c: New file.
	* locale/findlocale.c (_nl_find_locale): Update _nl_make_l10nflist
	calls.
  • Loading branch information
Ulrich Drepper committed Apr 10, 2001
1 parent f66d7d4 commit c44a663
Show file tree
Hide file tree
Showing 25 changed files with 703 additions and 133 deletions.
59 changes: 59 additions & 0 deletions ChangeLog
@@ -1,3 +1,62 @@
2001-04-05 David S. Miller <davem@redhat.com>

Add hp-timing support for sparcv9/sparc64 targets.
* sysdeps/sparc/sparc32/sparcv9/hp-timing.c: New file
* sysdeps/sparc/sparc32/sparcv9/hp-timing.h: New file
* sysdeps/sparc/sparc64/hp-timing.c: New file
* sysdeps/sparc/sparc64/hp-timing.h: New file
* sysdeps/sparc/sparc32/sparcv9/Makefile: Build hp-timing.
* sysdeps/sparc/sparc64/Makefile: Likewise.

2001-04-09 Jakub Jelinek <jakub@redhat.com>

* sysdeps/generic/fd_to_filename.h: New file.
* sysdeps/unix/sysv/linux/fd_to_filename.h: New file.
* libio/freopen.c (freopen): If FILENAME is NULL, try to get
filename from the open file descriptor.
* libio/freopen64.c (freopen64): Likewise.

2001-04-09 Bruno Haible <haible@clisp.cons.org>

* misc/error.c (error): fflush stdout also if
error_print_progname != NULL.
(error_at_line): Likewise.

2001-04-07 Bruno Haible <haible@clisp.cons.org>

* intl/gettextP.h (struct loaded_domain): Add codeset_cntr field.
(struct binding): Add codeset_cntr field.
(_nl_load_domain): Add domainbinding argument.
(_nl_init_domain_conv, _nl_free_domain_conv): New declarations.
(_nl_find_msg): New declaration, moved here from loadinfo.h.
* intl/loadinfo.h (struct loaded_l10nfile): Remove domainbinding field.
(_nl_make_l10nflist): Remove domainbinding argument.
(_nl_find_msg): Move declaration to gettextP.h.
* intl/bindtextdom.c (set_binding_values): Initialize ->codeset_cntr
to 0. Increment it when ->codeset is changed.
* intl/dcigettext.c (DCIGETTEXT): Pass binding to _nl_find_msg.
(_nl_find_msg): Add domainbinding argument. Reinitialize the converter
if domainbinding->codeset_cntr has been incremented.
* intl/finddomain.c (_nl_find_domain): Don't pass domainbinding to
_nl_make_l10nflist(). Pass it to _nl_load_domain() instead.
* intl/l10nflist.c (_nl_make_l10nflist): Remove domainbinding argument.
* intl/loadmsgcat.c (_nl_init_domain_conv): New function, extracted
from _nl_load_domain. Append //TRANSLIT also when using libiconv.
(_nl_free_domain_conv): New function, extracted from _nl_unload_domain.
(_nl_load_domain): Add domainbinding argument. Call
_nl_init_domain_conv.
(_nl_unload_domain): Call _nl_free_domain_conv.
* intl/Makefile (distribute): Add tst-codeset.sh, tstcodeset.po.
(test-srcs): Add tst-codeset.
(tests): Depend on tst-codeset.out.
(tst-codeset.out): New rule.
(CFLAGS-tst-codeset.c): New variable.
* intl/tst-codeset.sh: New file.
* intl/tstcodeset.po: New file.
* intl/tst-codeset.c: New file.
* locale/findlocale.c (_nl_find_locale): Update _nl_make_l10nflist
calls.

2001-04-07 Roland McGrath <roland@frob.com>

* mach/msgserver.c (__mach_msg_server_timeout): Add an assert.
Expand Down
12 changes: 8 additions & 4 deletions intl/Makefile
Expand Up @@ -25,10 +25,10 @@ routines = bindtextdom dcgettext dgettext gettext \
finddomain loadmsgcat localealias textdomain \
l10nflist explodename plural
distribute = gettext.h gettextP.h hash-string.h loadinfo.h locale.alias \
plural.y po2test.sed tst-gettext.sh tst-translit.sh \
translit.po tst-gettext2.sh tstlang1.po tstlang2.po
plural.y po2test.sed tst-gettext.sh tst-translit.sh tst-codeset.sh \
translit.po tst-gettext2.sh tstlang1.po tstlang2.po tstcodeset.po

test-srcs := tst-gettext tst-translit tst-gettext2
test-srcs := tst-gettext tst-translit tst-gettext2 tst-codeset
tests = tst-ngettext

before-compile = $(objpfx)msgs.h
Expand All @@ -54,7 +54,8 @@ include ../Rules
ifeq (no,$(cross-compiling))
ifeq (yes,$(build-shared))
ifneq ($(strip $(MSGFMT)),:)
tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out
tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \
$(objpfx)tst-codeset.out
endif
ifneq (no,$(PERL))
tests: $(objpfx)mtrace-tst-gettext
Expand All @@ -68,6 +69,8 @@ $(objpfx)tst-translit.out: tst-translit.sh $(objpfx)tst-translit
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
$(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
$(objpfx)tst-codeset.out: tst-codeset.sh $(objpfx)tst-codeset
$(SHELL) -e $< $(common-objpfx) $(common-objpfx)intl/
endif
endif

Expand All @@ -78,6 +81,7 @@ $(objpfx)msgs.h: po2test.sed ../po/de.po
CFLAGS-tst-gettext.c = -DTESTSTRS_H=\"$(objpfx)msgs.h\"
CFLAGS-tst-gettext2.c = -DOBJPFX=\"$(objpfx)\"
CFLAGS-tst-translit.c = -DOBJPFX=\"$(objpfx)\"
CFLAGS-tst-codeset.c = -DOBJPFX=\"$(objpfx)\"

$(objpfx)tst-translit.out: $(objpfx)tst-gettext.out

Expand Down
6 changes: 5 additions & 1 deletion intl/bindtextdom.c
Expand Up @@ -100,7 +100,7 @@ __libc_rwlock_define (extern, _nl_state_lock)
static void set_binding_values PARAMS ((const char *domainname,
const char **dirnamep,
const char **codesetp));

/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
to be used for the DOMAINNAME message catalog.
If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
Expand Down Expand Up @@ -218,6 +218,7 @@ set_binding_values (domainname, dirnamep, codesetp)
free (binding->codeset);

binding->codeset = result;
++binding->codeset_cntr;
modified = 1;
}
}
Expand Down Expand Up @@ -281,6 +282,8 @@ set_binding_values (domainname, dirnamep, codesetp)
/* The default value. */
new_binding->dirname = (char *) _nl_default_dirname;

new_binding->codeset_cntr = 0;

if (codesetp)
{
const char *codeset = *codesetp;
Expand All @@ -301,6 +304,7 @@ set_binding_values (domainname, dirnamep, codesetp)
memcpy (result, codeset, len);
#endif
codeset = result;
++new_binding->codeset_cntr;
}
*codesetp = codeset;
new_binding->codeset = (char *) codeset;
Expand Down
21 changes: 16 additions & 5 deletions intl/dcigettext.c
Expand Up @@ -574,16 +574,16 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)

if (domain != NULL)
{
retval = _nl_find_msg (domain, msgid1, &retlen);
retval = _nl_find_msg (domain, binding, msgid1, &retlen);

if (retval == NULL)
{
int cnt;

for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
{
retval = _nl_find_msg (domain->successor[cnt], msgid1,
&retlen);
retval = _nl_find_msg (domain->successor[cnt], binding,
msgid1, &retlen);

if (retval != NULL)
{
Expand Down Expand Up @@ -652,8 +652,9 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)

char *
internal_function
_nl_find_msg (domain_file, msgid, lengthp)
_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
struct loaded_l10nfile *domain_file;
struct binding *domainbinding;
const char *msgid;
size_t *lengthp;
{
Expand All @@ -663,7 +664,7 @@ _nl_find_msg (domain_file, msgid, lengthp)
size_t resultlen;

if (domain_file->decided == 0)
_nl_load_domain (domain_file);
_nl_load_domain (domain_file, domainbinding);

if (domain_file->data == NULL)
return NULL;
Expand Down Expand Up @@ -742,6 +743,16 @@ _nl_find_msg (domain_file, msgid, lengthp)
resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;

#if defined _LIBC || HAVE_ICONV
if (domain->codeset_cntr
!= (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
{
/* The domain's codeset has changed through bind_textdomain_codeset()
since the message catalog was initialized or last accessed. We
have to reinitialize the converter. */
_nl_free_domain_conv (domain);
_nl_init_domain_conv (domain_file, domain, domainbinding);
}

if (
# ifdef _LIBC
domain->conv != (__gconv_t) -1
Expand Down
14 changes: 6 additions & 8 deletions intl/finddomain.c
Expand Up @@ -107,23 +107,22 @@ _nl_find_domain (dirname, locale, domainname, domainbinding)
be one data set in the list of loaded domains. */
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, 0, locale, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, domainname,
domainbinding, 0);
NULL, NULL, NULL, NULL, NULL, domainname, 0);
if (retval != NULL)
{
/* We know something about this locale. */
int cnt;

if (retval->decided == 0)
_nl_load_domain (retval);
_nl_load_domain (retval, domainbinding);

if (retval->data != NULL)
return retval;

for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt]);
_nl_load_domain (retval->successor[cnt], domainbinding);

if (retval->successor[cnt]->data != NULL)
break;
Expand Down Expand Up @@ -164,21 +163,20 @@ _nl_find_domain (dirname, locale, domainname, domainbinding)
retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
strlen (dirname) + 1, mask, language, territory,
codeset, normalized_codeset, modifier, special,
sponsor, revision, domainname, domainbinding,
1);
sponsor, revision, domainname, 1);
if (retval == NULL)
/* This means we are out of core. */
return NULL;

if (retval->decided == 0)
_nl_load_domain (retval);
_nl_load_domain (retval, domainbinding);
if (retval->data == NULL)
{
int cnt;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
_nl_load_domain (retval->successor[cnt]);
_nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
}
Expand Down
16 changes: 15 additions & 1 deletion intl/gettextP.h
Expand Up @@ -131,6 +131,7 @@ struct loaded_domain
struct string_desc *trans_tab;
nls_uint32 hash_size;
nls_uint32 *hash_tab;
int codeset_cntr;
#ifdef _LIBC
__gconv_t conv;
#else
Expand Down Expand Up @@ -158,6 +159,7 @@ struct binding
{
struct binding *next;
char *dirname;
int codeset_cntr; /* Incremented each time codeset changes. */
char *codeset;
char domainname[ZERO];
};
Expand All @@ -172,10 +174,22 @@ struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
const char *__domainname,
struct binding *__domainbinding))
internal_function;
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
internal_function;
const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
struct loaded_domain *__domain,
struct binding *__domainbinding))
internal_function;
void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
internal_function;

char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
struct binding *domainbinding,
const char *msgid, size_t *lengthp))
internal_function;

#ifdef _LIBC
extern char *__gettext PARAMS ((const char *__msgid));
Expand Down
7 changes: 2 additions & 5 deletions intl/l10nflist.c
Expand Up @@ -175,7 +175,7 @@ pop (x)
struct loaded_l10nfile *
_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
territory, codeset, normalized_codeset, modifier, special,
sponsor, revision, filename, domainbinding, do_allocate)
sponsor, revision, filename, do_allocate)
struct loaded_l10nfile **l10nfile_list;
const char *dirlist;
size_t dirlist_len;
Expand All @@ -189,7 +189,6 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
const char *sponsor;
const char *revision;
const char *filename;
struct binding *domainbinding;
int do_allocate;
{
char *abs_filename;
Expand Down Expand Up @@ -310,7 +309,6 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
return NULL;

retval->filename = abs_filename;
retval->domainbinding = domainbinding;
retval->decided = (__argz_count (dirlist, dirlist_len) != 1
|| ((mask & XPG_CODESET) != 0
&& (mask & XPG_NORM_CODESET) != 0));
Expand Down Expand Up @@ -346,8 +344,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
= _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,
language, territory, codeset,
normalized_codeset, modifier, special,
sponsor, revision, filename, domainbinding,
1);
sponsor, revision, filename, 1);
}
retval->successor[entries] = NULL;

Expand Down
9 changes: 1 addition & 8 deletions intl/loadinfo.h
Expand Up @@ -55,7 +55,6 @@
struct loaded_l10nfile
{
const char *filename;
struct binding *domainbinding;
int decided;

const void *data;
Expand All @@ -80,8 +79,7 @@ _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
const char *normalized_codeset,
const char *modifier, const char *special,
const char *sponsor, const char *revision,
const char *filename,
struct binding *domainbinding, int do_allocate));
const char *filename, int do_allocate));


extern const char *_nl_expand_alias PARAMS ((const char *name));
Expand All @@ -99,9 +97,4 @@ extern int _nl_explode_name PARAMS ((char *name, const char **language,

extern char *_nl_find_language PARAMS ((const char *name));


extern char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
const char *msgid, size_t *lengthp))
internal_function;

#endif /* loadinfo.h */

0 comments on commit c44a663

Please sign in to comment.