aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2019-11-20 17:55:03 +0900
committeraycabta <aycabta@gmail.com>2019-11-20 17:55:19 +0900
commit633625a083c5f02e78355cb12818056e54330e88 (patch)
treed919925d706a4209f9826d6c9a3e17b58c174591
parentae818b589efcb5dca47d9ceb888cb658ef56e286 (diff)
downloadruby-633625a083c5f02e78355cb12818056e54330e88.tar.gz
Mintty on Cygwin isn't a kind of command prompt, can process ANSI escape code
-rw-r--r--lib/reline.rb16
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/reline.rb b/lib/reline.rb
index 58a03f882c..feee94e994 100644
--- a/lib/reline.rb
+++ b/lib/reline.rb
@@ -16,12 +16,6 @@ module Reline
CursorPos = Struct.new(:x, :y)
class Core
- if RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw|cygwin|bccwin|wince|emc/
- IS_WINDOWS = true
- else
- IS_WINDOWS = false
- end
-
ATTR_READER_NAMES = %i(
completion_append_character
basic_word_break_characters
@@ -400,9 +394,15 @@ module Reline
HISTORY = History.new(core.config)
end
-if Reline::Core::IS_WINDOWS
+if RbConfig::CONFIG['host_os'] =~ /mswin|msys|mingw|cygwin|bccwin|wince|emc/
require 'reline/windows'
- Reline::IOGate = Reline::Windows
+ if Reline::Windows.get_screen_size == [0, 0]
+ # Maybe Mintty on Cygwin
+ require 'reline/ansi'
+ Reline::IOGate = Reline::ANSI
+ else
+ Reline::IOGate = Reline::Windows
+ end
else
require 'reline/ansi'
Reline::IOGate = Reline::ANSI