[Anthy-dev 1859] Re: uim-0.4.6alpha on Solaris8

アーカイブの一覧に戻る

Masanari Yamamoto h0131****@ice*****
2005年 2月 17日 (木) 21:37:45 JST


山本です。

On Thu, Feb 17, 2005 at 07:26:10PM +0900, Etsushi Kato wrote:
> On Thu, Feb 17, 2005 at 04:53:21PM +0900,
> Takuro Ashie <ashie****@homa*****> wrote:
> 
> > libcharsetのlocale_charset()相当の関数をuim内に持つというのも一つの手で
> > すが、0.4.6ではとりあえずlibiconvをインストールしてもらうのが良いのでは
> > ないかと思います。
> 
> http://www.openi18n.org/subgroups/sa/locnameguide/final/CodesetAliasTable.html
> の table を使って、適当に仕組みを作ってみました (全部使う必要はなかっ
> たような気もしますけど…)。
> 
> uim_iconv_open() で、 encoding の alias 名をいろいろ使って iconv_open
> を試す、というようになっています。Solaris9 のシステム iconv でも動くよ
> うになったと思います。

エンコーディング名はstrcasecmpで比較した方がいいかもしれません。例えば、
SolarisのSHIFT_JISはPCKですが、uim-encoding.hにはpckしかありません。

*** uim-func.orig       2005-02-17 20:54:03.000000000 +0900
--- uim-func.c  2005-02-17 21:14:16.000000000 +0900
***************
*** 254,260 ****

    for (i = 0; alias_tocode[i]; i++) {
      for (j = 0; alias_fromcode[j]; j++) {
!       if (!strcmp(alias_tocode[i], alias_fromcode[j])) {
          found = 1;
        break;
        }
--- 254,260 ----

    for (i = 0; alias_tocode[i]; i++) {
      for (j = 0; alias_fromcode[j]; j++) {
!       if (!strcasecmp(alias_tocode[i], alias_fromcode[j])) {
          found = 1;
        break;
        }
***************
*** 294,300 ****

    for (i = 0; (alias = uim_encoding_list[i]); i++) {
      for (j = 0; alias[j]; j++) {
!       if (!strcmp(alias[j], encoding))
          return alias;
      }
    }
--- 294,300 ----

    for (i = 0; (alias = uim_encoding_list[i]); i++) {
      for (j = 0; alias[j]; j++) {
!       if (!strcasecmp(alias[j], encoding))
          return alias;
      }
    }

-- 
山本将也



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る