* tool/redmine-backporter.rb: added history feature for platforms which

lack readline.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2015-01-27 07:00:50 +00:00
parent fd8cf62f37
commit 8516d7433f
2 changed files with 72 additions and 28 deletions

View File

@ -1,3 +1,8 @@
Tue Jan 27 15:58:23 2015 NAKAMURA Usaku <usa@ruby-lang.org>
* tool/redmine-backporter.rb: added history feature for platforms which
lack readline.
Mon Jan 26 22:09:35 2015 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
* .gitignore: ignored temporary file with git.

View File

@ -200,7 +200,8 @@ def more(sio)
end
end
def Readline.readline(prompt = '')
class << Readline
def readline(prompt = '')
console = IO.console
console.binmode
ly, lx = console.winsize
@ -217,6 +218,7 @@ def Readline.readline(prompt = '')
case c = console.getch
when "\r", "\n"
puts
HISTORY << line
return line
when "\C-?", "\b" # DEL/BS
print "\b \b" if line.chop!
@ -226,11 +228,48 @@ def Readline.readline(prompt = '')
when "\C-d"
return nil if line.empty?
line << c
when "\C-p"
HISTORY.pos -= 1
line = HISTORY.current
print cls
print line
when "\C-n"
HISTORY.pos += 1
line = HISTORY.current
print cls
print line
else
print c
line << c
end
end
end
HISTORY = []
def HISTORY.<<(val)
HISTORY.push(val)
@pos = self.size
self
end
def HISTORY.pos
@pos ||= 0
end
def HISTORY.pos=(val)
@pos = val
if @pos < 0
@pos = -1
elsif @pos >= self.size
@pos = self.size
end
end
def HISTORY.current
@pos ||= 0
if @pos < 0 || @pos >= self.size
''
else
self[@pos]
end
end
end unless defined?(Readline.readline)
def mergeinfo