From d0db1a6cdc7081af1de58683ed38f8aace267375 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch 
Date: Fri, 15 Jan 2016 05:08:54 +0100
Subject: degesch: enforce fullscreen buffers
Probably long overdue.
Now we actually look like something resembling a regular IRC client.
---
 NEWS      |  2 ++
 degesch.c | 16 ++++------------
 2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/NEWS b/NEWS
index dc455df..e481cac 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,8 @@
 
  * Use TLS Server Name Indication when connecting to servers
 
+ * degesch: now we erase the screen before displaying buffers
+
  * degesch: added autocomplete for /topic
 
  * degesch: resolve remote addresses asynchronously
diff --git a/degesch.c b/degesch.c
index bf8ab95..2030647 100644
--- a/degesch.c
+++ b/degesch.c
@@ -1514,7 +1514,6 @@ struct app_context
 	char *attrs[ATTR_COUNT];            ///< Terminal attributes
 	bool isolate_buffers;               ///< Isolate global/server buffers
 	bool beep_on_highlight;             ///< Beep on highlight
-	bool fullscreen_buffers;            ///< Buffers take the whole screen
 	bool logging;                       ///< Logging to file enabled
 	bool show_all_prefixes;             ///< Show all prefixes before nicks
 
@@ -1715,7 +1714,6 @@ static void on_config_logging_change (struct config_item *item);
 	}
 
 TRIVIAL_BOOLEAN_ON_CHANGE (isolate_buffers)
-TRIVIAL_BOOLEAN_ON_CHANGE (fullscreen_buffers)
 TRIVIAL_BOOLEAN_ON_CHANGE (beep_on_highlight)
 
 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -1876,11 +1874,6 @@ static struct config_schema g_config_behaviour[] =
 	  .type      = CONFIG_ITEM_BOOLEAN,
 	  .default_  = "off",
 	  .on_change = on_config_isolate_buffers_change },
-	{ .name      = "fullscreen_buffers",
-	  .comment   = "Space above buffer contents is filled with whitespace",
-	  .type      = CONFIG_ITEM_BOOLEAN,
-	  .default_  = "off",
-	  .on_change = on_config_fullscreen_buffers_change },
 	{ .name      = "beep_on_highlight",
 	  .comment   = "Beep when highlighted or on a new invisible PM",
 	  .type      = CONFIG_ITEM_BOOLEAN,
@@ -3412,11 +3405,11 @@ buffer_print_backlog (struct app_context *ctx, struct buffer *buffer)
 	// That is, minus the readline prompt
 	int display_limit = MAX (10, g_terminal.lines - 1);
 
-	terminal_printer_fn printer = get_attribute_printer (stdout);
-	if (ctx->fullscreen_buffers)
+	// Simulate curses-like fullscreen buffers if the terminal allows it
+	if (clear_screen)
 	{
-		if (soft_assert (clear_screen))
-			tputs (clear_screen, 1, printer);
+		terminal_printer_fn printer = get_attribute_printer (stdout);
+		tputs (clear_screen, 1, printer);
 		if (cursor_to_ll)
 			tputs (cursor_to_ll, 1, printer);
 		else if (row_address)
@@ -3432,7 +3425,6 @@ buffer_print_backlog (struct app_context *ctx, struct buffer *buffer)
 			iconv_xstrdup (ctx->term_from_utf8, buffer->name, -1, NULL);
 		print_status ("%s", buffer_name_localized);
 		free (buffer_name_localized);
-		display_limit--;
 	}
 
 	struct buffer_line *line = buffer->lines_tail;
-- 
cgit v1.2.3-70-g09d2