texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

texinfo/intl ChangeLog,1.3,1.4 Makefile.in,1.3,1.4 VERSION,1.3,1.4 confi


From: karl
Subject: texinfo/intl ChangeLog,1.3,1.4 Makefile.in,1.3,1.4 VERSION,1.3,1.4 config.charset,1.3,1.4 gmo.h,1.1,1.2 loadmsgcat.c,1.2,1.3 locale.alias,1.1,1.2 localename.c,1.3,1.4
Date: Thu, 5 Feb 2004 17:48:36 +0100

Update of /cvsroot/texinfo/texinfo/intl
In directory sheep:/tmp/cvs-serv4475/intl

Modified Files:
        ChangeLog Makefile.in VERSION config.charset gmo.h 
        loadmsgcat.c locale.alias localename.c 
Log Message:
gettext 0.14.1

Index: ChangeLog
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/ChangeLog,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ChangeLog   21 Dec 2003 00:26:16 -0000      1.3
--- ChangeLog   5 Feb 2004 16:48:34 -0000       1.4
***************
*** 1,4 ****
! 2003-12-17  GNU  <address@hidden>
  
!       * Version 0.13.1 released.
  
--- 1,4 ----
! 2004-01-29  GNU  <address@hidden>
  
!       * Version 0.14.1 released.
  

Index: Makefile.in
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/Makefile.in,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Makefile.in 21 Dec 2003 00:26:16 -0000      1.3
--- Makefile.in 5 Feb 2004 16:48:34 -0000       1.4
***************
*** 163,168 ****
  # Maintainers of other packages that include the intl directory must *not*
  # change these values.
! LTV_CURRENT=6
! LTV_REVISION=1
  LTV_AGE=4
  
--- 163,168 ----
  # Maintainers of other packages that include the intl directory must *not*
  # change these values.
! LTV_CURRENT=7
! LTV_REVISION=0
  LTV_AGE=4
  

Index: VERSION
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/VERSION,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** VERSION     21 Dec 2003 00:26:16 -0000      1.3
--- VERSION     5 Feb 2004 16:48:34 -0000       1.4
***************
*** 1 ****
! GNU gettext library from gettext-0.13.1
--- 1 ----
! GNU gettext library from gettext-0.14.1

Index: config.charset
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/config.charset,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** config.charset      21 Dec 2003 00:26:16 -0000      1.3
--- config.charset      5 Feb 2004 16:48:34 -0000       1.4
***************
*** 2,6 ****
  # Output a system dependent table of character encoding aliases.
  #
! #   Copyright (C) 2000-2003 Free Software Foundation, Inc.
  #
  #   This program is free software; you can redistribute it and/or modify it
--- 2,6 ----
  # Output a system dependent table of character encoding aliases.
  #
! #   Copyright (C) 2000-2004 Free Software Foundation, Inc.
  #
  #   This program is free software; you can redistribute it and/or modify it
***************
*** 31,105 ****
  # The current list of GNU canonical charset names is as follows.
  #
