From 75b2fc1da23df41d501f5b2d2e2a9bacc71e445b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Thu, 16 Apr 2015 21:16:10 +0200 Subject: [PATCH] degesch: factor out buffer_goto() And make M-[0-9] ding if there's no such buffer. --- degesch.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/degesch.c b/degesch.c index db07059..f65292a 100644 --- a/degesch.c +++ b/degesch.c @@ -938,6 +938,20 @@ buffer_activate (struct app_context *ctx, struct buffer *buffer) refresh_prompt (ctx); } +/// Activate the n-th buffer, counting from one +static bool +buffer_goto (struct app_context *ctx, int n) +{ + int i = 0; + LIST_FOR_EACH (struct buffer, iter, ctx->buffers) + if (++i == n) + { + buffer_activate (ctx, iter); + return true; + } + return false; +} + static void init_buffers (struct app_context *ctx) { @@ -1328,15 +1342,9 @@ on_readline_goto_buffer (int count, int key) if (n == 0) n = 10; - // Activate the n-th buffer - int i = 0; struct app_context *ctx = g_ctx; - LIST_FOR_EACH (struct buffer, iter, ctx->buffers) - if (++i == n) - { - buffer_activate (ctx, iter); - break; - } + if (!buffer_goto (ctx, n)) + rl_ding (); return 0; }