%begin

! MOCOPY - Copy all Mouse files to another filestore.
! Parameters: Source and destination filestore names.

%option "-nons-nocheck-nodiag"
%include "inc:util.imp"

%string(255)sourcefs,destfs,sourcedir,destdir
%integer files = maxint

%routine transfer file(%string(255)file)
%string(255)line,fore,aft,xline,find,substitute
  %on 9 %start
    closeoutput; closeinput
    %return
  %finish
  openinput(1,sourcedir.file)
  openoutput(1,destdir.file)
  selectoutput(0)
  printstring("Copying ";sourcedir;file;" to ";destdir;file); newline
  selectinput(1); selectoutput(1)
  tolower(file)
  %if file -> ("startup.com") %start
    find = "current_filestore==:f:"
    substitute = find.destfs
    find = find.sourcefs
    tolower(find; substitute)
    %cycle
      readline(line)
      xline = line; tolower(xline)
      %if line -> fore.(find).aft %start
        selectoutput(0); space; printline(line)
        charno(aft,1) = charno(cliparam,1)
        line = fore.substitute.aft
        space; printline(line); selectoutput(1)
      %finish
      printline(line)
    %repeat
  %finish
  %cycle
    printsymbol(readsymbol)
  %repeat
%end

%routine transfer everything
%string(255)line
  %on 9 %start
    %stop
  %finish
  openinput(2,sourcedir)
  %cycle
    selectinput(2)
    readline(line)
    transfer file(line)
    files = files-1
  %repeatuntil files=0
%end

  defineparam("Source filestore", sourcefs, pamnodefault)
  defineparam("Destination filestore", destfs, pamnewgroup+pamnodefault)
  defineintparam("Files",files,0)
  processparameters(cliparam)

  sourcedir = sourcefs.":mouse:"
  destdir = destfs.":mouse:"
  transfer everything
  
%end
