aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/charset.c13
-rw-r--r--src/charset.h4
-rw-r--r--src/main.c4
3 files changed, 20 insertions, 1 deletions
diff --git a/src/charset.c b/src/charset.c
index 42c0e6034..095817d15 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -23,6 +23,7 @@
#include <string.h>
#include <glib.h>
+#ifdef HAVE_LOCALE_H
static bool noconvert = true;
static const char *charset;
@@ -31,13 +32,16 @@ charset_init(void)
{
noconvert = g_get_charset(&charset);
return charset;
+ return NULL;
}
+#endif
unsigned
utf8_width(const char *str)
{
assert(str != NULL);
+#ifdef HAVE_LOCALE_H
if (g_utf8_validate(str, -1, NULL)) {
size_t len = g_utf8_strlen(str, -1);
unsigned width = 0;
@@ -51,12 +55,14 @@ utf8_width(const char *str)
return width;
} else
+#endif
return strlen(str);
}
char *
utf8_to_locale(const char *utf8str)
{
+#ifdef HAVE_LOCALE_H
gchar *str;
GError *error;
@@ -75,11 +81,15 @@ utf8_to_locale(const char *utf8str)
}
return str;
+#else
+ return g_strdup(utf8str);
+#endif
}
char *
locale_to_utf8(const char *localestr)
{
+#ifdef HAVE_LOCALE_H
gchar *str;
GError *error;
@@ -98,4 +108,7 @@ locale_to_utf8(const char *localestr)
}
return str;
+#else
+ return g_strdup(localestr);
+#endif
}
diff --git a/src/charset.h b/src/charset.h
index 70173d19c..0cb69d135 100644
--- a/src/charset.h
+++ b/src/charset.h
@@ -20,11 +20,15 @@
#ifndef CHARSET_H
#define CHARSET_H
+#include "config.h"
+
#include <stdbool.h>
#include <stddef.h>
+#ifdef HAVE_LOCALE_H
const char *
charset_init(void);
+#endif
/**
* Returns the number of terminal cells occupied by this string.
diff --git a/src/main.c b/src/main.c
index 07198e7de..668d5aa33 100644
--- a/src/main.c
+++ b/src/main.c
@@ -323,7 +323,9 @@ int
main(int argc, const char *argv[])
{
struct sigaction act;
+#ifdef HAVE_LOCALE_H
const char *charset = NULL;
+#endif
GIOChannel *keyboard_channel;
#ifdef HAVE_LOCALE_H
@@ -335,7 +337,6 @@ main(int argc, const char *argv[])
setlocale(LC_CTYPE,"");
/* initialize charset conversions */
charset = charset_init();
-#endif
/* initialize i18n support */
#ifdef ENABLE_NLS
@@ -344,6 +345,7 @@ main(int argc, const char *argv[])
bind_textdomain_codeset(GETTEXT_PACKAGE, charset);
textdomain(GETTEXT_PACKAGE);
#endif
+#endif
/* initialize options */
options_init();