一括表示

− 野ざらし言 −

[3569] テキストスタックの終端を戻す

めざら 2010/02/10(Wed) 14:06
http://homepage3.nifty.com/mezala/
 テキストスタックの内容を出力した直後なら reblockでほぼ同じ
文字列を再度取得して使えるが,カーソル移動を行ってしまったり
した場合は面倒。テキストスタックのエンドオフセットを変更する
だけで済むのにそういう機能はない。探してみたけれど,絶対誰か
作っているに違いないのに見つからない。で,作ってみた。

----------^ KZKP_BAK.DEF ( date:2010-02-10 time:00:10 ) ----< cut here
= kzkp_bak.def v0.10 = by H_ear
#if 0
テキストスタックのエンドオフセットを直前の出力前に戻す
出力直後ならreblockで再取得できるが,カーソルを動かしてしまった時に。
#endif
* mad for vz!
1 ^\ "" ?. &s
        &Bm p[, r=p-,
        dz[=kz,
        ; ---- main loop ----
 :l     p++,
        ((kp+p)..0==p-1)?{ r+, >q }     ;サイズ情報と照合
        (p<256)?>l                      ;サイズ制限(LX用)
        ; ---- quit ----
 :q     dz],
        (r)?{
                &#51(kp+p+2)            ;kpのアドレスを更新
                &m("スタック終端オフセットを更新しました.")
        }?{
                &m("リサイクル可能なアイテムはありません.")
        }
 :z     ; ---- exit ----
        p],
        &d #] .
*
[Variables]
        [r]     flag
        p       counter/pointer
[Buffers]
        -       
[History]
2010/02/10 0.10 初版 (こんな単純でいいのか?)
[Notes]
テキストスタック構造
kz [{strings|type:byte|size:word}*|kp:tail…{worn-out item}*]

----------$ KZKP_BAK.DEF ( lines:36 ) ----------------------< cut here

 ちょっと単純すぎるのだが,復活サイズを制限すれば,使用上の
ストレスはあまりないから,機械語化する必要もないし。

↑ このページの先頭