begin ; !TAKEIN: augment command dictionary by all .mob-files in a directory

include  "inc:util.imp"
include  "inc:dict.imp"

routine  define command symbol(string (255)symbol,file)
integer  verb,equiv
  to upper(symbol); to upper(file)
  returnunless  refname(symbol,comdict)<=0
  verb = defname(symbol,comdict,8)
  integer(verb) = 0; integer(verb+4) = 0
  equiv = refname(file,fildict)
  if  equiv<=0 start 
    equiv = defname(file,fildict,8)
    integer(equiv) = 0; integer(equiv+4) = 0
  finish 
  integer(verb) = equiv
end 

routine  do directory(string (255)dir)
string (255)file,symbol
  onevent  3,4,9 start 
    return 
  finish 
  returnif  dir=""
  openinput(1,dir.":directory"); selectinput(1)
  cycle 
    readline(file)
    if  file -> file.(";").symbol start ; finish 
    toupper(file)
    if  file -> symbol.(".MOB") start 
      define command symbol(symbol,dir.":".file)
    finish 
  repeat 
end 

routine  do directories(string (255)s)
string (255)one,rest
  while  s -> one.(",").rest cycle 
    do directory(one); s = rest
  repeat 
  do directory(s)
end 

  do directories(cliparam)

end