欧文文字の貼り付けNo.01710
yy さん 03/06/15 16:05
 
V4.00β2で欧文文字セットを使用し,秀丸テキスト上のアクセント記号が
付いた文字を表示させ,クリップボードへコピーしてからpoppasteすると,
アクセント記号が取れた文字に変換されて貼り付けられてしまいます。
ちなみに,pasteの場合は,アクセント記号はちゃんと付いたまま貼り付け
られます。

V3.19では,クリップボード履歴で表示させると,アクセント記号付き文字
は文字化けこそしてはいましたが,きちんとアクセント記号が付いたままで
でpasteもpoppasteされていました。

[ ]
RE:01710 欧文文字の貼り付けNo.01722
秀まるお さん 03/06/16 14:11
 
 改版履歴に書き忘れましたが、クリップボード履歴はWindowsNT/2000/XPの時
に限ってUnicode対応しています。

 しかし、poppasteは、ご指摘の通り、Unicode対応の修正をしてませんでした。

 今から直します。

[ ]
RE:01722 欧文文字の貼り付けNo.01723
秀まるお さん 03/06/16 14:26
 
 っと直そうと思ったんですが、そもそもバグが再現しませんでした。

 適当な欧文フォント(文字コードも欧文)に切り替えて、aの上に「'」が付い
たような文字(文字コードE0)を入力してそれをコピーし、「その他・コマンド
一覧」から「クリップボード系・貼り付け+履歴戻し」をしても、ちゃんとその
「a」に「'」の付いた文字が入力されます。

 以下のマクロはさらにテスト用に作った物ですが、それでもちゃんと動作して
いるように見えます。

    insert "\xE0";
    beginsel;
    left;
    copy;
    escape;
    beginsel;
    right;
    copy;
    escape;
    poppaste;
    poppaste;

 Windows2000とWindows98の両方のマシンでテストしましたが、両方とも正常動
作しました。

 何か具体的にダメな条件が何か分かれば教えて欲しいです。あるいは条件が分
からないにしても、せめてWindowsの種類とフォントの種類など教えて欲しいで
す。

[ ]
RE:01723 欧文文字の貼り付けNo.01731
yy さん 03/06/16 16:13
 
OSはWindows XP Home Editionです。
フォントはCourier Newで,文字セットを欧文にしています。
文字コードの種類をタイトルバーに示すように設定していますが,
タイトルバーにはファイル名に加え,「欧文」と表示されています。

> 何か具体的にダメな条件が何か分かれば教えて欲しいです。

あれから自分なりにテストしてみた結果,
「ファイル別の設定」の「フォント」で「Unicode編集の許可」を
「Unicode以外のファイル」に与えている場合は,
確かに問題はありませんでした。

一方,「Unicode編集の許可」を「Unicode以外のファイル」に
与えていない場合,上のマクロで,「'」が付かない「a」が2つ,
貼り付けらました。
Unicode編集の許可を与えていないので,もしかしたら,
これで正しいような気もします。

ところが,「Unicode編集の許可」を「Unicode以外のファイル」に
与えていない場合,上のマクロの最後の2行を
paste;
poppaste;
に変更すると,まずpasteで「'」付きの「a」が貼り付けられ,
次にpoppasteで「'」なしの「a」が貼り付けられます。
pasteしてからpoppasteすると,クリップボードの同じ内容を
貼り付けているはずなので,貼り付け後の結果が違うのは
おかしいと思いました。

更に,変な現象だと思ったのは,マクロの最後の2行を
poppaste;
paste;
に変更すると,まずpoppasteで「'」なしの「a」が貼り付けられ,
次のpasteでも「'」なしの「a」が張り付けられます。
(これもUnicode編集の許可を与えていないので,もしかしたら,
これで正しいのかも知れませんが。)

[ ]
RE:01731 欧文文字の貼り付けNo.01732
秀まるお さん 03/06/16 16:49
 
 こちらで再現テストすると同時にソースコードをおっかけて、原因を理解しま
した。

 この場合はUnicode編集不許可であってもうまく欧文が貼り付けできるように
修正させていただきます。

[ ]