diff -crN ./gettext/lib/config.charset /users3/olivap/sb/p64/src/./gettext/lib/config.charset
*** ./gettext/lib/config.charset	Tue Jul  3 14:27:58 2001
--- /users3/olivap/sb/p64/src/./gettext/lib/config.charset	Mon Oct  7 11:33:24 2002
***************
*** 1,7 ****
  #! /bin/sh
  # Output a system dependent table of character encoding aliases.
  #
! #   Copyright (C) 2000-2001 Free Software Foundation, Inc.
  #
  #   This program is free software; you can redistribute it and/or modify it
  #   under the terms of the GNU Library General Public License as published
--- 1,7 ----
  #! /bin/sh
  # Output a system dependent table of character encoding aliases.
  #
! #   Copyright (C) 2000-2002 Free Software Foundation, Inc.
  #
  #   This program is free software; you can redistribute it and/or modify it
  #   under the terms of the GNU Library General Public License as published
***************
*** 34,40 ****
  #   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                                     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
--- 34,40 ----
  #   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
***************
*** 42,50 ****
--- 42,52 ----
  #   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
***************
*** 58,92 ****
  #   CP865                     dos
  #   CP866                     freebsd dos
  #   CP869                     dos
! #   CP874                     win32 dos
  #   CP922                     aix
! #   CP932                     aix win32 dos
  #   CP943                     aix
! #   CP949                     osf win32 dos
! #   CP950                     win32 dos
  #   CP1046                    aix
  #   CP1124                    aix
  #   CP1129                    aix
! #   CP1250                    win32
! #   CP1251                    glibc win32
! #   CP1252                    aix win32
! #   CP1253                    win32
! #   CP1254                    win32
! #   CP1255                    win32
! #   CP1256                    win32
! #   CP1257                    win32
  #   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
! #   GBK                       aix osf win32 dos
! #   GB18030                   glibc
  #   SHIFT_JIS                 hpux osf solaris freebsd                  yes
! #   JOHAB                     glibc win32
  #   TIS-620                   glibc aix hpux osf solaris
  #   VISCII                    glibc                                     yes
  #   HP-ROMAN8                 hpux
  #   HP-ARABIC8                hpux
  #   HP-GREEK8                 hpux
--- 60,97 ----
  #   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 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
***************
*** 127,142 ****
--- 132,178 ----
      aix*)
  	echo "ISO8859-1 ISO-8859-1"
  	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-3 ISO-8859-3"
+ 	echo "ISO8859-4 ISO-8859-4"
  	echo "ISO8859-5 ISO-8859-5"
  	echo "ISO8859-6 ISO-8859-6"
  	echo "ISO8859-7 ISO-8859-7"
  	echo "ISO8859-8 ISO-8859-8"
  	echo "ISO8859-9 ISO-8859-9"
  	echo "ISO8859-15 ISO-8859-15"
+ 	echo "IBM-037 CP037"
+ 	echo "IBM-1026 CP1026"
+ 	echo "IBM-1046 CP1046"
+ 	echo "IBM-1124 CP1124"
+ 	echo "IBM-1129 CP1129"
+ 	echo "IBM-1252 CP1252"
+ 	echo "IBM-273 CP273"
+ 	echo "IBM-278 CP278"
+ 	echo "IBM-280 CP280"
+ 	echo "IBM-284 CP284"
+ 	echo "IBM-285 CP285"
+ 	echo "IBM-290 CP290"
+ 	echo "IBM-297 CP297"
+ 	echo "IBM-437 CP437"
+ 	echo "IBM-500 CP500"
  	echo "IBM-850 CP850"
+ 	echo "IBM-852 CP852"
  	echo "IBM-856 CP856"
+ 	echo "IBM-857 CP857"
+ 	echo "IBM-860 CP860"
+ 	echo "IBM-861 CP861"
+ 	echo "IBM-863 CP863"
+ 	echo "IBM-865 CP865"
+ 	echo "IBM-869 CP869"
+ 	echo "IBM-875 CP875"
  	echo "IBM-921 ISO-8859-13"
  	echo "IBM-922 CP922"
+ 	echo "IBM-930 CP930"
+ 	echo "IBM-932 CP932"
+ 	echo "IBM-933 CP933"
+ 	echo "IBM-935 CP935"
+ 	echo "IBM-936 CP936"
+ 	echo "IBM-922 CP922"
  	echo "IBM-932 CP932"
  	echo "IBM-943 CP943"
  	echo "IBM-1046 CP1046"
***************
*** 151,156 ****
--- 187,193 ----
  	echo "GBK GBK"
  	echo "TIS-620 TIS-620"
  	echo "UTF-8 UTF-8"
+ 	echo "UCS-2 UCS-2"
  	;;
      hpux*)
  	echo "iso88591 ISO-8859-1"
