# File mod_docs/cgi.rb, line 69 def cgi_open(path, args, env) if (@run_cmd) then cgi_cmd = CGIDocument.quote_sh(@run_cmd) cgi_cmd << ' ' cgi_cmd << CGIDocument.quote_sh(path) else cgi_cmd = CGIDocument.quote_sh(path) end for cgi_arg in args cgi_cmd << ' ' cgi_cmd << CGIDocument.quote_sh(cgi_arg) end begin cgi_io = PROC_RES_LOCK.synchronize{ chenv(env) { chdir(File.dirname(path)) { IO.popen(cgi_cmd, 'r+') } } } cgi_io.binmode return yield(cgi_io) ensure cgi_io.close if cgi_io end end