From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by 10.142.204.14 with SMTP id b14cs15900wfg; Sat, 2 Jul 2011 15:02:26 -0700 (PDT) Received: by 10.220.180.202 with SMTP id bv10mr1664225vcb.153.1309644146208; Sat, 02 Jul 2011 15:02:26 -0700 (PDT) Return-Path: Received: from rubyforge.org (rubyforge.org [205.234.109.19]) by mx.google.com with ESMTP id du2si370002vcb.136.2011.07.02.15.02.24; Sat, 02 Jul 2011 15:02:25 -0700 (PDT) Received-SPF: pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) client-ip=205.234.109.19; Authentication-Results: mx.google.com; spf=pass (google.com: domain of sup-devel-bounces@rubyforge.org designates 205.234.109.19 as permitted sender) smtp.mail=sup-devel-bounces@rubyforge.org Received: from rubyforge.org (rubyforge.org [127.0.0.1]) by rubyforge.org (Postfix) with ESMTP id B99EA1218278 for ; Sat, 2 Jul 2011 18:02:24 -0400 (EDT) Received: from smtp.chost.de (setoy.chost.de [217.160.209.225]) by rubyforge.org (Postfix) with ESMTP id 869091858387 for ; Sat, 2 Jul 2011 17:56:22 -0400 (EDT) Received: (qmail 21072 invoked by uid 5015); 2 Jul 2011 21:56:09 -0000 Received: (nullmailer pid 11742 invoked by uid 123); Sat, 02 Jul 2011 21:55:49 -0000 Received: from twin.sascha.silbe.org (twin.sascha.silbe.org [192.168.1.2]) by flatty.sascha.silbe.org ([192.168.1.252]) with SMTP via TCP; 02 Jul 2011 21:55:49 -0000 Received: (nullmailer pid 8976 invoked by uid 8193); Sat, 02 Jul 2011 21:56:21 -0000 From: Sascha Silbe To: sup-devel Date: Sat, 2 Jul 2011 23:56:16 +0200 Message-Id: <1309643776-8936-1-git-send-email-sascha-pgp@silbe.org> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: References: Mail-Followup-To: Subject: [sup-devel] [PATCH v2] Catch errors while saving a message to disk for editing X-BeenThere: sup-devel@rubyforge.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Sup developer discussion List-Id: Sup developer discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: sup-devel-bounces@rubyforge.org Errors-To: sup-devel-bounces@rubyforge.org Running out of disk space in /tmp caused sup to crash with the following exception: --- Errno::ENOSPC from thread: main No space left on device - /tmp/sascha_silbe/sup.reply-mode20110702-31427-rtg4kl-0 /usr/lib/ruby/1.8/tempfile.rb:97:in `close' /usr/lib/ruby/1.8/tempfile.rb:97:in `_close' /usr/lib/ruby/1.8/tempfile.rb:112:in `close' ./lib/sup/modes/edit-message-mode.rb:180:in `edit_message' ./lib/sup/mode.rb:59:in `send' ./lib/sup/mode.rb:59:in `handle_input' ./lib/sup/buffer.rb:278:in `handle_input' bin/sup:271 Signed-off-by: Sascha Silbe --- v1->v2: fix typo (save_message_to_file vs. write_message_to_file) lib/sup/modes/edit-message-mode.rb | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb index 5ed7833..4387f7b 100644 --- a/lib/sup/modes/edit-message-mode.rb +++ b/lib/sup/modes/edit-message-mode.rb @@ -172,12 +172,21 @@ def edit_to; edit_field "To" end def edit_cc; edit_field "Cc" end def edit_subject; edit_field "Subject" end - def edit_message - @file = Tempfile.new "sup.#{self.class.name.gsub(/.*::/, '').camel_to_hyphy}" + def save_message_to_file + @file = Tempfile.new ["sup.#{self.class.name.gsub(/.*::/, '').camel_to_hyphy}", ".eml"] @file.puts format_headers(@header - NON_EDITABLE_HEADERS).first @file.puts @file.puts @body.join("\n") @file.close + end + + def edit_message + begin + save_message_to_file + rescue SystemCallError => e + BufferManager.flash "Can't save message to file: #{e.message}" + return + end editor = $config[:editor] || ENV['EDITOR'] || "/usr/bin/vi" @@ -197,11 +206,12 @@ def edit_message end def edit_message_async - @file = Tempfile.new ["sup.#{self.class.name.gsub(/.*::/, '').camel_to_hyphy}", ".eml"] - @file.puts format_headers(@header - NON_EDITABLE_HEADERS).first - @file.puts - @file.puts @body.join("\n") - @file.close + begin + save_message_to_file + rescue SystemCallError => e + BufferManager.flash "Can't save message to file: #{e.message}" + return + end @mtime = File.mtime @file.path -- 1.7.4.1 _______________________________________________ Sup-devel mailing list Sup-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/sup-devel