! #       name                         used by which systems         a MIME 
name?
! #   ASCII, ANSI_X3.4-1968     glibc solaris freebsd
! #   ISO-8859-1                glibc aix hpux irix osf solaris freebsd   yes
! #   ISO-8859-2                glibc aix hpux irix osf solaris freebsd   yes
! #   ISO-8859-3                glibc solaris                             yes
! #   ISO-8859-4                osf solaris freebsd                       yes
! #   ISO-8859-5                glibc aix hpux irix osf solaris freebsd   yes
! #   ISO-8859-6                glibc aix hpux solaris                    yes
! #   ISO-8859-7                glibc aix hpux irix osf solaris           yes
! #   ISO-8859-8                glibc aix hpux osf solaris                yes
! #   ISO-8859-9                glibc aix hpux irix osf solaris           yes
! #   ISO-8859-13               glibc
! #   ISO-8859-14               glibc
! #   ISO-8859-15               glibc aix osf solaris freebsd
! #   KOI8-R                    glibc solaris freebsd                     yes
! #   KOI8-U                    glibc freebsd                             yes
! #   KOI8-T                    glibc
! #   CP437                     dos
! #   CP775                     dos
! #   CP850                     aix osf dos
! #   CP852                     dos
! #   CP855                     dos
! #   CP856                     aix
! #   CP857                     dos
! #   CP861                     dos
! #   CP862                     dos
! #   CP864                     dos
! #   CP865                     dos
! #   CP866                     freebsd dos
! #   CP869                     dos
! #   CP874                     woe32 dos
! #   CP922                     aix
! #   CP932                     aix woe32 dos
! #   CP943                     aix
! #   CP949                     osf woe32 dos
! #   CP950                     woe32 dos
! #   CP1046                    aix
! #   CP1124                    aix
! #   CP1125                    dos
! #   CP1129                    aix
! #   CP1250                    woe32
! #   CP1251                    glibc solaris woe32
! #   CP1252                    aix woe32
! #   CP1253                    woe32
! #   CP1254                    woe32
! #   CP1255                    glibc woe32
! #   CP1256                    woe32
! #   CP1257                    woe32
! #   GB2312                    glibc aix hpux irix solaris freebsd       yes
! #   EUC-JP                    glibc aix hpux irix osf solaris freebsd   yes
! #   EUC-KR                    glibc aix hpux irix osf solaris freebsd   yes
! #   EUC-TW                    glibc aix hpux irix osf solaris
! #   BIG5                      glibc aix hpux osf solaris freebsd        yes
! #   BIG5-HKSCS                glibc solaris
! #   GBK                       glibc aix osf solaris woe32 dos
! #   GB18030                   glibc solaris
! #   SHIFT_JIS                 hpux osf solaris freebsd                  yes
! #   JOHAB                     glibc solaris woe32
! #   TIS-620                   glibc aix hpux osf solaris
! #   VISCII                    glibc                                     yes
! #   TCVN5712-1                glibc
! #   GEORGIAN-PS               glibc
! #   HP-ROMAN8                 hpux
! #   HP-ARABIC8                hpux
! #   HP-GREEK8                 hpux
! #   HP-HEBREW8                hpux
! #   HP-TURKISH8               hpux
! #   HP-KANA8                  hpux
! #   DEC-KANJI                 osf
! #   DEC-HANYU                 osf
! #   UTF-8                     glibc aix hpux osf solaris                yes
  #
  # Note: Names which are not marked as being a MIME name should not be used in
--- 31,105 ----
  # The current list of GNU canonical charset names is as follows.
  #
! #       name              MIME?             used by which systems
! #   ASCII, ANSI_X3.4-1968       glibc solaris freebsd darwin
! #   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd darwin
! #   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd darwin
! #   ISO-8859-3              Y   glibc solaris
! #   ISO-8859-4              Y   osf solaris freebsd darwin
! #   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd darwin
! #   ISO-8859-6              Y   glibc aix hpux solaris
! #   ISO-8859-7              Y   glibc aix hpux irix osf solaris
! #   ISO-8859-8              Y   glibc aix hpux osf solaris
! #   ISO-8859-9              Y   glibc aix hpux irix osf solaris
! #   ISO-8859-13                 glibc
! #   ISO-8859-14                 glibc
! #   ISO-8859-15                 glibc aix osf solaris freebsd
! #   KOI8-R                  Y   glibc solaris freebsd darwin
! #   KOI8-U                  Y   glibc freebsd darwin
! #   KOI8-T                      glibc
! #   CP437                       dos
! #   CP775                       dos
! #   CP850                       aix osf dos
! #   CP852                       dos
! #   CP855                       dos
! #   CP856                       aix
! #   CP857                       dos
! #   CP861                       dos
! #   CP862                       dos
! #   CP864                       dos
! #   CP865                       dos
! #   CP866                       freebsd darwin dos
! #   CP869                       dos
! #   CP874                       woe32 dos
! #   CP922                       aix
! #   CP932                       aix woe32 dos
! #   CP943                       aix
! #   CP949                       osf woe32 dos
! #   CP950                       woe32 dos
! #   CP1046                      aix
! #   CP1124                      aix
! #   CP1125                      dos
! #   CP1129                      aix
! #   CP1250                      woe32
! #   CP1251                      glibc solaris darwin woe32
! #   CP1252                      aix woe32
! #   CP1253                      woe32
! #   CP1254                      woe32
! #   CP1255                      glibc woe32
! #   CP1256                      woe32
! #   CP1257                      woe32
! #   GB2312                  Y   glibc aix hpux irix solaris freebsd darwin
! #   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd darwin
! #   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd darwin
! #   EUC-TW                      glibc aix hpux irix osf solaris
! #   BIG5                    Y   glibc aix hpux osf solaris freebsd darwin
! #   BIG5-HKSCS                  glibc solaris
! #   GBK                         glibc aix osf solaris woe32 dos
! #   GB18030                     glibc solaris
! #   SHIFT_JIS               Y   hpux osf solaris freebsd darwin
! #   JOHAB                       glibc solaris woe32
! #   TIS-620                     glibc aix hpux osf solaris
! #   VISCII                  Y   glibc
! #   TCVN5712-1                  glibc
! #   GEORGIAN-PS                 glibc
! #   HP-ROMAN8                   hpux
! #   HP-ARABIC8                  hpux
! #   HP-GREEK8                   hpux
! #   HP-HEBREW8                  hpux
! #   HP-TURKISH8                 hpux
! #   HP-KANA8                    hpux
! #   DEC-KANJI                   osf
! #   DEC-HANYU                   osf
! #   UTF-8                   Y   glibc aix hpux osf solaris
  #
  # Note: Names which are not marked as being a MIME name should not be used in
