タイトル | : それは1年前の野ざらし言から始まった |
投稿日 | : 2023/03/21(火) 22:55 |
投稿者 | : konno | 番 号 | : 10687 10684 番 konno さんへのコメント |
今回の問題が見つかったきっかけは、1年前の野ざらし言の書き込みからでした。 関連しそうなツリーや記事のリンクを張っておきたいと思います。 野ざらし言#4609.ファイルの挿入 - としき 22/02/05-18:33 ★ 全てはこのツリーから始まった。非常に長いツリーです。 野ざらし言#4700.ファイルの挿入とオプションの値 - としき 22/05/03-22:43 ★ 非常に長いツリーです。 野ざらし言#4753 konno &t トレースでは ek-, の時 #i の挿入でカーソル位置がズレたように見えたので。 野ざらし言#4784 添付ファイルは konno 2022/03/03 01:00 170,335 0007.cgi オープンするファイル 2022/03/02 23:04 132,553 0007.cg [ESC]I で挿入するファイル 2022/03/03 19:11 302,888 0007-i.cgi 正常な結果ファイル(比較用) 野ざらし言#4800 行ブロックズレはマクロのせい? konno トレースで見ると、3回目の #i のブロックペースト後が問題です。 Ek- の時カーソル位置更新しますが、その位置が1文字ズレて改行の所になります。 本来なら行頭にくるはずなんですが、1文字ズレることがあるんですね。 野ざらし言#4835 めざら 現象から言えば,確かに #< があることで論理行が入れ替わるということになりますが,不具合の根本的な因子はそこではないと思います。 以前にもちょこと書きましたが,#< にはページングにおける KY (保存されたY位置)を更新する効果があって,ヒトの目線のズレ修正に貢献していると考えているのですが,c.mosさんとしては「美しい動作」というのが脳裏にあって #< を使っていたのではないかと想像しています。(まるきり外してるかも) 野ざらし言#4840 としき> 異常挿入を起こす0007.cgiの冒頭からの真の最小のファイルサイズ見つけました。 27932バイトでは異常発生、27931バイトでは正常挿入。 野ざらし言#4892 Blの指定可能な値について めざら bl 34452 / pq..148==$776A, pq..149==$FDFE bl 34453 メモリが足りません. 512バイトの緩衝領域+2バイトを前方(最上位メモリ)に確保しさえすれば,大きなラインバッファの「確保」は可能。ただし,正常に使用可能かは不明。 野ざらし言#4883 としき 上記の、異常挿入を起こす最小サイズとしては27932バイトなわけですが、元のファイルではその部分はちょうど2バイト文字の真ん中に当たります。なので、2バイト文字の区切りで1文字増やした27933バイトのファイル、これに0007.cgファイルを挿入しようとすると当然、異常挿入になります。この場合、ファイル末尾は「気」という文字です。 ところが、同様に0007.cgiファイルのこの行の「気」の文字の次に改行を入れたファイルを作り、このファイルを開きなおして0007.cgファイルを挿入しても、正常挿入。ところが、そこにさらにもう1バイト、何でもいいけど半角文字を追加して保存して開きなおし、0007.cgファイルを挿入しようとするとそれは見事に異常挿入。 不思議だ、なぜ2バイトずれる。 野ざらし言#4711.ファイル挿入(1) 1.60製品版 - めざら 22/05/07-21:13 ★ 非常に長いツリーです。 野ざらし言#4934 なんというか、なかなか面白い結果となりました。 としき 特に面白いと思ったのは、あとから0007.CGファイルを読み込ませるとき、先に開いて いたファイルのサイズとBlの値によって、きれいに挙動が変化する部分。すなわち、 以下のところですね。 先に開いていた Blの値 ファイルのサイズ 8191 8192 8193 27931バイト 正常 正常 異常 27932バイト 正常 異常 異常 27933バイト 異常 異常 異常 また、Blを16384まで大きくすれば常に正常挿入になるかと思ったけどそうはならない、 という部分もなかなか興味深いところ。 野ざらし言#4995 これの続きを試してみました。 としき 先に開いていた Blの値 ファイルのサイズ 8190 8191 8192 8193 8194 27930バイト 正常 異常 27931バイト 正常 正常 異常 27932バイト 正常 異常 異常 27933バイト 正常 異常 異常 異常 27934バイト 異常 野ざらし言#4997] EM の値で [ESC]i の挙動が変わる konno 2022/09/03(Sat) 18:24 何気なく、EM1024 を、EM12 とか小さくしてみたら [ESC]i の症状が良くなったみたいです。 それで、EMの値を変えて色々試してみました。 EM1017 を超えるとNG で、EM1010 ならほとんどのVZ環境で問題改善するようです。 今まで同じVTDOSでも私の環境で [ESC]i の挙動が良くなかった原因が分かった気がします。 ★ EM1024-1017=7 16k*7=112k つまり、XMSは112kでそれ以上はEMSが使われて異常が出たと考えられる ★ EM1024-1010=14 16k*14=224k つまり、XMSは224kでそれ以上はEMSが使われる ★ この時点で、VTDOSのEMSの挙動に気づかなかったのが悔しいです。
- No.10687 一括表示へ - コメント元:10684 一括表示へ - [ 返信 ] [引用無し] pre