[HOME]  [全部表示 会議室風]  [全部表示 保存用]  [HOME]  [リストへもどる] [リストへもどる]

一括表示


  ClpPst.def のバグ - konno 15/03/15-23:49 No.6596
 ┗ Re: ClpPst.def のバグ - めざら 15/03/19-07:52 No.6597
  ┗ Re^2: ClpPst.def 最新版は、v05d - konno 15/03/20-00:19 No.6598

(6596) 6596ClpPst.def のバグ  投稿者:konno   2015/03/15(日) 23:49
   コメント数 1

ClpPst.def は、VZとWindowsの窓ソフトの間でコピペを可能にするマクロで
大変重宝してます。が、最近バグと思われる事象に遭遇しました。

非ブロックモードで ^KC 起動するとVZの1行コピー動作となり、今までずっと
問題なく使っていたんですが、行の編集途中で起動したら動作異常になりました。
具体的には文字の挿入や削除した直後に起動した場合です。

編集中のテキストが壊れたり他のテキストと入れ替わったり、その他いろいろ
誤動作を起こしました。

ClpPst.def for W32 v05c です。

現象から、おそらく行バッファから出ないまま行の操作をしたためだと思い
マクロを見てみました。

67行目あたりを

03: (s)?. &00
; (mb)??{ (f)?{ f++, a=cp, } #> #b #< } ; 非ブロック時
(mb)??{ #] (f)?{ f++, a=cp, } #> #b #< } ; #] が必要

このように、#]( #85 ステータスラインの再描画)を追加したら直りました。
このコマンドは行編集バッファから抜け出す機能を持っていてこういう場合に
良く使われるので、追加しました。

 a=cp, の cp が行バッファの中と外で全然違う値になるためですね。

STKHELP.DEFによると
 cp カーソル位置のオフセット
  ・ラインバッファが有効な時は gz の中のアドレス、ライン
   バッファがフラッシュされると tz の中のアドレスを示す。
 (PK/14/08781/tomo)
 ※ cp は #? などを実行しないと反映されない。 cp の型が
 一定しないため、 &d でうまく行くのは行編集中でない場
 合のみで、その確定のため予め #] を実行しないとトラブ
 る場合がある。
 cp をいじった後は #?(#28)を実行するのが原則で、&d
 が使えるのは限定的なケース。 (DC/15/06425/m.gann)


とりあえずやっつけで対処しましたが、問題があるようでしたら教えてください。
 >ALL


      - No.6596 -    このTreeへ           [リストへもどる] pre

(6596) 6597Re: ClpPst.def のバグ  投稿者:めざら   2015/03/19(木) 07:52
    6596 番 konno さんへのコメント    コメント数 1

> ClpPst.def   for W32 v05c です。

ClpPst.defの最新版は、v05d になっていて、
この件は一応対応済になっています。
2010年の3月頃に、突然同様の現象がおこるようになって、
位置は少し違うけれど、やはり #] を入れました。

      - No.6597 -    このTreeへ    コメント元:6596 へ [リストへもどる] pre

(6596) 6598Re^2: ClpPst.def 最新版は、v05d  投稿者:konno   2015/03/20(金) 00:19
    6597 番 めざら さんへのコメント

めざらさん、どうもです。

> ClpPst.defの最新版は、v05d になっていて、
> この件は一応対応済になっています。

あうう、全然記憶に残ってませんでした。(>_<)
探したら野ざらし言#4038で発言されてましたね。
もう全引用しちゃいます。(^^;

> > でも、これって、どこに発表されていたものでしょうか。
>
>  わたしの手抜きです。「極楽VZ環境」の「とらじツール」の項…
>   http://homepage3.nifty.com/mezala/vz/env/win/win98.html#tratool
> …から,clppst.lzh を参照している…
>   http://homepage3.nifty.com/mezala/vz/env/win/clppst.lzh
> …のURIを書き換えるのが面倒くさくて,アーカイブ名が同じなのです。
>
>  軟体は,更新が追いついていないだけです。
>
>  わかりにくくて申し訳ないです。

ということで、軟体補完計画にはなかったんですね。(^^;


> 2010年の3月頃に、突然同様の現象がおこるようになって、
> 位置は少し違うけれど、やはり #] を入れました。

(mb)??{ ; 非ブロック起動
(f)?{ f++, #] a=cp, } ; コピーならカーソル位置を保存 #05c
#> #b #< ; #]はcpの確定:#05d
}


ここですね。非ブロックかつコピーの時に #] 追加なのですね。
ではこちらを使わせていただきます。
ありがとうございました。

野ざらし言#3647 が再改造の話題だったんですね。あ、あきろさんだ、わ〜い


      - No.6598 -    このTreeへ    コメント元:6597 へ [リストへもどる] pre