***************
*** 396,399 ****
--- 396,440 ----
        echo "BIG5 BIG5"
        echo "SJIS SHIFT_JIS"
+       ;;
+     darwin*)
+       # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+       # localcharset.c falls back to using the full locale name
+       # from the environment variables.
+       echo "C ASCII"
+       for l in en_AU en_CA en_GB en_US la_LN; do
+         echo "$l.US-ASCII ASCII"
+       done
+       for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+                fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+                nl_NL no_NO pt_PT sv_SE; do
+         echo "$l ISO-8859-1"
+         echo "$l.ISO8859-1 ISO-8859-1"
+         echo "$l.ISO8859-15 ISO-8859-15"
+       done
+       for l in la_LN; do
+         echo "$l.ISO8859-1 ISO-8859-1"
+         echo "$l.ISO8859-15 ISO-8859-15"
+       done
+       for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+         echo "$l.ISO8859-2 ISO-8859-2"
+       done
+       for l in la_LN lt_LT; do
+         echo "$l.ISO8859-4 ISO-8859-4"
+       done
+       for l in ru_RU; do
+         echo "$l.KOI8-R KOI8-R"
+         echo "$l.ISO8859-5 ISO-8859-5"
+         echo "$l.CP866 CP866"
+       done
+       for l in bg_BG; do
+         echo "$l.CP1251 CP1251"
+       done
+       echo "uk_UA.KOI8-U KOI8-U"
+       echo "zh_TW.BIG5 BIG5"
+       echo "zh_TW.Big5 BIG5"
+       echo "zh_CN.EUC GB2312"
+       echo "ja_JP.EUC EUC-JP"
+       echo "ja_JP.SJIS SHIFT_JIS"
+       echo "ko_KR.EUC EUC-KR"
        ;;
      beos*)

Index: gmo.h
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/gmo.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** gmo.h       6 Dec 2003 01:47:53 -0000       1.1
--- gmo.h       5 Feb 2004 16:48:34 -0000       1.2
***************
*** 1,4 ****
  /* Description of GNU message catalog format: general file layout.
!    Copyright (C) 1995, 1997, 2000-2002 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
--- 1,4 ----
  /* Description of GNU message catalog format: general file layout.
!    Copyright (C) 1995, 1997, 2000-2002, 2004 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
***************
*** 30,33 ****
--- 30,34 ----
  /* Revision number of the currently used .mo (binary) file format.  */
  #define MO_REVISION_NUMBER 0
+ #define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
  
  /* The following contortions are an attempt to use the C preprocessor
***************
*** 77,81 ****
    nls_uint32 revision;
  
!   /* The following are only used in .mo files with major revision 0.  */
  
    /* The number of strings pairs.  */
--- 78,82 ----
    nls_uint32 revision;
  
!   /* The following are only used in .mo files with major revision 0 or 1.  */
  
    /* The number of strings pairs.  */

