Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Mar 2002 22:53:10 +0200
From:      Maxim Sobolev <sobomax@FreeBSD.org>
To:        SASAKI Katuhiro <sahiro@crest.ocn.ne.jp>
Cc:        gnome@FreeBSD.org, ports@FreeBSD.org
Subject:   Re: The libcharset library does not know some locales.
Message-ID:  <3C8D1936.999662C8@FreeBSD.org>
References:  <3c88cd22.6664%sahiro@crest.ocn.ne.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
Could you please submit your patch to libiconv developers instead
(Bruno Haible <haible@clisp.cons.org>), because it is clearly not
FreeBSD specific. This would be a much better way to get it integrated
into the tree.

Thank you!

-Maxim

SASAKI Katuhiro wrote:
> 
> Hi.
> 
> I found that locale_charset() function in libcharset library (which is
> provided by converters/libiconv) does not know "ja_JP.eucJP",
> "ko_KR.eucKR" and "zh_CN.eucCN".
> I attach a small code for test and a patch.
> 
> To confirm this problem, please compile below code with -lcharset and
> run it under latest 4.5-STABLE. If locale_charset() knows ja_JP.eucJP",
> this small program must return "EUC-JP". But it will return
> "ja_JP.eucJP". This result is bad.
> 
> libcharsettest.c:
> #include <stdio.h>
> #include <stdlib.h>
> #include <locale.h>
> 
> #include <libcharset.h>
> 
> int main()
> {
>         char* encoding;
> 
>         setenv("LANG", "ja_JP.eucJP", 1);
>         setlocale(LC_CTYPE, "");
>         encoding = locale_charset();
> 
>         if (encoding) {
>                 printf("%s%s\n", "return value is ", encoding);
>         } else {
>                 printf("%s\n", "return value is null");
>         }
> 
>         return 0;
> }
> 
> Applying a patch to below the skeleton of converters/libiconv will fix
> this problem, I think. Please test and review.
> 
> Thank you for reading this message.
> 
> diff -urN /usr/ports/converters/libiconv/files/patch-ae libiconv/files/patch-ae
> --- /usr/ports/converters/libiconv/files/patch-ae       Mon Aug 27 23:11:27 2001
> +++ libiconv/files/patch-ae     Thu Feb 28 22:17:23 2002
> @@ -1,8 +1,8 @@
> 
>  $FreeBSD: ports/converters/libiconv/files/patch-ae,v 1.4 2001/08/27 09:39:53 sobomax Exp $
> 
> ---- libcharset/lib/Makefile.in.orig    Thu Jun 28 01:56:56 2001
> -+++ libcharset/lib/Makefile.in Mon Aug 27 12:32:43 2001
> +--- libcharset/lib/Makefile.in.orig    Thu Jun 28 07:56:56 2001
> ++++ libcharset/lib/Makefile.in Thu Feb 28 21:58:05 2002
>  @@ -10,6 +10,7 @@
>   local_prefix = /usr/local
>   exec_prefix = @exec_prefix@
> @@ -29,24 +29,24 @@
> 
>   charset.alias: $(srcdir)/config.charset
>         $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
> -@@ -72,11 +73,12 @@
> +@@ -72,11 +73,11 @@
>   install-lib : all force
>         $(MKINSTALLDIRS) $(libdir)
>         $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcharset.la $(libdir)/libcharset.la
>  -      test -f $(libdir)/charset.alias && orig=$(libdir)/charset.alias \
> -+      $(MKINSTALLDIRS) $(sysconfdir)
> -+      test -f $(sysconfdir)/charset.alias && orig=$(sysconfdir)/charset.alias \
> -                                       || orig=charset.alias; \
> +-                                      || orig=charset.alias; \
>  -      sed -f ref-add.sed $$orig > $(libdir)/t-charset.alias; \
>  -      $(INSTALL_DATA) $(libdir)/t-charset.alias $(libdir)/charset.alias; \
>  -      rm -f $(libdir)/t-charset.alias
> ++      $(MKINSTALLDIRS) $(sysconfdir)
> ++      orig=charset.alias; \
>  +      sed -f ref-add.sed $$orig > $(sysconfdir)/t-charset.alias; \
>  +      $(INSTALL_DATA) $(sysconfdir)/t-charset.alias $(sysconfdir)/charset.alias; \
>  +      rm -f $(sysconfdir)/t-charset.alias
> 
>   # The following is needed in order to install a simple file in $(libdir)
>   # which is shared with other installed packages. We use a list of referencing
> -@@ -88,15 +90,16 @@
> +@@ -88,16 +89,11 @@
>   install : all force
>         $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
>         $(LIBTOOL_INSTALL) $(INSTALL_DATA) libcharset.la $(DESTDIR)$(libdir)/libcharset.la
> @@ -54,19 +54,17 @@
>  -        sed -f ref-add.sed $(DESTDIR)$(libdir)/charset.alias > $(DESTDIR)$(libdir)/t-charset.alias; \
>  -        $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias $(DESTDIR)$(libdir)/charset.alias; \
>  -        rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
> -+      $(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)
> -+      if test -f $(DESTDIR)$(sysconfdir)/charset.alias; then \
> -+        sed -f ref-add.sed $(DESTDIR)$(sysconfdir)/charset.alias > $(DESTDIR)$(sysconfdir)/t-charset.alias; \
> -+        $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/t-charset.alias $(DESTDIR)$(sysconfdir)/charset.alias; \
> -+        rm -f $(DESTDIR)$(sysconfdir)/t-charset.alias; \
> -       else \
> -         if test @GLIBC21@ = no; then \
> +-      else \
> +-        if test @GLIBC21@ = no; then \
>  -          sed -f ref-add.sed charset.alias > $(DESTDIR)$(libdir)/t-charset.alias; \
>  -          $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias $(DESTDIR)$(libdir)/charset.alias; \
>  -          rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
> -+          sed -f ref-add.sed charset.alias > $(DESTDIR)$(sysconfdir)/t-charset.alias; \
> -+          $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/t-charset.alias $(DESTDIR)$(sysconfdir)/charset.alias; \
> -+          rm -f $(DESTDIR)$(sysconfdir)/t-charset.alias; \
> -         fi ; \
> +-        fi ; \
> ++      $(MKINSTALLDIRS) $(DESTDIR)$(sysconfdir)
> ++      if test @GLIBC21@ = no; then \
> ++        sed -f ref-add.sed charset.alias > $(DESTDIR)$(sysconfdir)/t-charset.alias; \
> ++        $(INSTALL_DATA) $(DESTDIR)$(sysconfdir)/t-charset.alias $(DESTDIR)$(sysconfdir)/charset.alias; \
> ++        rm -f $(DESTDIR)$(sysconfdir)/t-charset.alias; \
>         fi
> 
> + installdirs : force
> diff -urN /usr/ports/converters/libiconv/files/patch-libcharset::lib::config.charset libiconv/files/patch-libcharset::lib::config.charset
> --- /usr/ports/converters/libiconv/files/patch-libcharset::lib::config.charset  Thu Jan  1 09:00:00 1970
> +++ libiconv/files/patch-libcharset::lib::config.charset        Thu Feb 28 22:18:48 2002
> @@ -0,0 +1,18 @@
> +$FreeBSD$
> +
> +--- libcharset/lib/config.charset.orig Mon Jun 25 21:01:22 2001
> ++++ libcharset/lib/config.charset      Thu Feb 28 21:27:15 2002
> +@@ -264,10 +264,13 @@
> +       echo "uk_UA.KOI8-U KOI8-U"
> +       echo "zh_TW.BIG5 BIG5"
> +       echo "zh_TW.Big5 BIG5"
> ++      echo "zh_CN.eucCN GB2312"
> +       echo "zh_CN.EUC GB2312"
> ++      echo "ja_JP.eucJP EUC-JP"
> +       echo "ja_JP.EUC EUC-JP"
> +       echo "ja_JP.SJIS SHIFT_JIS"
> +       echo "ja_JP.Shift_JIS SHIFT_JIS"
> ++      echo "ko_KR.eucKR EUC-KR"
> +       echo "ko_KR.EUC EUC-KR"
> +       ;;
> +     beos*)
> 
> --
>                        SASAKI Katuhiro
> 
>                 mailto: sahiro@crest.ocn.ne.jp
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-gnome" in the body of the message

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-gnome" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C8D1936.999662C8>