m.gann さんの Instant.def を改造しました。軟体にあるものです。
前回、#8472 2018/10/31(水) で揚げた改造の第2版です。
きっかけは、kVZの公開版のチェック中にインスタントマクロで
パスのポインタ表示が出ないことがあったからです。げげ!
使用中の私家版やその他のVZではキチンと表示出来たので、バグかと焦りました。
wa+146 フルパスのファイル名
nm ★編集テキストの相対パス名
これらが表示されないので、ポインタズレが起きているのかと焦りました。
よく見ると、ポインタの下位バイトが $0a などの時に表示されないようです。
&m("%s: %d %u %xh %16s '%c' $"%16s$"",pw,w=r,r,r,p,r,r)
原因は、'%c' で 下位バイトが $0a だとその後を表示しないためでした。
そこで、今回はこの表示順を入れ替えました。
kVZの公開版は、私の環境ではちょうど $0a になるんですよね。(^^;
ついでに、コメント3か所を取ると、$20以下の時だけ入れ替えます。
そういえばちょうど、#10281 でエスカルゴの話題が出ていますね。(^^;
======= Instant.def ======= by m.gann
・[ESC]@、いわゆるエスカルゴの拡張版です。
・全モード(s=0-3)で実行可能です。(DOS/Vの編集
モード以外で実行するにはキー ^@ の変更が必要)
・2進数表示も行います。
・[CTRL]+M で入力した場合は &d を実行しません。
・編集モードかつ [CTRL]+[SHIFT]+M で入力した場合は
結果をテキストへも出力します。
・"文字列" 混じりのマクロ文も実行可能です。
・メッセージを伴う場合は1秒間程度待機します。
・全ての変数は保存されます。
・変数 r の変更はできません。
; konno改造履歴
; 2022/08/27 k02 パスなどの文字列表示を改善
; 2018/10/31 k01 スタックの数値をメニュータイトルに表示
* Macro
11 [ESC]@ ^[F01] "" ;Instant (326)
r[, ss-, mx+,
r=sp-pu, ;★スタックの数値の変化を
&g("Instant: $r ",32) ;★メニュータイトルで表示
mx-, (s&&s<3)?{ #< #x } (r+1)?{
&v(pn.-15=pa.0-) &Sh(pa,pw) r=pa-1,
:R (2){ &SF(r+1,'"') (r)?,?{} } ?{ r.0-, >R }
r][, &e(pa) :p (s>3)?{ &c >p } (pn.-15)?&w(120) ;60)★2秒表示
p[32+pa, (i[16){ p.i--=49-(r&1<<(15-i))!, } ;eggchi
; i=r,i=i<<8,i=i>>8,(i<$20)?>b ;rの下位バイトが$20以下?
&m("%s: %d %u %xh %16s $"%24s$" '%c'",pw,w=r,r,r,p,r,r)
; >e ;文字列を優先表示
;:b &m("%s: %d %u %xh %16s '%c' $"%16s$"",pw,w=r,r,r,p,r,r) ;通常表示
:e (ks&1>s&&mr-$80)?{ &s #< &?("%s",pu+bu) #m } i], p],
#if 98
(ks&17-16)?&d
#else
; (ks&5-4)?&d
#endif
} (r])
*
======= end of instant.def =========