From: its.jeff.balogh@gmail.com (Jeff Balogh)
Subject: [sup-talk] [PATCH] don't try to open the next thread if there isn't one available
Date: Wed, 30 Jan 2008 18:05:40 -0500 [thread overview]
Message-ID: <1201732604-sup-4815@archie> (raw)
In-Reply-To: <1201681010-sup-3463@archie>
Jeff Balogh wrote:
> When you're on the last thread of a ThreadSet and press ',<key>',
> nothing happens, but you can't '.<key>' since @dying == true. This
> patch changes :next to :kill if there is no next thread.
> ---
> I usually traverse my inbox with ',a', so it annoys me when sup gets stuck on
> the last thread. This patch implements what I expect to happen: the thread is
> killed and the previous buffer pops up.
Ok, this patch causes a no block given exception with ',n' on the last thread.
As you might expect, no block is given with the do nothing command.
Here's where it's happening:
def dispatch op
return if @dying
@dying = true
op = :kill unless @index_mode.has_thread_after(@thread)
case op
when :next
@index_mode.launch_next_thread_after(@thread) do
@thread.save Index if block_given? && yield
BufferManager.kill_buffer_safely buffer
end
when :kill
@thread.save Index if yield
BufferManager.kill_buffer_safely buffer
else
raise ArgumentError, "unknown thread dispatch operation #{op.inspect}"
end
end
The :next case guards against this exception with 'if block_given? && yield'. If
I put that in the :kill case, those two lines will be exact duplicates of the
lines above.
Is there a clean way to handle this? I'm learning Ruby as I go along, so please
forgive me if the answer is obvious.
next prev parent reply other threads:[~2008-01-30 23:05 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-30 8:21 Jeff Balogh
2008-01-30 15:43 ` John Bent
2008-02-05 17:27 ` William Morgan
2008-02-06 16:21 ` John Bent
2008-01-30 23:05 ` Jeff Balogh [this message]
2008-02-03 4:35 ` William Morgan
2008-02-03 4:31 ` William Morgan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1201732604-sup-4815@archie \
--to=its.jeff.balogh@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox