say "Installation 'Sit-O-CHIRARI' is completed successfully."
say
say "Would you like to want to read 'User's Guide' now?"
say " (Netscape Navigator/Communicator is required)"
say
say " [V] to view document, [Enter] to exit"
if WaitKeyPress("V" || "0d"x) = "V" then call SysOpenObject "<CHIRARI_README>", 0, 0
s = -1
end
otherwise
leave
end
end
call SysDropFuncs
exit
DetermineInstalledDrive: procedure
ev.0 = 3; ev.1 = "COMSPEC"; ev.2 = "OS2_SHELL"; ev.3 = "RUNWORKPLACE"; do i = 1 to ev.0; d = translate(left(value(ev.i, , "OS2ENVIRONMENT"), 1)); if pos(d, xrange('C', 'Z')) <> 0 then return d; end; return "C"
DetermineWorkPath: procedure
parse arg d; ev.0 = 3; ev.1 = "TEMP"; ev.2 = "TMP"; ev.3 = "ETC"; do i = 1 to ev.0; p = value(ev.i, , "OS2ENVIRONMENT"); if p <> "" then return p; end; return d || ":\."
WaitKeyPress: procedure
parse arg v; do forever; k = translate(SysGetKey("noecho")); if pos(k, v) <> 0 then leave; end; return k
parse arg d; if \CheckDirectoryExists(d) then do; if \CheckDirectoryExists(d || "\..") then call MakePath d || "\.."; call SysMkDir d; end; return
ExtractAttachedFile: procedure
parse arg a; parse source . . s; call stream s, "c", "open read"; do while lines(s); l = linein(s); if left(l, 20) = "Content-Disposition:" then do; call linein s; call SysFileDelete a; call stream a, "c", "open write"; f = xrange("A", "Z") || xrange("a", "z") || xrange("0", "9") || "+/"; t = xrange("00"x, "3f"x); do while lines(s); l = linein(s); if left(l, 2) = "*/" then leave; v = translate(l, t, f); r = ""; do i = 1 to length(v); r = r || substr(x2b(c2x(substr(v, i, 1))), 3); end; call charout a, x2c(b2x(left(r, length(r) % 8 * 8))); end; call stream a, "c", "close"; call stream s, "c", "close"; return 1; end; end; call stream s, "c", "close"; return 0
ParseCatalogList: procedure
parse arg c, s, d; do while lines(c); l = linein(c); parse var l v t; select; when v = "COPY" then '@copy "' || s || '\' || t || '" "' || d || '\' || t || '" >nul 2>nul'; when v = "UNLOCK" then '@"' || s || '\unlock" "' || d || '\' || t || '"'; when v = "MKDIR" then call SysMkDir d || "\" || t; when v = "DEL" then call SysFileDelete s || "\" || t; otherwise end; end; call stream c, "c", "close"; return