diff options
Diffstat (limited to 'degesch.c')
-rw-r--r-- | degesch.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -1527,10 +1527,20 @@ buffer_send_internal (struct app_context *ctx, struct buffer *buffer, buffer->lines_count++; if (buffer == ctx->current_buffer) + { buffer_line_display (ctx, line, false); - else if (!ctx->isolate_buffers && - (buffer == ctx->global_buffer || - buffer == ctx->current_buffer->server->buffer)) + return; + } + + bool can_leak = false; + if ((buffer == ctx->global_buffer) + || (ctx->current_buffer->type == BUFFER_GLOBAL + && buffer->type == BUFFER_SERVER) + || (ctx->current_buffer->type != BUFFER_GLOBAL + && buffer == ctx->current_buffer->server->buffer)) + can_leak = true; + + if (!ctx->isolate_buffers && can_leak) buffer_line_display (ctx, line, true); else { |