mule-ja
[Top][All Lists]
Advanced

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

[mule-ja:12] When pasting from emacs to kterm, japanese chars are lost.


From: Ikumi Keita
Subject: [mule-ja:12] When pasting from emacs to kterm, japanese chars are lost.
Date: Sun, 07 Oct 2012 01:26:30 +0900

  井汲です。

  emacs 23 になってから、マウス操作で emacs から kterm に文字列を paste
すると、日本語文字が全部欠落するようになっているようです。これは意図された
変更でしょうか?kterm は FreeBSD の ports でインストールしたもので、
kterm-6.2.0 に ports の patch が当たったものを使っており、X resource の指
定で kterm の日本語コードは euc にしています。

試したこと:
X window 上の emacs で、12345あいうえお6789 という文字列をマウスで選択し、
kterm に paste してみると、emacs 22.3 ではそのまま 12345あいうえお6789
が出てくるが、emacs 23.4, 24.2 では 123456789 になってしまう。

  文字コードの問題かと思って C-x C-m X や C-x C-m x で ctext を指定して
から copy&paste してみても変化なし(emacs 23, 24 とも)。kterm 側で
ctrl-マウス中ボタン で日本語をデフォルトの jis に戻してから試してもダメ。

推測したこと:
  paste の際、kterm には日本語文字列は utf-8 で与えられているのではない
か(selection-coding-system の値に関わらず)。kterm には utf-8 が解釈で
きないため、日本語文字がすべて捨てられているのだろう。

推測を支持する材料:
(1) select.el の xselect-convert-to-string の定義を emacs 22.3 のものに
戻してから、selection-coding-system を ctext にして copy&paste を試みる
と、日本語文字を含んだまま正常に paste できる(emacs 23, 24 とも)。
  あるいは、emacs 24 の select.el で、xselect--encode-string 中で

                (setq type (if non-unicode 'COMPOUND_TEXT
                             (if non-latin-1 'UTF8_STRING
                               (if eight-bit 'C_STRING
                                 'STRING))))))))

となってる所がアヤシイと当たりをつけ、

                (setq type 'COMPOUND_TEXT)))))

と乱暴に書き換えて試すと、やはり日本語文字を含んだまま正常に paste でき
る。

(2) kterm に
http://bogytech.blogspot.jp/2011/07/kterm-jless-screen.html
の patch を当てて utf-8 に暫定対応させ、kterm の日本語コードとして utf-8
を選んでから paste すると、(1) のような小細工をしなくても日本語文字を含
んだまま正常に paste できる。



  方針として、「kterm のような utf-8 を解さない legacy な x client は、
もう emacs の側では対応しない」という判断で積極的に選択された結果なら、
それはそれで仕方ない、と割り切りますが、そういう判断だったのかどうかにつ
いては知らないので、一応お知らせしました。

                                                井汲 景太



reply via email to

[Prev in Thread] Current Thread [Next in Thread]