***************
*** 217,222 ****
--- 254,260 ----
  	echo "646 ASCII"
  	echo "ISO8859-1 ISO-8859-1"
  	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-3 ISO-8859-3"
  	echo "ISO8859-4 ISO-8859-4"
  	echo "ISO8859-5 ISO-8859-5"
  	echo "ISO8859-6 ISO-8859-6"
***************
*** 226,244 ****
  	echo "ISO8859-15 ISO-8859-15"
  	echo "koi8-r KOI8-R"
  	echo "BIG5 BIG5"
  	echo "gb2312 GB2312"
  	echo "cns11643 EUC-TW"
  	echo "5601 EUC-KR"
  	echo "eucJP EUC-JP"
  	echo "PCK SHIFT_JIS"
  	echo "TIS620.2533 TIS-620"
  	#echo "sun_eu_greek ?" # what is this?
  	echo "UTF-8 UTF-8"
  	;;
!     freebsd*)
  	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
  	# localcharset.c falls back to using the full locale name
  	# from the environment variables.
  	echo "C ASCII"
  	echo "US-ASCII ASCII"
  	for l in la_LN lt_LN; do
--- 264,288 ----
  	echo "ISO8859-15 ISO-8859-15"
  	echo "koi8-r KOI8-R"
  	echo "BIG5 BIG5"
+ 	echo "Big5-HKSCS BIG5-HKSCS"
  	echo "gb2312 GB2312"
+ 	echo "GBK GBK"
+ 	echo "GB18030 GB18030"
  	echo "cns11643 EUC-TW"
  	echo "5601 EUC-KR"
+ 	echo "ko_KR.johap92 JOHAB"
  	echo "eucJP EUC-JP"
  	echo "PCK SHIFT_JIS"
  	echo "TIS620.2533 TIS-620"
  	#echo "sun_eu_greek ?" # what is this?
  	echo "UTF-8 UTF-8"
  	;;
!     freebsd* | os2*)
  	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
  	# localcharset.c falls back to using the full locale name
  	# from the environment variables.
+ 	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+ 	# reuse FreeBSD's locale data for OS/2.
  	echo "C ASCII"
  	echo "US-ASCII ASCII"
  	for l in la_LN lt_LN; do
***************
*** 270,275 ****
--- 314,333 ----
  	echo "ja_JP.Shift_JIS SHIFT_JIS"
  	echo "ko_KR.EUC EUC-KR"
  	;;
+     netbsd*)
+ 	echo "646 ASCII"
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-4 ISO-8859-4"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	echo "eucCN GB2312"
+ 	echo "eucJP EUC-JP"
+ 	echo "eucKR EUC-KR"
+ 	echo "eucTW EUC-TW"
+ 	echo "BIG5 BIG5"
+ 	echo "SJIS SHIFT_JIS"
+ 	;;
      beos*)
  	# BeOS has a single locale, and it has UTF-8 encoding.
  	echo "* UTF-8"
***************
*** 284,290 ****
  	echo "# country is not the one your DOS machine actually uses, just"
  	echo "# correct it in this file, and send a mail to"
  	echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
! 	echo "# and Bruno Haible <haible@clisp.cons.org>."
  	echo "#"
  	echo "C ASCII"
  	# ISO-8859-1 languages
--- 342,348 ----
  	echo "# country is not the one your DOS machine actually uses, just"
  	echo "# correct it in this file, and send a mail to"
  	echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
! 	echo "# and Bruno Haible <bruno@clisp.org>."
  	echo "#"
  	echo "C ASCII"
  	# ISO-8859-1 languages
***************
*** 394,401 ****
  	echo "bg_BG CP866" # not CP855 ??
  	echo "mk CP866"    # not CP855 ??
  	echo "mk_MK CP866" # not CP855 ??
! 	echo "ru KOI8-R"    # not CP866 ??
! 	echo "ru_RU KOI8-R" # not CP866 ??
  	# ISO-8859-6 languages
  	echo "ar CP864"
  	echo "ar_AE CP864"
--- 452,461 ----
  	echo "bg_BG CP866" # not CP855 ??
  	echo "mk CP866"    # not CP855 ??
  	echo "mk_MK CP866" # not CP855 ??
! 	echo "ru CP866"
! 	echo "ru_RU CP866"
! 	echo "uk CP1125"
! 	echo "uk_UA CP1125"
  	# ISO-8859-6 languages
  	echo "ar CP864"
  	echo "ar_AE CP864"
diff -crN ./gettext/lib/linebreak.h /users3/olivap/sb/p64/src/./gettext/lib/linebreak.h
*** ./gettext/lib/linebreak.h	Wed Apr  4 15:32:22 2001
--- /users3/olivap/sb/p64/src/./gettext/lib/linebreak.h	Wed Nov 20 19:44:59 2002
***************
*** 35,41 ****
--- 35,46 ----
  /* These functions are locale dependent.  The encoding argument identifies
     the encoding (e.g. "ISO-8859-2" for Polish).  */
  
