diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/context/ruby/fcd_start.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/scripts/context/ruby/fcd_start.rb b/scripts/context/ruby/fcd_start.rb index 29e040027..4f8019416 100644 --- a/scripts/context/ruby/fcd_start.rb +++ b/scripts/context/ruby/fcd_start.rb @@ -204,7 +204,7 @@ class FastCD end end - def choose + def choose(args=[]) unless @pattern.empty? then begin case @result.size @@ -214,6 +214,16 @@ class FastCD chdir(@result[0]) else list = @result.dup + begin + if answer = args[1] then + index = answer[0] - ?a + if dir = list[index] then + chdir(dir) + return + end + end + rescue + end loop do print("\n") list.each_index do |i| @@ -228,8 +238,7 @@ class FastCD if answer = wait then if answer >= ?a and answer <= ?z then index = answer - ?a - dir = list[index] - if dir then + if dir = list[index] then print("#{answer.chr} ") chdir(dir) else @@ -248,6 +257,7 @@ class FastCD end end rescue + # report($!) end end end @@ -341,7 +351,7 @@ case action when 30 then fcd.load fcd.find(args) - fcd.choose + fcd.choose(args) when 40 fcd.check end |