コマンドの処理 3 COPY(修正版) ― 2016年07月03日 09:50
転写指令copy行の転写を行う。形式は、
(.,.)k行3
指定された範囲を行3の後ろに転写する。転写だから指令を"c"にしたいが、 すでに使ってしまったので、苦しいが"k"とする。 転写指令ののためのdocmdの該当部分は、以下の通り。
else if (lin(i) == COPYCMD) { i = i + 1 if (getone(lin,i,line3,status) == EOF) status = ERR if (status == OK) if (ckp(lin,i,pflag,status) == OK) if (defalt(curln,curln,status) == OK) status = kopy(line3) }
実際の転写はkopy()で行う。
Kopy()のRATFOR版は、以下の通り。
# kopy.r4 -- copy lines into aonother line integer function kopy(line3) integer line3 integer line,junk integer gettxt,inject,nextln include ctxt.fi include clines.fi kopy = ERR if (line3 <= line1 | line3 < line2) return curln = line3 for (line = line1; line <= line2; line = nextln(line)) { junk = gettxt(line) kopy = inject(txt) } return end
Kopy()のWATCOM fortran77版は、以下の通り。
c kopy.f -- copy lines into aonother line integer function kopy(line3) integer line3 integer line,junk integer gettxt,inject,nextln include ctxt.fi include clines.fi kopy = -3 ! ERR(-3) if ((line3 .le. line1) .or. (line3 .lt. line2)) then return end if curln = line3 line = line1 while (line .le. line2) do junk = gettxt(line) kopy = inject(txt) line = nextln(line) end while return end
最近のコメント