From cbf4f77d6b81f6eb7a82a89311c04c9234ea7fbc Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@telfort.nl>
Date: Tue, 12 Sep 2017 21:35:35 +0200
Subject: [PATCH] titlebar: don't reshow version when dropping back to a single
 buffer

When multiple files were open and [x/n] was being shown in the title
bar, don't show nano's name and version number when just one buffer
remains open, but show [1/1] instead.  It is less surprising.
---
 src/files.c  | 1 +
 src/global.c | 3 +++
 src/proto.h  | 2 ++
 src/winio.c  | 2 +-
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/files.c b/src/files.c
index bf8d8f05..df3bb3e3 100644
--- a/src/files.c
+++ b/src/files.c
@@ -78,6 +78,7 @@ void make_new_buffer(void)
 
 	/* There is more than one file open: show "Close" in help lines. */
 	exitfunc->desc = close_tag;
+	more_than_one = TRUE;
     }
 
     /* Make the new buffer the current one, and start initializing it. */
diff --git a/src/global.c b/src/global.c
index 328d20f2..7a56664b 100644
--- a/src/global.c
+++ b/src/global.c
@@ -70,6 +70,9 @@ bool inhelp = FALSE;
 char *title = NULL;
 	/* When not NULL: the title of the current help text. */
 
+bool more_than_one = FALSE;
+	/* Whether more than one buffer is or has been open. */
+
 int didfind = 0;
 	/* Whether the last search found something. */
 
diff --git a/src/proto.h b/src/proto.h
index 13cc5369..a9f826b3 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -56,6 +56,8 @@ extern filestruct *pletion_line;
 extern bool inhelp;
 extern char *title;
 
+extern bool more_than_one;
+
 extern int didfind;
 
 extern int controlleft;
diff --git a/src/winio.c b/src/winio.c
index ebc37008..86f67b36 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2030,7 +2030,7 @@ void titlebar(const char *path)
      * then sacrifice the prefix, and only then start dottifying. */
 
     /* When multiple buffers are open, show which one out of how many. */
-    if (path == NULL && firstfile != firstfile->next) {
+    if (path == NULL && more_than_one) {
 	indicator = charalloc(24);
 	sprintf(indicator, "[%i/%i]", buffer_number(openfile),
 					buffer_number(firstfile->prev));
-- 
GitLab