GNU bug report logs -
#64420
string-width of … is 2 in CJK environments
Previous Next
Full log
View this message in rfc822 format
> Date: Sun, 2 Jul 2023 15:57:07 +0300
> From: Dmitry Gutov <dmitry <at> gutov.dev>
>
> Hi! This was reported to company-mode
> (https://github.com/company-mode/company-mode/issues/1388), as a
> scenario that makes the overlay-based completion popup misrender because
> the columns are not computed right when that char is present.
>
> To repro:
>
> (set-language-environment "Chinese-BIG5")
> (string-width "…") ;; => 2
>
> In the default language environment its width is reported to be 1.
>
> This doesn't seem to make sense because it's rendered one column wide
> either way.
On GUI frames Lisp programs that need to know the actual width of some
string should use string-pixel-width, not string-width. The latter is
basically only for TTY frames.
(progn
(set-language-environment "Chinese-BIG5")
(ceiling (/ (string-pixel-width "…")
(float (default-font-width))))) ;; => 1
This bug report was last modified 2 years and 1 day ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.