[HOME]  [リストへもどる]
一括表示

  TRA_TAG.DEF k06 タグジャンプマクロ更新 - konno 22/08/24-01:23 No.10258
  ┣ Re: TRA_TAG.DEF k06 タグジャンプマクロ更新 - 文太 22/08/24-10:08 No.10259
  ┃┗ Re^2: TRA_TAG.DEF k06 タグジャンプマクロ更新 - konno 22/08/24-19:45 No.10261
  ┗ TRA_TAG.DEF k06 タグジャンプマクロ 差し替え - konno 22/08/26-21:55 No.10276

(10258) 10258TRA_TAG.DEF k06 タグジャンプマクロ更新  投稿者:konno   2022/08/24(水) 01:23
   コメント数 2

TRA_TAG.DEF k06 を更新しました。

寅次氏の多機能タグジャンプマクロ Tra_TAG.def v16 をちょっと改造した物です。

改変内容
・2022-08-24  k06 バッファ溢れ対策とタグジャンプ失敗の要因を改善
・2018-12-24  k05  cd を ct に変更、各種改行に対応<br>
・2018-12-04  k04  バッファ溢れ不具合対策 コンソールのみ<br>
・2018-10-04  k03  ディレクトリ&LFN不具合対応  <br>


今回の改変は、一つはバッファ溢れ対策です。
マクロ冒頭での処理

	(wn==0)??>l			;コンソールの時バッファ溢れ対策
	(wa..19-wa..18 <500)?>l		;行の長さ500以内ならスルー
	&s #< i0,
:x	#x i=i+we,(i < 500)?>x		;カーソルを500超えるまで進める
	#e #d #m #e &d #<		;500以内で改行挿入
:l


注目はここです。

	(wa..19-wa..18 <500)?>l		;行の長さ500以内ならスルー

1行の長さが、wa..19-wa..18 でわかるんですね。
これは色々応用できそうです。
STKHLP で知りました。先人の方々に感謝。m(__)m


