# File lib/grit/jruby.rb, line 9
    def popen4(*argv)
      env = (argv.shift if argv[0].is_a?(Hash))  || {}
      opt = (argv.pop   if argv[-1].is_a?(Hash)) || {}

      # emulate :chdir option
      if opt[:chdir]
        previous_dir = Dir.pwd
        Dir.chdir(opt[:chdir])
      else
        previous_dir = nil
      end

      # emulate :env option
      if env.size > 0
        previous_env = ENV
        ENV.merge!(env)
      else
        previous_env = nil
      end

      pid, stdin, stdout, stderr = IO.popen4(*argv)
    ensure
      ENV.replace(previous_env) if previous_env
      Dir.chdir(previous_dir)   if previous_dir
    end