X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fwcwidth.h;h=c8fb4d42466f1a9220234da094e5043065f12e13;hp=e261170188b17b5ce880485d8c3f1c0c3a58f6b7;hb=9f479192e3ca3413d235c66bf058f8cc63764898;hpb=ffc2db8cc2a9212f8c02b512eb97919b564b42c1 diff --git a/ncurses/wcwidth.h b/ncurses/wcwidth.h index e2611701..c8fb4d42 100644 --- a/ncurses/wcwidth.h +++ b/ncurses/wcwidth.h @@ -119,7 +119,7 @@ static int bisearch(wchar_t ucs, const struct interval *table, int max) { * in ISO 10646. */ -int mk_wcwidth(wchar_t ucs) +NCURSES_EXPORT(int) mk_wcwidth(wchar_t ucs) { /* sorted list of non-overlapping intervals of non-spacing characters */ /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ @@ -187,7 +187,7 @@ int mk_wcwidth(wchar_t ucs) /* if we arrive here, ucs is not a combining or C0/C1 control character */ - return 1 + + return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ ucs == 0x2329 || ucs == 0x232a || @@ -207,7 +207,7 @@ int mk_wcwidth(wchar_t ucs) } -int mk_wcswidth(const wchar_t *pwcs, size_t n) +NCURSES_EXPORT(int) mk_wcswidth(const wchar_t *pwcs, size_t n) { int w, width = 0; @@ -230,7 +230,7 @@ int mk_wcswidth(const wchar_t *pwcs, size_t n) * the traditional terminal character-width behaviour. It is not * otherwise recommended for general use. */ -int mk_wcwidth_cjk(wchar_t ucs) +NCURSES_EXPORT(int) mk_wcwidth_cjk(wchar_t ucs) { /* sorted list of non-overlapping intervals of East Asian Ambiguous * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */ @@ -298,7 +298,7 @@ int mk_wcwidth_cjk(wchar_t ucs) } -int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) +NCURSES_EXPORT(int) mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) { int w, width = 0;