-/* $Id: term_ascii.c,v 1.15 2011/05/17 22:32:45 kristaps Exp $ */
+/* $Id: term_ascii.c,v 1.17 2011/05/20 15:48:22 kristaps Exp $ */
/*
* Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
#include "term.h"
#include "main.h"
+/*
+ * Sadly, this doesn't seem to be defined on systems even when they
+ * support it. For the time being, remove it and let those compiling
+ * the software decide for themselves what to use.
+ */
+#if 0
#if ! defined(__STDC_ISO_10646__)
# undef USE_WCHAR
#endif
+#endif
static struct termp *ascii_init(enum termenc, char *);
static double ascii_hspan(const struct termp *,
p->letter = ascii_letter;
p->width = ascii_width;
-#if defined (USE_WCHAR)
- if (TERMENC_LOCALE == enc)
- if (setlocale(LC_ALL, "") && MB_CUR_MAX > 1) {
+#ifdef USE_WCHAR
+ if (TERMENC_ASCII != enc) {
+ v = TERMENC_LOCALE == enc ?
+ setlocale(LC_ALL, "") :
+ setlocale(LC_CTYPE, "UTF-8");
+ if (NULL != v && MB_CUR_MAX > 1) {
p->enc = enc;
p->advance = locale_advance;
p->endline = locale_endline;
p->letter = locale_letter;
p->width = locale_width;
}
+ }
#endif
toks[0] = "width";
return(ascii_init(TERMENC_ASCII, outopts));
}
+void *
+utf8_alloc(char *outopts)
+{
+
+ return(ascii_init(TERMENC_UTF8, outopts));
+}
+
+
void *
locale_alloc(char *outopts)
{