Index: loadmsgcat.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/loadmsgcat.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** loadmsgcat.c        13 Dec 2003 21:18:46 -0000      1.2
--- loadmsgcat.c        5 Feb 2004 16:48:34 -0000       1.3
***************
*** 1,4 ****
  /* Load needed message catalogs.
!    Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
--- 1,4 ----
  /* Load needed message catalogs.
!    Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
***************
*** 749,752 ****
--- 749,764 ----
        }
      }
+   /* Test for a glibc specific printf() format directive flag.  */
+   if (name[0] == 'I' && name[1] == '\0')
+     {
+ #if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+       /* The 'I' flag, in numeric format directives, replaces ASCII digits
+        with the 'outdigits' defined in the LC_CTYPE locale facet.  This is
+        used for Farsi (Persian) and maybe Arabic.  */
+       return "I";
+ #else
+       return "";
+ #endif
+     }
    /* Other system dependent strings are not valid.  */
    return NULL;
***************
*** 1020,1027 ****
    /* Fill in the information about the available tables.  */
    revision = W (domain->must_swap, data->revision);
!   /* We support only the major revision 0.  */
    switch (revision >> 16)
      {
      case 0:
        domain->nstrings = W (domain->must_swap, data->nstrings);
        domain->orig_tab = (const struct string_desc *)
--- 1032,1040 ----
    /* Fill in the information about the available tables.  */
    revision = W (domain->must_swap, data->revision);
!   /* We support only the major revisions 0 and 1.  */
    switch (revision >> 16)
      {
      case 0:
+     case 1:
        domain->nstrings = W (domain->must_swap, data->nstrings);
        domain->orig_tab = (const struct string_desc *)
***************
*** 1063,1066 ****
--- 1076,1080 ----
                const nls_uint32 *orig_sysdep_tab;
                const nls_uint32 *trans_sysdep_tab;
+               nls_uint32 n_inmem_sysdep_strings;
                size_t memneed;
                char *mem;
***************
*** 1068,1072 ****
                struct sysdep_string_desc *inmem_trans_sysdep_tab;
                nls_uint32 *inmem_hash_tab;
!               unsigned int i;
  
                /* Get the values of the system dependent segments.  */
--- 1082,1086 ----
                struct sysdep_string_desc *inmem_trans_sysdep_tab;
                nls_uint32 *inmem_hash_tab;
!               unsigned int i, j;
  
                /* Get the values of the system dependent segments.  */
***************
*** 1103,1253 ****
  
                /* Compute the amount of additional memory needed for the
!                  system dependent strings and the augmented hash table.  */
!               memneed = 2 * n_sysdep_strings
!                         * sizeof (struct sysdep_string_desc)
!                         + domain->hash_size * sizeof (nls_uint32);
!               for (i = 0; i < 2 * n_sysdep_strings; i++)
                  {
!                   const struct sysdep_string *sysdep_string =
!                     (const struct sysdep_string *)
!                     ((char *) data
!                      + W (domain->must_swap,
!                           i < n_sysdep_strings
!                           ? orig_sysdep_tab[i]
!                           : trans_sysdep_tab[i - n_sysdep_strings]));
!                   size_t need = 0;
!                   const struct segment_pair *p = sysdep_string->segments;
! 
!                   if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
!                     for (p = sysdep_string->segments;; p++)
!                       {
!                         nls_uint32 sysdepref;
! 
!                         need += W (domain->must_swap, p->segsize);
  
!                         sysdepref = W (domain->must_swap, p->sysdepref);
!                         if (sysdepref == SEGMENTS_END)
!                           break;
  
!                         if (sysdepref >= n_sysdep_segments)
                            {
!                             /* Invalid.  */
!                             freea (sysdep_segment_values);
!                             goto invalid;
!                           }
  
!                         need += strlen (sysdep_segment_values[sysdepref]);
!                       }
  
!                   memneed += need;
!                 }
  
!               /* Allocate additional memory.  */
!               mem = (char *) malloc (memneed);
!               if (mem == NULL)
!                 goto invalid;
  
!               domain->malloced = mem;
!               inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
!               mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
!               inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
!               mem += n_sysdep_strings * sizeof (struct sysdep_string_desc);
!               inmem_hash_tab = (nls_uint32 *) mem;
!               mem += domain->hash_size * sizeof (nls_uint32);
  
!               /* Compute the system dependent strings.  */
!               for (i = 0; i < 2 * n_sysdep_strings; i++)
!                 {
!                   const struct sysdep_string *sysdep_string =
!                     (const struct sysdep_string *)
!                     ((char *) data
!                      + W (domain->must_swap,
!                           i < n_sysdep_strings
!                           ? orig_sysdep_tab[i]
!                           : trans_sysdep_tab[i - n_sysdep_strings]));
!                   const char *static_segments =
!                     (char *) data
!                     + W (domain->must_swap, sysdep_string->offset);
!                   const struct segment_pair *p = sysdep_string->segments;
  
!                   /* Concatenate the segments, and fill
!                      inmem_orig_sysdep_tab[i] (for i < n_sysdep_strings) and
!                      inmem_trans_sysdep_tab[i-n_sysdep_strings] (for
!                      i >= n_sysdep_strings).  */
  
!                   if (W (domain->must_swap, p->sysdepref) == SEGMENTS_END)
                      {
!                       /* Only one static segment.  */
!                       inmem_orig_sysdep_tab[i].length =
!                         W (domain->must_swap, p->segsize);
!                       inmem_orig_sysdep_tab[i].pointer = static_segments;
                      }
!                   else
                      {
!                       inmem_orig_sysdep_tab[i].pointer = mem;
  
!                       for (p = sysdep_string->segments;; p++)
                          {
!                           nls_uint32 segsize =
!                             W (domain->must_swap, p->segsize);
!                           nls_uint32 sysdepref =
!                             W (domain->must_swap, p->sysdepref);
!                           size_t n;
  
!                           if (segsize > 0)
!                             {
!                               memcpy (mem, static_segments, segsize);
!                               mem += segsize;
!                               static_segments += segsize;
!                             }
  
!                           if (sysdepref == SEGMENTS_END)
!                             break;
  
!                           n = strlen (sysdep_segment_values[sysdepref]);
!                           memcpy (mem, sysdep_segment_values[sysdepref], n);
!                           mem += n;
                          }
  
!                       inmem_orig_sysdep_tab[i].length =
!                         mem - inmem_orig_sysdep_tab[i].pointer;
!                     }
!                 }
  
!               /* Compute the augmented hash table.  */
!               for (i = 0; i < domain->hash_size; i++)
!                 inmem_hash_tab[i] =
!                   W (domain->must_swap_hash_tab, domain->hash_tab[i]);
!               for (i = 0; i < n_sysdep_strings; i++)
!                 {
!                   const char *msgid = inmem_orig_sysdep_tab[i].pointer;
!                   nls_uint32 hash_val = hash_string (msgid);
!                   nls_uint32 idx = hash_val % domain->hash_size;
!                   nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
  
!                   for (;;)
                      {
!                       if (inmem_hash_tab[idx] == 0)
                          {
!                           /* Hash table entry is empty.  Use it.  */
!                           inmem_hash_tab[idx] = 1 + domain->nstrings + i;
!                           break;
!                         }
  
!                       if (idx >= domain->hash_size - incr)
!                         idx -= domain->hash_size - incr;
!                       else
!                         idx += incr;
                      }
-                 }
  
!               freea (sysdep_segment_values);
  
!               domain->n_sysdep_strings = n_sysdep_strings;
!               domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
!               domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
  
!               domain->hash_tab = inmem_hash_tab;
!               domain->must_swap_hash_tab = 0;
              }
            else
--- 1117,1361 ----
  
                /* Compute the amount of additional memory needed for the
!                  system dependent strings and the augmented hash table.
!                  At the same time, also drop string pairs which refer to
!                  an undefined system dependent segment.  */
!               n_inmem_sysdep_strings = 0;
!               memneed = domain->hash_size * sizeof (nls_uint32);
!               for (i = 0; i < n_sysdep_strings; i++)
                  {
!                   int valid = 1;
!                   size_t needs[2];
  
!                   for (j = 0; j < 2; j++)
!                     {
!                       const struct sysdep_string *sysdep_string =
!                         (const struct sysdep_string *)
!                         ((char *) data
!                          + W (domain->must_swap,
!                               j == 0
!                               ? orig_sysdep_tab[i]
!                               : trans_sysdep_tab[i]));
!                       size_t need = 0;
!                       const struct segment_pair *p = sysdep_string->segments;
  
!                       if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
!                         for (p = sysdep_string->segments;; p++)
                            {
!                             nls_uint32 sysdepref;
  
!                             need += W (domain->must_swap, p->segsize);
  
!                             sysdepref = W (domain->must_swap, p->sysdepref);
!                             if (sysdepref == SEGMENTS_END)
!                               break;
  
!                             if (sysdepref >= n_sysdep_segments)
!                               {
!                                 /* Invalid.  */
!                                 freea (sysdep_segment_values);
!                                 goto invalid;
!                               }
  
!                             if (sysdep_segment_values[sysdepref] == NULL)
!                               {
!                                 /* This particular string pair is invalid.  */
!                                 valid = 0;
!                                 break;
!                               }
  
!                             need += strlen (sysdep_segment_values[sysdepref]);
!                           }
  
!                       needs[j] = need;
!                       if (!valid)
!                         break;
!                     }
  
!                   if (valid)
                      {
!                       n_inmem_sysdep_strings++;
!                       memneed += needs[0] + needs[1];
                      }
!                 }
!               memneed += 2 * n_inmem_sysdep_strings
!                          * sizeof (struct sysdep_string_desc);
! 
!               if (n_inmem_sysdep_strings > 0)
!                 {
!                   unsigned int k;
! 
!                   /* Allocate additional memory.  */
!                   mem = (char *) malloc (memneed);
!                   if (mem == NULL)
!                     goto invalid;
! 
!                   domain->malloced = mem;
!                   inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
!                   mem += n_inmem_sysdep_strings
!                          * sizeof (struct sysdep_string_desc);
!                   inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
!                   mem += n_inmem_sysdep_strings
!                          * sizeof (struct sysdep_string_desc);
!                   inmem_hash_tab = (nls_uint32 *) mem;
!                   mem += domain->hash_size * sizeof (nls_uint32);
! 
!                   /* Compute the system dependent strings.  */
!                   k = 0;
!                   for (i = 0; i < n_sysdep_strings; i++)
                      {
!                       int valid = 1;
  
!                       for (j = 0; j < 2; j++)
                          {
!                           const struct sysdep_string *sysdep_string =
!                             (const struct sysdep_string *)
!                             ((char *) data
!                              + W (domain->must_swap,
!                                   j == 0
!                                   ? orig_sysdep_tab[i]
!                                   : trans_sysdep_tab[i]));
!                           const struct segment_pair *p =
!                             sysdep_string->segments;
  
!                           if (W (domain->must_swap, p->sysdepref)
!                               != SEGMENTS_END)
!                             for (p = sysdep_string->segments;; p++)
!                               {
!                                 nls_uint32 sysdepref;
  
!                                 sysdepref =
!                                   W (domain->must_swap, p->sysdepref);
!                                 if (sysdepref == SEGMENTS_END)
!                                   break;
  
!                                 if (sysdep_segment_values[sysdepref] == NULL)
!                                   {
!                                     /* This particular string pair is
!                                        invalid.  */
!                                     valid = 0;
!                                     break;
!                                   }
!                               }
! 
!                           if (!valid)
!                             break;
                          }
  
!                       if (valid)
!                         {
!                           for (j = 0; j < 2; j++)
!                             {
!                               const struct sysdep_string *sysdep_string =
!                                 (const struct sysdep_string *)
!                                 ((char *) data
!                                  + W (domain->must_swap,
!                                       j == 0
!                                       ? orig_sysdep_tab[i]
!                                       : trans_sysdep_tab[i]));
!                               const char *static_segments =
!                                 (char *) data
!                                 + W (domain->must_swap, 
sysdep_string->offset);
!                               const struct segment_pair *p =
!                                 sysdep_string->segments;
  
!                               /* Concatenate the segments, and fill
!                                  inmem_orig_sysdep_tab[k] (for j == 0) and
!                                  inmem_trans_sysdep_tab[k] (for j == 1).  */
  
!                               struct sysdep_string_desc *inmem_tab_entry =
!                                 (j == 0
!                                  ? inmem_orig_sysdep_tab
!                                  : inmem_trans_sysdep_tab)
!                                 + k;
! 
!                               if (W (domain->must_swap, p->sysdepref)
!                                   == SEGMENTS_END)
!                                 {
!                                   /* Only one static segment.  */
!                                   inmem_tab_entry->length =
!                                     W (domain->must_swap, p->segsize);
!                                   inmem_tab_entry->pointer = static_segments;
!                                 }
!                               else
!                                 {
!                                   inmem_tab_entry->pointer = mem;
! 
!                                   for (p = sysdep_string->segments;; p++)
!                                     {
!                                       nls_uint32 segsize =
!                                         W (domain->must_swap, p->segsize);
!                                       nls_uint32 sysdepref =
!                                         W (domain->must_swap, p->sysdepref);
!                                       size_t n;
! 
!                                       if (segsize > 0)
!                                         {
!                                           memcpy (mem, static_segments, 
segsize);
!                                           mem += segsize;
!                                           static_segments += segsize;
!                                         }
! 
!                                       if (sysdepref == SEGMENTS_END)
!                                         break;
! 
!                                       n = strlen 
(sysdep_segment_values[sysdepref]);
!                                       memcpy (mem, 
sysdep_segment_values[sysdepref], n);
!                                       mem += n;
!                                     }
! 
!                                   inmem_tab_entry->length =
!                                     mem - inmem_tab_entry->pointer;
!                                 }
!                             }
! 
!                           k++;
!                         }
!                     }
!                   if (k != n_inmem_sysdep_strings)
!                     abort ();
! 
!                   /* Compute the augmented hash table.  */
!                   for (i = 0; i < domain->hash_size; i++)
!                     inmem_hash_tab[i] =
!                       W (domain->must_swap_hash_tab, domain->hash_tab[i]);
!                   for (i = 0; i < n_inmem_sysdep_strings; i++)
                      {
!                       const char *msgid = inmem_orig_sysdep_tab[i].pointer;
!                       nls_uint32 hash_val = hash_string (msgid);
!                       nls_uint32 idx = hash_val % domain->hash_size;
!                       nls_uint32 incr =
!                         1 + (hash_val % (domain->hash_size - 2));
! 
!                       for (;;)
                          {
!                           if (inmem_hash_tab[idx] == 0)
!                             {
!                               /* Hash table entry is empty.  Use it.  */
!                               inmem_hash_tab[idx] = 1 + domain->nstrings + i;
!                               break;
!                             }
  
!                           if (idx >= domain->hash_size - incr)
!                             idx -= domain->hash_size - incr;
!                           else
!                             idx += incr;
!                         }
                      }
  
!                   domain->n_sysdep_strings = n_inmem_sysdep_strings;
!                   domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
!                   domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
  
!                   domain->hash_tab = inmem_hash_tab;
!                   domain->must_swap_hash_tab = 0;
!                 }
!               else
!                 {
!                   domain->n_sysdep_strings = 0;
!                   domain->orig_sysdep_tab = NULL;
!                   domain->trans_sysdep_tab = NULL;
!                 }
  
!               freea (sysdep_segment_values);
              }
            else

