From de5c385e46039d2f7410b5ba4a61f92725d7ca9a Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Thu, 2 Oct 2008 19:01:04 +0200
Subject: charset: charset_init() returns character set

Don't pass "noconvert" to charset_init().  Let charset_init()
determine that with g_get_charset() and return its name.
---
 src/charset.c | 11 +++++------
 src/charset.h |  3 ++-
 src/main.c    |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/charset.c b/src/charset.c
index aaec39c72..701fd2105 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -27,11 +27,13 @@
 extern void screen_status_printf(const char *format, ...);
 
 static bool noconvert = true;
+static const char *charset;
 
-void
-charset_init(bool disable)
+const char *
+charset_init(void)
 {
-	noconvert = disable;
+	noconvert = g_get_charset(&charset);
+	return charset;
 }
 
 unsigned
@@ -75,9 +77,6 @@ utf8_to_locale(const char *utf8str)
 				 &wb, &rb,
 				 &error);
 	if (error) {
-		const char *charset;
-
-		g_get_charset(&charset);
 		screen_status_printf(_("Error: Unable to convert characters to %s"),
 				     charset);
 		g_error_free(error);
diff --git a/src/charset.h b/src/charset.h
index 24f7ef632..70173d19c 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -23,7 +23,8 @@
 #include <stdbool.h>
 #include <stddef.h>
 
-void charset_init(bool disable);
+const char *
+charset_init(void);
 
 /**
  * Returns the number of terminal cells occupied by this string.
diff --git a/src/main.c b/src/main.c
index 0a9f7cb59..07198e7de 100644
--- a/src/main.c
+++ b/src/main.c
@@ -334,7 +334,7 @@ main(int argc, const char *argv[])
 	/* charset */
 	setlocale(LC_CTYPE,"");
 	/* initialize charset conversions */
-	charset_init(g_get_charset(&charset));
+	charset = charset_init();
 #endif
 
 	/* initialize i18n support */
-- 
cgit v1.2.3