diff --git a/degesch.c b/degesch.c index 61355ef..b84aad6 100644 --- a/degesch.c +++ b/degesch.c @@ -1328,8 +1328,6 @@ channel_user_destroy (struct channel_user *self) // We keep references to channels in their buffers, // and weak references in their users and the name lookup table. -// XXX: this doesn't really have to be reference countable - struct channel { REF_COUNTABLE_HEADER @@ -3366,11 +3364,14 @@ line_wrap_flush (struct line_wrap_state *s, bool force_split) else if (force_split || s->chunk.used > s->line_max) { #ifdef WRAP_UNNECESSARILY - // Use the entire line and split the chunk in the middle + // When the line wraps at the end of the screen and a background colour + // is set, the terminal paints the entire new line with that colour. + // Explicitly inserting a newline with the default attributes fixes it. line_wrap_flush_split (s, &s->overflow); #else - // We don't actually _need_ to split here, and doing so will break - // link searching mechanisms in some terminals + // Splitting here breaks link searching mechanisms in some terminals, + // though, so we make a trade-off and let the chunk wrap naturally. + // Fuck terminals, really. s->line_used = s->overflow.used; #endif } @@ -10136,7 +10137,6 @@ handle_command_buffer (struct handler_args *a) else if (!strcasecmp_ascii (action, "clear")) { buffer_clear (a->buffer); - // XXX: clear screen? buffer_print_backlog (ctx, a->buffer); } else if (!strcasecmp_ascii (action, "move"))