もう一つは、タグジャンプ失敗の要因の改善です。
179行目

		(r==2)?{	;open
;			>O		;★★k06 タグジャンプ失敗はここ?
	#O &?("%s ->%s",f,pa+1) #m .	;★★k06 これに差し替えたらOKに


これは私の環境だけかもしれませんが、これに変更したら失敗がほぼ無くなりました。


Vzマクロの部屋にあります。
http://tamaneko.world.coocan.jp/vzmac.htm

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

(10258) 10259Re: TRA_TAG.DEF k06 タグジャンプマクロ更新  投稿者:文太   2022/08/24(水) 10:08
    10258 番 konno さんへのコメント    コメント数 1

konnoさん

 さくっと入れ替えさせていただきました。

=== Tra_TAG.def v16 ===
;			 V16k06	konno改	 2022-08-24

 僕のvzdefディレクトリには、Tra_TAG2.def というのがあって、vz.defには
それが登録されていました。

=== Tra_TAG.def v16 ===
; V16k02		2018-10-04 konno

 miyata.shd ですね! 知らなかった。

 タグジャンプ失敗は、どうだろう? あったような気もしますが、原因が
他にもあったように思い、とらじマクロが原因だとは思わなかったですね。
 もちろん、真の原因はいまとなっては知りようもありませんが。


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

(10258) 10261Re^2: TRA_TAG.DEF k06 タグジャンプマクロ更新  投稿者:konno   2022/08/24(水) 19:45
    10259 番 文太 さんへのコメント

>  僕のvzdefディレクトリには、Tra_TAG2.def というのがあって、vz.defには
> それが登録されていました。
> === Tra_TAG.def v16 ===
> ; V16k02		2018-10-04 konno

うげ、履歴を見ると既に載っていませんね。

;2018-12-24  k05  cd を ct に変更、各種改行に対応
;2018-12-04  k04  バッファ溢れ不具合対策 コンソールのみ
;2018-10-04  k03  ディレクトリ&LFN不具合対応  

同じ日に、k03 を揚げているし。(^^;

#8207:TRA_TAG 改 V02  投稿者:konno   2018/10/05(金) を読むと
> ということで、V02 を、#test66 にUPしました。
> ・ロング行番号対応
> ・ディレクトリ対応
> ・LFN対応
> ・LZH非対応 (^^;

どうやら k03 は v02 としてテスト板#test66 にUPしてあるみたいですね。(^^;
ということで履歴は修正しました。


>  miyata.shd ですね! 知らなかった。

そうです。これも偶然の産物でした。
実は冒頭のバッファ溢れ不具合対策はその後外していて、そのままUPのはずだったのです。
最近グレップ&タグジャンプの後に不具合が多発していて
23日にUP準備中に冒頭のコメントを見て、やっぱり入れとくかと思い直したのです。
その時に、その下の行

	#] #? (r)?. wa..19.2-,		;行を lfb に取り込む

これが目に入って、wa..19.2-, ってなんじゃらほい、とSTKHLPを見たら

>  wa..19,wb..19     ラインバッファ末尾                    
>  ・ラインバッファ終端ポインタ。                          
>  ※wa..19: 行がラインバッファにある時の行末のアドレス。  
>            これに改行コードがつく。                      
>    wa..19.2-: 行末の改行コード(0D0Ah)の直後をヌルに。  
>                      (PK/14/10497 / DC/15/06167/m.gann)  
>  ※wa..19-wa..18 で改行を含まない行の長さを求められる。  
>                      (PK/14/10520 / DC/15/03593/wanama)  

wa..19-wa..18 は 和生さんの情報だったんですね、本当に先人の方々に感謝です。
行の長さを求めるのは大変なので、もっと宣伝してほしかったですね。(^^;
最近野ざらし言で、行の長さを求めるsyoさんのマクロが話題になっていましたが
これを知っていればもっと簡単にできたのになぁ、と思いました。

例えば、としきさんのログデータ 0007.cg の1行目で
インスタント窓に wa..19-wa..18 を入れてエンターすると 3970 と出ます。
1行の長さが 3970bytesあるのが簡単にわかります。
カーソルは行内のどこにあってもいいようです。
 
このバッファ溢れ対策を入れたらVZの動作不具合は出なくなったようです。(^^;
根本的にはバッファを取り込む部分を直すべきなんですが。(^^;;
この対策無しでとしきさんのログデータ 0007.cg の1行目後方の文字列を
検索&タグジャンプすると、私の環境では一発でVTDOSが落ちます。


>  タグジャンプ失敗は、どうだろう? あったような気もしますが、原因が
> 他にもあったように思い、とらじマクロが原因だとは思わなかったですね。
>  もちろん、真の原因はいまとなっては知りようもありませんが。

今問題が無いならいいんですが、私の改造物はバグだらけなので、少しづつ直していきます。
m(__)m

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

(10258) 10276TRA_TAG.DEF k06 タグジャンプマクロ 差し替え  投稿者:konno   2022/08/26(金) 21:55
    10258 番 konno さんへのコメント

このマクロ関連か原因は特定できてないんですが、不具合現象がありまして。
[F07] の置き換えの動作がおかしいときがあったのです。
それで

> 	(wn==0)??>l			;コンソールの時バッファ溢れ対策
> 	(wa..19-wa..18 <500)?>l		;行の長さ500以内ならスルー
> 	&s #< i0,
> :x	#x i=i+we,(i < 500)?>x		;カーソルを500超えるまで進める
> 	#e #d #m #e &d #<		;500以内で改行挿入

この 500 を 330 にしてみました。

	(wa..19-wa..18 <330)?>l		;行の長さ330以内ならスルー
	&s #< i0,
:x	#x i=i+we,(i < 330)?>x		;カーソルを330超えるまで進める
	#e #d #m #e &d #<		;330以内で改行挿入

UPマクロは差し替えました。
落とされた方はこれに差し替えてください。m(__)m

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