Index: locale.alias
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/locale.alias,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** locale.alias        6 Dec 2003 01:47:53 -0000       1.1
--- locale.alias        5 Feb 2004 16:48:34 -0000       1.2
***************
*** 1,4 ****
  # Locale name alias data base.
! # Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify it
--- 1,4 ----
  # Locale name alias data base.
! # Copyright (C) 1996-2001,2003 Free Software Foundation, Inc.
  #
  # This program is free software; you can redistribute it and/or modify it
***************
*** 30,35 ****
  # Packages using this file: 
  
! bokmal                no_NO.ISO-8859-1
! bokmål                no_NO.ISO-8859-1
  catalan               ca_ES.ISO-8859-1
  croatian      hr_HR.ISO-8859-2
--- 30,35 ----
  # Packages using this file: 
  
! bokmal                nb_NO.ISO-8859-1
! bokmål                nb_NO.ISO-8859-1
  catalan               ca_ES.ISO-8859-1
  croatian      hr_HR.ISO-8859-2
***************
*** 62,68 ****
  ko_KR         ko_KR.eucKR
  lithuanian      lt_LT.ISO-8859-13
! nb_NO         no_NO.ISO-8859-1
! nb_NO.ISO-8859-1 no_NO.ISO-8859-1
! norwegian       no_NO.ISO-8859-1
  nynorsk               nn_NO.ISO-8859-1
  polish          pl_PL.ISO-8859-2
