X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/e345f8fdce3a18cab73f3edf65ca60f8357efda0..08aa8c17c3241bb5c6a997ed2e01e25a4d0089ce:/sbr/check_charset.c diff --git a/sbr/check_charset.c b/sbr/check_charset.c index f45448da..d6b8ca34 100644 --- a/sbr/check_charset.c +++ b/sbr/check_charset.c @@ -10,6 +10,25 @@ */ #include +#ifdef HAVE_LANGINFO_H +# include +#endif + + +/* + * Get the current character set + */ +char * +get_charset () +{ + char *charset = getenv ("MM_CHARSET"); +#if defined(HAVE_NL_LANGINFO) && defined(CODESET) + if (!charset) + charset = norm_charmap(nl_langinfo (CODESET)); +#endif + return charset; +} + /* * Check if we can display a given character set natively. @@ -28,7 +47,7 @@ check_charset (char *str, int len) /* Cache the name of our default character set */ if (!mm_charset) { - if (!(mm_charset = getenv ("MM_CHARSET"))) + if (!(mm_charset = get_charset ())) mm_charset = "US-ASCII"; mm_len = strlen (mm_charset); @@ -63,7 +82,7 @@ write_charset_8bit (void) * Cache the name of the character set to * use for 8bit text. */ - if (!mm_charset && !(mm_charset = getenv ("MM_CHARSET"))) + if (!mm_charset && !(mm_charset = get_charset ())) mm_charset = "x-unknown"; return mm_charset;