+ /* Return the local alias encoding for a GNU charset name.  */
+ 
+ extern const char * get_locale_charset(char * generic_charset);
+ 
  /* Return the encoding of the current locale.  */
+ 
  extern const char * locale_charset PARAMS ((void));
  
  /* Determine number of column positions required for UC. */
diff -crN ./gettext/lib/localcharset.c /users3/olivap/sb/p64/src/./gettext/lib/localcharset.c
*** ./gettext/lib/localcharset.c	Mon Apr 30 13:11:29 2001
--- /users3/olivap/sb/p64/src/./gettext/lib/localcharset.c	Wed Nov 20 19:44:01 2002
***************
*** 190,195 ****
--- 190,221 ----
    return cp;
  }
  
+ const char * 
+ get_locale_charset(char * generic_charset)
+ {
+   const char *aliases;
+ 
+   const char *local_charset;
+   const char *gnu_charset;
+ 
+   /* Resolve alias. */
+ 
+   for (aliases = get_charset_aliases ();
+        *aliases != '\0';
+        aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+   {
+     local_charset = aliases;
+     gnu_charset = aliases + strlen (aliases) + 1;
+ 
+     if (strcmp (generic_charset, gnu_charset) == 0)
+       {
+ 	return local_charset;
+       }
+   }
+ 
+   return generic_charset;
+ }
+ 
  /* Determine the current locale's character encoding, and canonicalize it
     into one of the canonical names listed in config.charset.
     The result must not be freed; it is statically allocated.
***************
*** 204,209 ****
--- 230,237 ----
  {
    const char *codeset;
    const char *aliases;
+   const char *local_charset;
+   const char *gnu_charset;
  
  #ifndef WIN32
  
***************
*** 260,271 ****
    for (aliases = get_charset_aliases ();
         *aliases != '\0';
         aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
!     if (strcmp (codeset, aliases) == 0
! 	|| (aliases[0] == '*' && aliases[1] == '\0'))
        {
! 	codeset = aliases + strlen (aliases) + 1;
  	break;
        }
  
    return codeset;
  }
--- 288,304 ----
    for (aliases = get_charset_aliases ();
         *aliases != '\0';
         aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
!   {
!     local_charset = aliases;
!     gnu_charset = aliases + strlen (aliases) + 1;
! 
!     if (strcmp (codeset, local_charset) == 0
! 	|| (local_charset[0] == '*' && local_charset[1] == '\0'))
        {
! 	codeset = gnu_charset;
  	break;
        }
+   }
  
    return codeset;
  }
diff -crN ./gettext/src/po.c /users3/olivap/sb/p64/src/./gettext/src/po.c
*** ./gettext/src/po.c	Wed Apr 18 22:26:14 2001
--- /users3/olivap/sb/p64/src/./gettext/src/po.c	Wed Nov 20 19:46:19 2002
***************
*** 26,31 ****
--- 26,32 ----
  #include <stdio.h>
  #include <stdlib.h>
  
+ #include "linebreak.h"
  #include "po.h"
  #include "po-hash.h"
  #include "system.h"
***************
*** 356,362 ****
  		    po_lex_iconv = (iconv_t)(-1);
  		  else
  # endif
! 		  po_lex_iconv = iconv_open ("UTF-8", po_lex_charset);
  		  if (po_lex_iconv == (iconv_t)(-1))
  		    {
  		      const char *note;
--- 357,363 ----
  		    po_lex_iconv = (iconv_t)(-1);
  		  else
  # endif
! 		  po_lex_iconv = iconv_open ("UTF-8", get_locale_charset(po_lex_charset));
  		  if (po_lex_iconv == (iconv_t)(-1))
  		    {
  		      const char *note;
diff -crN ./gettext/src/write-po.c /users3/olivap/sb/p64/src/./gettext/src/write-po.c
*** ./gettext/src/write-po.c	Wed May 23 21:38:28 2001
--- /users3/olivap/sb/p64/src/./gettext/src/write-po.c	Wed Nov 20 19:46:23 2002
***************
*** 218,224 ****
      else
  # endif
      /* Use iconv() to parse multibyte characters.  */
!     conv = iconv_open ("UTF-8", charset);
  #endif
  
    /* Loop over the '\n' delimited portions of value.  */
--- 218,224 ----
      else
  # endif
      /* Use iconv() to parse multibyte characters.  */
!     conv = iconv_open ("UTF-8", get_locale_charset(charset));
  #endif
  
    /* Loop over the '\n' delimited portions of value.  */
