diff --git a/lib/irb/command/copy.rb b/lib/irb/command/copy.rb index 93410b878..6b3bcc651 100644 --- a/lib/irb/command/copy.rb +++ b/lib/irb/command/copy.rb @@ -54,6 +54,8 @@ def copy_to_clipboard(text) def clipboard_program @clipboard_program ||= if IRB.conf[:COPY_COMMAND] IRB.conf[:COPY_COMMAND] + elsif executable?("clip.exe") + "clip.exe" elsif executable?("pbcopy") "pbcopy" elsif executable?("xclip") @@ -62,11 +64,19 @@ def clipboard_program end def executable?(command) - system("which #{command} > /dev/null 2>&1") + if windows? + system("where #{command} > NUL 2>&1") + else + system("which #{command} > /dev/null 2>&1") + end end def clipboard_available? - !!clipboard_program + windows? || !!clipboard_program + end + + def windows? + /mingw|mswin/.match?(RUBY_PLATFORM) end end end