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

[debian-devel:07550] Re: Bug#JP/794: Wchar incompatibility between glibc2 and Xlib



  吉山@目黒です。
  誰か下記の件を確認できますか?

From: watanaru@xxxxxxxxxxxxxxxx
Subject: Bug#JP/794: Wchar incompatibility between glibc2 and Xlib
Date: Sat, 27 Feb 1999 12:42:01 +0900

> Package: wcsmbs-locale
> Version: 0.4.1
> 
> 
> ○ Netscape のフォームとワイド文字
> 
> Netscape のフォーム内の一行入力欄 (Motif) で日本語の表示が化けるのは 
> libc 側と Xlib 側でワイド文字の表現方法が違っているからです。現行の 
> libc (glibc2.0.7 + wcsmbs-locale) の mbtowc()などでワイド文字を作ると、
> その表現法は UCS (ユニコード) になりますが、Xlib では Xlib 独自の表現
> 法を使っているので、libc の関数を使って作ったワイド文字を Xlib のテキ
> スト描画関数などに渡しても Xlib では適切に解釈することができません。
> そこで私は Xlib が理解することのできる形式でワイド文字を作れる
> wcsmbs.so ライブラリを作って使っています。
> 
> 
> ○ Debian 2.0 と X Window System
> 
> この X 用ライブラリを使うには、基本的にはこのレポートに添付のソースを
> コンパイルしてインストールするだけでよいのですが、Debian2.0 の場合、X 
> Window System が「X_LOCALE が定義された」状態でコンパイルされているの
> で、このままだとうまく作動しません。
> X_LOCALE が定義されていると、Xlib は setlocale() のかわりに 
> _Xsetlocale() を使うようにコンパイルされてしまいます。何かのアプリケー
> ションを実行させた場合を考えてみると、アプリケーションは setlocale() 
> を使ってロケール設定をしているのに、Xlib 内の関数は、_Xsetlocale() を
> 使って現在のロケール設定を知ろうとするというような状況になります。
> _Xsetlocale() と setlocale() とは何のつながりもないので (そもそも 
> _Xsetlocale() は setlocale() を持っていないシステムのために用意されて
> いるもので、両方存在するのは変です)、アプリケーションが setlocale() 
> を使ってどんなロケール設定をしようと、_Xsetlocale() が持っているロケー
> ル情報はつねにデフォルトのまま ("C" ロケール、つまり英語) になります。
> つまり環境変数 "LANG" を "ja_JP.ujis" に設定しても、Xlib 側は英語のま
> まのふるまいになってしまいます。例えば Netscape で日本語メニューを使
> うリソース設定にしても半角文字しか表示されず、全角文字は X に無視され
> てしまうのはこのためです。Netscape の場合、Debian の netscape4-ja パッ
> ケージなどに入っている liblocale.so を使うと、このメニュー等の日本語
> 化の問題は解決しますが、この場合、ロケール設定が libc 側には反映され
> なくなるので、libc 側のふるまいが英語になってしまいます (ワイド文字関
> 係のところはユニコードになります。liblocale.so 内の setlocale() が使
> われるようになるので、適切な wcsmbs.so がロードされないからです)。
> しょうがないので、私は X_LOCALE をはずした状態で、X をコンパイルしな
> おして使用しています。

1)Debian の X って X_LOCALE 付でコンパイルされています?

  もしそうだったら大変だ。

2)X って libc のワイド文字のエンコーディングに依存します?

  私にはマルチプラットホームの X が、libc のワイド文字のエンコーディン
  グに特に依存しているとは思えないのですが (もし依存するなら、全てのプ
  ラットホームの libc は同じエンコーディングをワイド文字に採用しないと
  いけない)

---
   Name: 吉山あきら  Akira Yoshiyama
   E-mail: yosshy@debian.or.jp  (runlevel1@xxxxxxxxxxxxxxxxx)