Add shell_out_async method to fork and detach the editor, and register the monitoring thread in PollManager.
Signed-off-by: Ramkumar Ramachandra <[email protected]> --- lib/sup/buffer.rb | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb index 5772bb0..25a2025 100644 --- a/lib/sup/buffer.rb +++ b/lib/sup/buffer.rb @@ -768,6 +768,26 @@ EOS @shelled = false end + def shell_out_async editor, file + @shelled = true + command = "#{editor} #{file.path}" + mtime = File.mtime file.path + + Ncurses.sync do + pid = Process.fork + if pid.nil? + exec(command) + else + pthread = Process.detach(pid) + PollManager.editor_loop_init pthread, file, mtime + end + Ncurses.stdscr.keypad 1 + Ncurses.refresh + Ncurses.curs_set 0 + end + @shelled = false + end + private def default_status_bar buf -- 1.7.0.4 _______________________________________________ sup-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/sup-talk
