{ Set default symbol values: } { } { HOME = Username if not yet defined } { TERM = value of TERMINAL if not yet defined } { = vi200 if TERMINAL is undefined } %include "Inc:Fs.imp" %include "Inc:FSUtil.imp" %include "Inc:Dict.imp" %begin %string(255) Home, Terminal { Ripped off from CLI } %routine do trans(%string(255) symbol, default, %string(255) %name to) { translate Symbol into To. If the symbol doesnt exist use Default } %integer i i = refname(symbol,comdict) %if i <= 0 %start to = default %else i = integer(i) transname(i,to) to = default %if length(to) = 0 %finish %end %routine toupper(%string (*) %name s) %byte %name b == charno(s,1) %byte l = length(s) %while l # 0 %cycle b = b - 'a' + 'A' %if 'a' <= b <= 'z' b == b [1] l = l -1 %repeat %end %routine tolower(%string (*) %name s) %byte %name b == charno(s,1) %byte l = length(s) %while l # 0 %cycle b = b - 'A' + 'a' %if 'A' <= b <= 'Z' b == b [1] l = l -1 %repeat %end %routine define symbol(%string(255)symbol,value) %string (255) fred %integer stag,vtag toupper(symbol) stag = defname(symbol,comdict,8) %if stag=0 %start printstring("*Command dict full"); newline; %return %finish vtag = defname(value,fildict,8) %if vtag=0 %start printstring("*File dict full"); newline; %return %finish %if stag<0 %start stag = stag<<1>>1 %finish integer(stag) = vtag<<1>>1 %end do trans("HOME", "", Home) Home = Current User %if Home = "" %if Home = "" %start Open Input(1, ":T") Select Input(1) Prompt("What is your home directory ? ") Read(Home) Select Input(0) %finish toupper(Home) define symbol("HOME", Home) define symbol("USER", Home) do trans("TERM", "", Terminal) %stop %if Terminal <> "" do trans("TERMINAL", "vi200", Terminal) tolower(Terminal) Terminal = "vi200" %if Terminal = "visual200" Terminal = "v55" %if Terminal = "visual55" define symbol("TERM", Terminal) %endofprogram