ハイブリッド版insfile.def

作者: 上村 郁夫

NIFTYの会議室に書き込んだハイブリッド版?です。

download
======== insfile.def ======== by I.kamimura

#if 0

【カーソル位置へ挿入】

 ■機能
  ●挿入ファイル数にはオープン可能なテキスト数(TC)の制限はありません。
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ●挿入した全ブロックを1ブロックとして再現できます。
  ●挿入後のカーソル位置(ブロックの先頭/最後)はオプション Ek に依存
      します。
  ●文字境界ファイル(ファイルの最終行が尻切れ)に対応。ただし、文字境
      界ファイルと行境界ファイルを混在して挿入すると、順序が乱れます。

 ■テクニカルノート
  ●&Fl によるファイラー選択では &Fi 不要?
  ●&Fl によるファイラー選択では 交換可能なドライブ (FDなど)でもマ
      ークがクリアされない。

#endif

* M
8  [ESC]I @I "I カーソル位置へ挿入"
        ?.
        (mr==$80)? { &m(36). }          ;「変更できません」
        (wc==tc)? { &m(6). }            ;「オープンできません」
        #M &m("カーソル位置へファイルを読み込みます")
        n=wn,
        &Fl(fl+34) &Cr (r)?.
        &s i-,
:A      &Fg(pr,1) &m(pr)
        mx[+, sn[+, pf[=pr, #R #e #m pf], sn], mx],
        (s)? { #[ #[ >A }
        #W &#T(n) #W
        &60 i++,
        #C &#T(n) &Fn (r)? >A
:Z      mb-, #b #U (ek)? #B #b
        &d #] &m(" %d ファイル挿入しました",i)

60:     ;---裏窓へファイル全体をコピー---
        #^ #< #b #_ (ct)? #>
:A      (mb)??.
        &m(" %s : %05u --> %s : %05u",wa+$92,wa..5,wb+$92,wb..5)
        #y (s==4)? 'y' #W ek[+, #i ek], #W >A

*
======== End of insfile.def ========

(1997/09/13 FGALDC MES 15 にて)


【作者コメント】
「Vzマクロ道場」のESC_I.DEFや「Vzマクロコレクション」のINSFILE.DEFよりも、さらに完璧を期したのが、このハイブリッド版INSFILE.DEFです。裏窓へのコピーがローカルマクロになっているのは、汎用サブルーチンとするためです。
起動直後はfl+34が空なので、&Fl(fl+34)にはもう一工夫ほしいところ。また、「オープン可能なテキスト数の制限はない」と書いていますが、最低1個はオープンする余裕が必要です。ディスク上のファイルをテキストスタックに直接読み込む究極版をいずれ作りたいものです。