From 145c1e0691d4a6ca8eda40a42e584a1f6899fae2 Mon Sep 17 00:00:00 2001 From: aycabta Date: Mon, 20 Dec 2021 14:36:37 +0900 Subject: [ruby/reline] Add support for overwriting dialog proc with the same name https://github.com/ruby/reline/commit/16aa20c380 --- lib/reline/line_editor.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib/reline/line_editor.rb') diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 4fbed471c3..657b3e7018 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -634,8 +634,12 @@ class Reline::LineEditor end def add_dialog_proc(name, p, context = nil) - return if @dialogs.any? { |d| d.name == name } - @dialogs << Dialog.new(name, @config, DialogProcScope.new(self, @config, p, context)) + dialog = Dialog.new(name, @config, DialogProcScope.new(self, @config, p, context)) + if index = @dialogs.find_index { |d| d.name == name } + @dialogs[index] = dialog + else + @dialogs << dialog + end end DIALOG_DEFAULT_HEIGHT = 20 -- cgit v1.2.3