diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-05-17 22:32:45 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2011-05-17 22:32:45 +0000 |
commit | 71405e53b941d50754fb4041993c7ef5ad4c5654 (patch) | |
tree | 0a18494430e5b8fbe125f79052c2d8ab12d1d87c /Makefile | |
parent | ae85c53a20e295bcb9eecc8a2d24955c35392839 (diff) | |
download | mandoc-71405e53b941d50754fb4041993c7ef5ad4c5654.tar.gz |
Locale support. I'm checking this in to clean up fall-out in-tree, but
it looks pretty good. Basically, the -Tlocale option propogates into
term_ascii.c, where we set locale-specific console call-backs IFF (1)
setlocale() works; (2) locale support is compiled in (see Makefile for
-DUSE_WCHAR); (3) the internal structure of wchar_t maps directly to
Unicode codepoints as defined by __STDC_ISO_10646__; and (4) the console
supports multi-byte characters.
To date, this configuration only supports GNU/Linux. OpenBSD doesn't
export __STDC_ISO_10646__ although I'm told by stsp@openbsd.org that it
should (it has the correct map). Apparently FreeBSD is the same way.
NetBSD? Don't know. Apple also supports this, but doesn't define the
macro. Special-casing!
Benchmark: -Tlocale incurs less than 0.2 factor overhead when run
through several thousand manuals when UTF8 output is enabled. Native
mode (whether directly -Tascii or through no locale or whatever) is
UNCHANGED: the function callbacks are the same as before.
Note. If the underlying system does NOT support STDC_ISO_10646, there
is a "slow" version possible with iconv or other means of flipping from
a Unicode codepoint to a wchar_t.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -13,7 +13,10 @@ VERSION = 1.11.2 VDATE = 12 May 2011 -CFLAGS += -g -DHAVE_CONFIG_H -DVERSION="\"$(VERSION)\"" +# If your system doesn't support multi-byte functions (specifically +# setlocale(), wcwidth(), putwchar()), then remove -DUSE_CHAR. You'll +# still be able to use -Tlocale, but it becomes a synonym for -Tascii. +CFLAGS += -g -DUSE_WCHAR -DHAVE_CONFIG_H -DVERSION="\"$(VERSION)\"" CFLAGS += -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings PREFIX = /usr/local BINDIR = $(PREFIX)/bin |