diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2015-07-02 20:50:53 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2015-07-02 20:50:53 +0200 |
commit | 15882dcdf9d430cbefcc949bd3972656c58819e5 (patch) | |
tree | 8b177c45839f419361327ac86c654238e4d5856a /degesch.c | |
parent | b4869652775416dde95cfc103d4b03b04828bf60 (diff) | |
download | xK-15882dcdf9d430cbefcc949bd3972656c58819e5.tar.gz xK-15882dcdf9d430cbefcc949bd3972656c58819e5.tar.xz xK-15882dcdf9d430cbefcc949bd3972656c58819e5.zip |
degesch: part channel on /buffer close
Diffstat (limited to 'degesch.c')
-rw-r--r-- | degesch.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -2622,8 +2622,6 @@ buffer_remove (struct app_context *ctx, struct buffer *buffer) { hard_assert (buffer != ctx->current_buffer); - // TODO: part from the channel if needed - input_destroy_buffer (&ctx->input, buffer->input_data); buffer->input_data = NULL; @@ -6091,6 +6089,10 @@ handle_buffer_close (struct app_context *ctx, struct handler_args *a) log_global_error (ctx, "Can't close a server buffer"); else { + // The user would be unable to recreate the buffer otherwise + if (buffer->type == BUFFER_CHANNEL) + irc_send (buffer->server, "PART %s", buffer->channel->name); + if (buffer == ctx->current_buffer) buffer_activate (ctx, buffer_next (ctx, 1)); buffer_remove (ctx, buffer); |