From mboxrd@z Thu Jan 1 00:00:00 1970 From: wmorgan-sup@masanjin.net (William Morgan) Date: Tue, 05 Feb 2008 09:34:12 -0800 Subject: [sup-talk] [PATCH] shell commands are now run in a child process In-Reply-To: <1202026272-3432-2-git-send-email-chrisw@rice.edu> References: <1202026272-3432-2-git-send-email-chrisw@rice.edu> Message-ID: <1202232814-sup-1005@south> Reformatted excerpts from Christopher Warrington's message of 2008-02-03: > When shelling out, the external command is now run in a child process. > Before the external command is run, all (I hope) of sup's open files > are closed first. This seems crazy. Do mbox sources even continue to function properly once this has happened? It seems like they'd crash with their file handles closed from under them. If the issue is that Windows has bad behavior when Sup polls while you're editing a message, another option might be to turn off polling when Sup is shelled out. Something like (although this doesn't prevent you from starting an editor while a background poll is in progress): diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb index d40a626..96f676b 100644 --- a/lib/sup/buffer.rb +++ b/lib/sup/buffer.rb @@ -137,6 +137,7 @@ class BufferManager include Singleton attr_reader :focus_buf + bool_reader :shelled ## we have to define the key used to continue in-buffer search here, because ## it has special semantics that BufferManager deals with---current searches diff --git a/lib/sup/poll.rb b/lib/sup/poll.rb index 2dd9150..a67e801 100644 --- a/lib/sup/poll.rb +++ b/lib/sup/poll.rb @@ -45,7 +45,8 @@ EOS end def poll - return if @polling + return if @polling || BufferManager.shelled? + @polling = true HookManager.run "before-poll" -- William