aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--degesch.c24
1 files 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;
}