summaryrefslogtreecommitdiff
path: root/bk_text.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2004-04-22 17:47:28 +0000
committerSimon Tatham <anakin@pobox.com>2004-04-22 17:47:28 +0000
commit3e7ac03ca71c9b93c73fa58fd1de9a2042ec13d7 (patch)
tree6e01e5ddf83e8430bf84daa7a1af625a1c44e274 /bk_text.c
parentc097d194c02212f642af2b2be68a0b8aa3ee17c0 (diff)
downloadhalibut-3e7ac03ca71c9b93c73fa58fd1de9a2042ec13d7.zip
halibut-3e7ac03ca71c9b93c73fa58fd1de9a2042ec13d7.tar.gz
halibut-3e7ac03ca71c9b93c73fa58fd1de9a2042ec13d7.tar.bz2
halibut-3e7ac03ca71c9b93c73fa58fd1de9a2042ec13d7.tar.xz
bk_text and bk_info both need to know the on-screen width of
characters in order to wrap and align them properly. Therefore, they should be using wcwidth(). So here are a couple of wrappers on wcwidth(), one which filters out the Unicode characters not representable in the target charset, and one which converts _from_ a charset to Unicode before calling wcwidth(). bk_text and bk_info should now align correctly even in the face of unsupported characters and Japanese. [originally from svn r4116]
Diffstat (limited to 'bk_text.c')
-rw-r--r--bk_text.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/bk_text.c b/bk_text.c
index 373de74..8fa7340 100644
--- a/bk_text.c
+++ b/bk_text.c
@@ -480,7 +480,7 @@ static int text_width(void *ctx, word *text) {
attraux(text->aux) == attr_Always ? 0 : 1)
: 0) +
(cvt_ok(charset, text->text) || !text->alt ?
- ustrlen(text->text) :
+ ustrwid(text->text, charset) :
text_width_list(ctx, text->alt)));
case word_WhiteSpace: