def whereis(prog, path=ENV['PATH'])
dirs = []
path.split(File::PATH_SEPARATOR).each{|dir|
if File::ALT_SEPARATOR
if prog.include?('.')
f = File.join(dir,prog)
if File.executable?(f) && !File.directory?(f)
if block_given?
yield f.gsub(/\//,'\\')
else
dirs << f.gsub(/\//,'\\')
end
end
else
Win32Exts.find_all{|ext|
f = File.join(dir,prog+ext)
if File.executable?(f) && !File.directory?(f)
if block_given?
yield f.gsub(/\//,'\\')
else
dirs << f.gsub(/\//,'\\')
end
end
}
end
else
f = File.join(dir,prog)
if File.executable?(f) && !File.directory?(f)
if block_given?
yield f
else
dirs << f
end
end
end
}
dirs.empty? ? nil : dirs
end