aboutsummaryrefslogtreecommitdiffstats
path: root/lib/reline/line_editor.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/reline/line_editor.rb')
-rw-r--r--lib/reline/line_editor.rb8
1 files changed, 6 insertions, 2 deletions
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