[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: clipboard and bitmap



;; 開発ネタですので、 meadow-develop にも振ります。

>>>>> meadow-users-jp の No. 1752
>>>>> Message-Id: <199912151219.VAA08621@xxxxxxxxxxxxxxxxx> で、
>>>>> "Shin" == Shin Miyazaki <shinm@xxxxxxxxx>さま曰く...

>> Meadow では、 clipboard に入れるときに w32-clipboard-coding-system に指
>> 定された charset に encode しますが、 bitmap-mule が定義した、 charset
>> は当然のことながら、 Shift_JIS に全うに encode することはできません。

Shin> encode 出来ないものはクリップボードに出さなくていいように思うので
Shin> すが、どんなものでしょう。

今のところ、 w32-clipboard-coding-system で encode できたかどうかを判定
する方法がありませんので、これをやるのは結構面倒だと思います。

w32-set-clipboard-data を再定義してしまえばできなくもなさそうですが、そ
うすると Meadow to Meadow のルートでも、 Shift_JIS に encode できないも
のがコピーできなくなってしまうと思いますので、なかなか悩ましいところです。

そこで、案なのですが...

1. w32-clipboard-coding-system を default coding system 扱いに、または 
   w32-default-clipboard-coding-system を新設する。
   また、 w32-clipboard-select-safe-coding-system-function を新設し、 
   clipboard へ設定するデータの encode 時には 
   select-safe-coding-system-function をこの変数の内容で拘束する。

2. 現在の select-safe-coding-system-function に設定できる関数は、その文
   字列に対応した coding system を返すしかないと思うのですが、文字列の方
   を coding system にあわせるという選択もできるようにする。

   方法としては、渡されたのが region ならば buffer を書き換えてしまい、
   文字列の場合はどうしようもないので、 
   select-safe-coding-system-function に設定された関数が、文字列を返した
   らそちらの文字列を encode するようにする。

これで実現できるようになるのではないかと思いますが、いかがでしょうか?

-- 
鈴木圭一 / keiichi@xxxxxxxxx
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B