2014-12-10 20:03:53 +08:00
|
|
|
/* Description of GNU message catalog format: general file layout.
|
2024-01-02 02:12:26 +08:00
|
|
|
Copyright (C) 1995-2024 Free Software Foundation, Inc.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
2014-12-10 20:03:53 +08:00
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU Lesser General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2.1 of the License, or
|
|
|
|
(at your option) any later version.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
2014-12-10 20:03:53 +08:00
|
|
|
This program is distributed in the hope that it will be useful,
|
1997-02-15 12:31:36 +08:00
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2014-12-10 20:03:53 +08:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU Lesser General Public License for more details.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
2014-12-10 20:03:53 +08:00
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 13:40:42 +08:00
|
|
|
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
1995-09-29 02:42:29 +08:00
|
|
|
|
|
|
|
#ifndef _GETTEXT_H
|
|
|
|
#define _GETTEXT_H 1
|
|
|
|
|
Update.
2001-03-04 Bruno Haible <bruno@clisp.org>
* intl/dcigettext.c (DCIGETTEXT): Increment path_max proportionally.
2001-10-31 Bruno Haible <bruno@clisp.org>
* intl/plural.y: Include <stddef.h>, needed for NULL with SunOS 4 cc.
2001-03-21 Bruno Haible <bruno@clisp.org>
* intl/dcigettext.c (_nl_state_lock): Mark as #ifdef _LIBC. AIX 3 xlc
chokes on empty macro arguments.
* intl/plural.y: Add #pragma for alloca on AIX 3.
2001-11-27 Ulrich Drepper <drepper@redhat.com>
* intl/dcigettext.c (guess_category_value): Only implement for
glibc. Otherwise rely on function _nl_locale_name which isn't
present in the glibc sources.
2001-09-24 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (_nl_init_domain_conv): Also enable
transliteration when building on a glibc system but outside glibc.
2001-09-22 Bruno Haible <bruno@clisp.org>
* intl/plural-eval.c: New file, extracted from dcigettext.c.
* intl/dcigettext.c (plural_eval): Remove function, moved to
intl/plural-eval.c.
(plural_lookup): Call PLURAL_EVAL instead of plural_eval.
Include plural-eval.c.
2001-09-22 Bruno Haible <bruno@clisp.org>
* intl/plural-exp.c (EXTRACT_PLURAL_EXPRESSION): Reject numbers that
don't start with a digit; nplurals must be positive.
2001-09-02 Bruno Haible <bruno@clisp.org>
* intl/plural-exp.h: New file, extracted from gettextP.h.
* intl/plural-exp.c: New file, extracted from loadmsgcat.c.
* intl/gettextP.h (struct expression, struct parse_args,
__gettext_free_exp, __gettextparse): Move to plural-exp.h.
* intl/loadmsgcat.c: Include plural-exp.h.
(PLURAL_PARSE): Move macro to plural-exp.h.
(plvar, plone, germanic_plural, INIT_GERMANIC_PLURAL): Move to
plural-exp.c.
(_nl_load_domain): Move plural handling code to plural-exp.c. Call
EXTRACT_PLURAL_EXPRESSION.
(_nl_unload_domain): Update.
* intl/dcigettext.c: Include plural-exp.h.
* intl/plural.y: Include plural-exp.h, not gettextP.h.
(FREE_EXPRESSION): Move macro to plural-exp.h.
* intl/Makefile (routines): Add plural-exp.
(distribute): Add plural-exp.h.
2001-07-28 Bruno Haible <bruno@clisp.org>
* intl/l10nflist.c (_nl_normalize_codeset): Cast isalnum, isalpha,
isdigit, tolower argument to 'unsigned char'.
* intl/loadmsgcat.c (_nl_load_domain): Cast isspace argument to
'unsigned char'.
* intl/localealias.c (read_alias_file): Cast isspace argument to
'unsigned char'.
2001-10-20 Bruno Haible <bruno@clisp.org>
Assume strchr() exists. (Without it, intl/explodename.c wouldn't link
anyway.)
* intl/dcigettext.c (strchr): Remove fallback definition; it conflicts
with the variable 'index' in plural_lookup.
* intl/l10nflist.c (strchr): Likewise.
* intl/localealias.c (strchr): Likewise.
Assume <stddef.h>, <stdlib.h>, <string.h>, <locale.h> exist.
* intl/bindtextdom.c: Likewise.
* intl/dcigettext.c: Likewise.
* intl/dgettext.c: Likewise.
* intl/dngettext.c: Likewise.
* intl/explodename.c: Likewise.
* intl/finddomain.c: Likewise.
* intl/gettext.c: Likewise.
* intl/l10nflist.c: Likewise.
* intl/loadmsgcat.c: Likewise.
* intl/localealias.c: Likewise.
* intl/ngettext.c: Likewise.
* intl/textdomain.c: Likewise.
* intl/gettext.h: Assume <limits.h> exists.
2001-11-28 08:09:26 +08:00
|
|
|
#include <limits.h>
|
1995-09-29 02:42:29 +08:00
|
|
|
|
|
|
|
/* @@ end of prolog @@ */
|
|
|
|
|
|
|
|
/* The magic number of the GNU message catalog format. */
|
|
|
|
#define _MAGIC 0x950412de
|
|
|
|
#define _MAGIC_SWAPPED 0xde120495
|
|
|
|
|
|
|
|
/* Revision number of the currently used .mo (binary) file format. */
|
|
|
|
#define MO_REVISION_NUMBER 0
|
2004-01-14 13:38:11 +08:00
|
|
|
#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
|
1995-09-29 02:42:29 +08:00
|
|
|
|
|
|
|
/* The following contortions are an attempt to use the C preprocessor
|
|
|
|
to determine an unsigned integral type that is 32 bits wide. An
|
|
|
|
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
|
Update.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c (_nl_load_domain) [!_LIBC]: Use fstat, not fstat64.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (struct expression): Add operators lnot, less_than,
greater_than, less_or_equal, greater_or_equal. Replace args2/args3
union by a 'nargs' counter and an 'args[]' array.
* intl/plural.y: Don't include stdarg.h.
(new_exp): Take an array of arguments instead of varargs.
(new_exp_0, new_exp_1, new_exp_2, new_exp_3): New functions.
('?' ':'): Make right-associative.
(EQUOP2): New token, replaces '=' and '!'.
(CMPOP2): New token.
(ADDOP2): New token, replaces '+' and '-'.
(MULOP2): New token, replaces '*', '/' and '%'.
('!'): New token.
(exp): Add rules for CMPOP2 and '!'. Don't call YYABORT.
(start): Call YYABORT here.
(FREE_EXPRESSION): Update.
(yylex): Don't skip "\\n". Recognize comparison and '!' operators.
Update for new token symbols.
* intl/loadmsgcat.c (plvar, plone, germanic_plural,
init_germanic_plural): Update.
* intl/dcigettext.c (_nl_find_msg): Optimize for space.
(plural_eval): Recognize comparison and '!' operators. Optimize for
space.
2001-03-10 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c (_nl_load_domain): locale_charset() doesn't return
NULL any more.
2001-01-05 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c: Include headers needed for alloca().
(freea): New macro.
(_nl_load_domain): Add fallback code for platforms lacking alloca.
* intl/localealias.c: (ADD_BLOCK, FREE_BLOCK): Remove macros.
(freea): New macro.
(read_alias_file): Simplify fallback code for platforms lacking
alloca.
2001-01-07 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (__gettextdebug): Remove declaration.
(__gettext_free_exp, __gettextparse): Convert prototype to K&R C
syntax.
(gettext_free_exp__, gettextparse__): New non-libc declarations.
* intl/plural.y [!_LIBC]: Define gettextparse__, gettext_free_exp__,
not __gettextparse, __gettext_free_exp.
* intl/loadmsgcat.c [!_LIBC]: Use gettextparse__, not __gettextparse.
2001-02-24 Bruno Haible <haible@clisp.cons.org>
* intl/dcigettext.c: Update comment about HAVE_LOCALE_NULL.
2001-01-05 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c (_nl_load_domain): Add fallback code for platforms
lacking strtoul, like SunOS4.
2001-01-05 Bruno Haible <haible@clisp.cons.org>
* intl/l10nflist.c (_nl_normalize_codeset): Use tolower, not _tolower.
2001-01-05 Bruno Haible <haible@clisp.cons.org>
* intl/bindtextdom.c (set_binding_values): Convert prototype to K&R C
syntax.
* intl/dcigettext.c (transcmp): Convert to K&R C syntax.
* intl/explodename.c (_nl_find_language): Convert to K&R C syntax.
* intl/plural.y (__gettext_free_exp, yylex, yyerror): Convert to K&R C
syntax.
2001-01-07 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (gettext__, dgettext__, dcgettext__, textdomain__,
bindtextdomain__, bind_textdomain_codeset__): New declarations, from
old libgettext.h.
* intl/bindtextdom.c: Include libgnuintl.h instead of libgettext.h.
* intl/dcgettext.c: Likewise.
* intl/dcigettext.c: Likewise.
* intl/dcngettext.c: Likewise.
* intl/dngettext.c: Likewise.
* intl/finddomain.c: Likewise.
* intl/ngettext.c: Likewise.
* intl/textdomain.c: Likewise.
* intl/dgettext.c: Include libgnuintl.h instead of libgettext.h.
Include gettextP.h.
* intl/gettext.c: Likewise. Don't include locale.h.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h (ZERO): New macro.
(struct binding): Always use ZERO.
* intl/bindtextdom.c (offsetof): Provide fallback for platforms that
lack it, like SunOS4.
(set_binding_values): Use offsetof, not sizeof.
* intl/dcigettext.c (offsetof): Provide fallback for platforms that
lack it, like SunOS4.
(ZERO): Remove macro.
(struct transmem_list): Use ZERO.
(DCIGETTEXT): Use offsetof, not sizeof.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/gettextP.h: Include <stddef.h>. Include gettext.h, for
nls_uint32.
* intl/bindtextdom.c: Don't include gettext.h.
* intl/dcgettext.c: Likewise.
* intl/dcigettext.c: Likewise.
* intl/dcngettext.c: Likewise.
* intl/dngettext.c: Likewise.
* intl/finddomain.c: Likewise.
* intl/localealias.c: Likewise.
* intl/ngettext.c: Likewise.
* intl/plural.y: Likewise.
* intl/textdomain.c: Likewise.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/gettext.h: Don't include <stdio.h>.
2001-03-17 Bruno Haible <haible@clisp.cons.org>
* intl/Makefile (CPPFLAGS): Set LOCALEDIR instead of GNULOCALEDIR.
* intl/dcigettext.c (_nl_default_dirname): Initialize with LOCALEDIR.
2001-03-20 09:00:20 +08:00
|
|
|
as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
|
|
|
|
when cross-compiling. */
|
1995-09-29 02:42:29 +08:00
|
|
|
|
|
|
|
#if __STDC__
|
|
|
|
# define UINT_MAX_32_BITS 4294967295U
|
|
|
|
#else
|
|
|
|
# define UINT_MAX_32_BITS 0xFFFFFFFF
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* If UINT_MAX isn't defined, assume it's a 32-bit type.
|
|
|
|
This should be valid for all systems GNU cares about because
|
|
|
|
that doesn't include 16-bit systems, and only modern systems
|
|
|
|
(that certainly have <limits.h>) have 64+-bit integral types. */
|
|
|
|
|
|
|
|
#ifndef UINT_MAX
|
|
|
|
# define UINT_MAX UINT_MAX_32_BITS
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if UINT_MAX == UINT_MAX_32_BITS
|
|
|
|
typedef unsigned nls_uint32;
|
|
|
|
#else
|
|
|
|
# if USHRT_MAX == UINT_MAX_32_BITS
|
|
|
|
typedef unsigned short nls_uint32;
|
|
|
|
# else
|
|
|
|
# if ULONG_MAX == UINT_MAX_32_BITS
|
|
|
|
typedef unsigned long nls_uint32;
|
|
|
|
# else
|
|
|
|
/* The following line is intended to throw an error. Using #error is
|
|
|
|
not portable enough. */
|
|
|
|
"Cannot determine unsigned 32-bit data type."
|
|
|
|
# endif
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/* Header for binary .mo file format. */
|
|
|
|
struct mo_file_header
|
|
|
|
{
|
|
|
|
/* The magic number. */
|
|
|
|
nls_uint32 magic;
|
|
|
|
/* The revision number of the file format. */
|
|
|
|
nls_uint32 revision;
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
|
2004-01-14 13:38:11 +08:00
|
|
|
/* The following are only used in .mo files with major revision 0 or 1. */
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
|
1995-09-29 02:42:29 +08:00
|
|
|
/* The number of strings pairs. */
|
|
|
|
nls_uint32 nstrings;
|
|
|
|
/* Offset of table with start offsets of original strings. */
|
|
|
|
nls_uint32 orig_tab_offset;
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Offset of table with start offsets of translated strings. */
|
1995-09-29 02:42:29 +08:00
|
|
|
nls_uint32 trans_tab_offset;
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Size of hash table. */
|
1995-09-29 02:42:29 +08:00
|
|
|
nls_uint32 hash_tab_size;
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Offset of first hash table entry. */
|
1995-09-29 02:42:29 +08:00
|
|
|
nls_uint32 hash_tab_offset;
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
|
|
|
|
/* The following are only used in .mo files with minor revision >= 1. */
|
|
|
|
|
|
|
|
/* The number of system dependent segments. */
|
|
|
|
nls_uint32 n_sysdep_segments;
|
|
|
|
/* Offset of table describing system dependent segments. */
|
|
|
|
nls_uint32 sysdep_segments_offset;
|
|
|
|
/* The number of system dependent strings pairs. */
|
|
|
|
nls_uint32 n_sysdep_strings;
|
|
|
|
/* Offset of table with start offsets of original sysdep strings. */
|
|
|
|
nls_uint32 orig_sysdep_tab_offset;
|
|
|
|
/* Offset of table with start offsets of translated sysdep strings. */
|
|
|
|
nls_uint32 trans_sysdep_tab_offset;
|
1995-09-29 02:42:29 +08:00
|
|
|
};
|
|
|
|
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Descriptor for static string contained in the binary .mo file. */
|
1995-09-29 02:42:29 +08:00
|
|
|
struct string_desc
|
|
|
|
{
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Length of addressed string, not including the trailing NUL. */
|
1995-09-29 02:42:29 +08:00
|
|
|
nls_uint32 length;
|
|
|
|
/* Offset of string in file. */
|
|
|
|
nls_uint32 offset;
|
|
|
|
};
|
|
|
|
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* The following are only used in .mo files with minor revision >= 1. */
|
|
|
|
|
|
|
|
/* Descriptor for system dependent string segment. */
|
|
|
|
struct sysdep_segment
|
|
|
|
{
|
|
|
|
/* Length of addressed string, including the trailing NUL. */
|
|
|
|
nls_uint32 length;
|
|
|
|
/* Offset of string in file. */
|
|
|
|
nls_uint32 offset;
|
|
|
|
};
|
|
|
|
|
2014-12-10 20:03:53 +08:00
|
|
|
/* Pair of a static and a system dependent segment, in struct sysdep_string. */
|
|
|
|
struct segment_pair
|
|
|
|
{
|
|
|
|
/* Size of static segment. */
|
|
|
|
nls_uint32 segsize;
|
|
|
|
/* Reference to system dependent string segment, or ~0 at the end. */
|
|
|
|
nls_uint32 sysdepref;
|
|
|
|
};
|
|
|
|
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
/* Descriptor for system dependent string. */
|
|
|
|
struct sysdep_string
|
|
|
|
{
|
|
|
|
/* Offset of static string segments in file. */
|
|
|
|
nls_uint32 offset;
|
|
|
|
/* Alternating sequence of static and system dependent segments.
|
|
|
|
The last segment is a static segment, including the trailing NUL. */
|
2014-12-10 20:03:53 +08:00
|
|
|
struct segment_pair segments[1];
|
Update.
2002-07-15 Alexandre Oliva <aoliva@redhat.com>
* configure.in (static_nss): Set to `yes' if --disable-shared.
2002-07-23 Bruno Haible <bruno@clisp.org>
* intl/loadmsgcat.c (PRI*): Redefine the macros if PRI_MACROS_BROKEN
is set.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: New file.
* sysdeps/unix/sysv/linux/ia64/profil-counter.h: Fix profil_counter
arguments.
2002-07-25 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Add
alias.
2002-07-21 Bruno Haible <bruno@clisp.org>
* intl/libintl.h (__GNU_GETTEXT_SUPPORTED_REVISION): New macro.
* intl/gettext.h (struct mo_file_header): New fields n_sysdep_segments,
sysdep_segments_offset, n_sysdep_strings, orig_sysdep_tab_offset,
trans_sysdep_tab_offset.
(struct sysdep_segment): New type.
(struct sysdep_string): New type.
(SEGMENTS_END): New macro.
* intl/gettextP.h (struct sysdep_string_desc): New type.
(struct loaded_domain): New fields malloced, n_sysdep_strings,
orig_sysdep_tab, trans_sysdep_tab, must_swap_hash_tab. Make fields
orig_tab, trans_tab, hash_tab to const pointers because they point
into read-only memory.
* intl/loadmsgcat.c: Include stdint.h, inttypes.h, hash-string.h.
(PRI*): Define fallback values.
(get_sysdep_segment_value): New function.
(_nl_load_domain): Distinguish major and minor revision parts. Add
support for minor revision 1 with system dependent strings.
(_nl_unload_domain): Also free the 'malloced' field.
* intl/dcigettext.c (_nl_find_msg): Remove test for domain->hash_size,
now done in loadmsgcat.c. Add support for system dependent strings.
2002-07-27 16:47:23 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
/* Marker for the end of the segments[] array. This has the value 0xFFFFFFFF,
|
|
|
|
regardless whether 'int' is 16 bit, 32 bit, or 64 bit. */
|
|
|
|
#define SEGMENTS_END ((nls_uint32) ~0)
|
|
|
|
|
1995-09-29 02:42:29 +08:00
|
|
|
/* @@ begin of epilog @@ */
|
|
|
|
|
|
|
|
#endif /* gettext.h */
|