From 86f4578d123981c0b72225edc559d107acd8945d Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Fri, 19 Jun 2015 20:47:37 +0200
Subject: degesch: allow specifying server in /disconnect
---
degesch.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/degesch.c b/degesch.c
index ba0e952..9883599 100644
--- a/degesch.c
+++ b/degesch.c
@@ -6536,10 +6536,10 @@ handle_command_connect (struct app_context *ctx, char *arguments)
struct server *s = NULL;
if (*arguments)
{
- char *name = cut_word (&arguments);
- if (!(s = str_map_find (&ctx->servers, name)))
- buffer_send_error (ctx, ctx->global_buffer,
- "%s: %s: %s", "Can't connect", "no such server", name);
+ char *server_name = cut_word (&arguments);
+ if (!(s = str_map_find (&ctx->servers, server_name)))
+ buffer_send_error (ctx, ctx->global_buffer, "%s: %s: %s",
+ "Can't connect", "no such server", server_name);
}
else if (ctx->current_buffer->type == BUFFER_GLOBAL)
buffer_send_error (ctx, ctx->current_buffer,
@@ -6567,9 +6567,15 @@ handle_command_connect (struct app_context *ctx, char *arguments)
static bool
handle_command_disconnect (struct app_context *ctx, char *arguments)
{
- // TODO: take server name from the first argument, if any
struct server *s = NULL;
- if (ctx->current_buffer->type == BUFFER_GLOBAL)
+ if (*arguments)
+ {
+ char *server_name = cut_word (&arguments);
+ if (!(s = str_map_find (&ctx->servers, server_name)))
+ buffer_send_error (ctx, ctx->current_buffer, "%s: %s: %s",
+ "Can't disconnect", "no such server", server_name);
+ }
+ else if (ctx->current_buffer->type == BUFFER_GLOBAL)
buffer_send_error (ctx, ctx->current_buffer,
"%s: %s", "Can't disconnect", "this buffer is global");
else
@@ -6827,7 +6833,7 @@ g_command_handlers[] =
"[]",
handle_command_connect },
{ "disconnect", "Disconnect from the server",
- "[]",
+ "[ []]",
handle_command_disconnect },
{ "list", "List channels and their topic",
"[[,...]] []",
--
cgit v1.2.3-70-g09d2