--- 62,68 ----
  ko_KR         ko_KR.eucKR
  lithuanian      lt_LT.ISO-8859-13
! no_NO         nb_NO.ISO-8859-1
! no_NO.ISO-8859-1 nb_NO.ISO-8859-1
! norwegian       nb_NO.ISO-8859-1
  nynorsk               nn_NO.ISO-8859-1
  polish          pl_PL.ISO-8859-2

Index: localename.c
===================================================================
RCS file: /cvsroot/texinfo/texinfo/intl/localename.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** localename.c        21 Dec 2003 00:26:16 -0000      1.3
--- localename.c        5 Feb 2004 16:48:34 -0000       1.4
***************
*** 1,4 ****
  /* Determine the current selected locale.
!    Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
--- 1,4 ----
  /* Determine the current selected locale.
!    Copyright (C) 1995-1999, 2000-2004 Free Software Foundation, Inc.
  
     This program is free software; you can redistribute it and/or modify it
***************
*** 846,850 ****
      case LANG_CZECH: return "cs_CZ";
      case LANG_DANISH: return "da_DK";
!     case LANG_DIVEHI: return "div_MV";
      case LANG_DUTCH:
        switch (sub)
--- 846,850 ----
      case LANG_CZECH: return "cs_CZ";
      case LANG_DANISH: return "da_DK";
!     case LANG_DIVEHI: return "dv_MV";
      case LANG_DUTCH:
        switch (sub)
***************
*** 907,911 ****
        return "fr";
      case LANG_FRISIAN: return "fy_NL";
!     case LANG_FULFULDE: return "ful_NG";
      case LANG_GAELIC:
        switch (sub)
--- 907,913 ----
        return "fr";
      case LANG_FRISIAN: return "fy_NL";
!     case LANG_FULFULDE:
!       /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
!       return "ff_NG";
      case LANG_GAELIC:
        switch (sub)
***************
*** 940,944 ****
      case LANG_IBIBIO: return "nic_NG";
      case LANG_ICELANDIC: return "is_IS";
!     case LANG_IGBO: return "ibo_NG";
      case LANG_INDONESIAN: return "id_ID";
      case LANG_INUKTITUT: return "iu_CA";
--- 942,946 ----
      case LANG_IBIBIO: return "nic_NG";
      case LANG_ICELANDIC: return "is_IS";
!     case LANG_IGBO: return "ig_NG";
      case LANG_INDONESIAN: return "id_ID";
      case LANG_INUKTITUT: return "iu_CA";
***************
*** 952,956 ****
      case LANG_JAPANESE: return "ja_JP";
      case LANG_KANNADA: return "kn_IN";
!     case LANG_KANURI: return "kau_NG";
      case LANG_KASHMIRI:
        switch (sub)
--- 954,958 ----
      case LANG_JAPANESE: return "ja_JP";
      case LANG_KANNADA: return "kn_IN";
!     case LANG_KANURI: return "kr_NG";
      case LANG_KASHMIRI:
        switch (sub)
***************
*** 1126,1135 ****
        }
        return "uz";
!     case LANG_VENDA:
!       /* FIXME: It's not clear whether Venda has the ISO 639-2 two-letter code
!        "ve" or not.
!        http://www.loc.gov/standards/iso639-2/englangn.html has it, but
!        http://lcweb.loc.gov/standards/iso639-2/codechanges.html doesn't,  */
!       return "ven_ZA"; /* or "ve_ZA"? */
      case LANG_VIETNAMESE: return "vi_VN";
      case LANG_WELSH: return "cy_GB";
--- 1128,1132 ----
        }
        return "uz";
!     case LANG_VENDA: return "ve_ZA";
      case LANG_VIETNAMESE: return "vi_VN";
      case LANG_WELSH: return "cy_GB";



reply via email to

[Prev in Thread] Current Thread [Next in Thread]