Summary: | editors/nvi-m17n [patch] fix CJK display problem caused by libncurses | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Yasuhito FUTATSUKI <freebsd-bug-report-yf> |
Component: | Individual Port(s) | Assignee: | Steve Wills <swills> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | freebsd-bug-report-yf, tomioka.satoshi.ml |
Priority: | --- | Keywords: | patch |
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any | ||
Attachments: |
Created attachment 183510 [details]
patch to avoid linking libncurses and use libncursesw instead
the patch fixes the behavior in displayencoding=euc-jp (and parhaps other 8bit encodings), but cannot fix iso-2022 encodings. I think it is caused by ncurses don't support iso-2022 encodings (by accident or dropping support, I don't know which is). In FreeBSD 11.1, nvi-m17n cannot set the "fileencoding" for euc-jp file correctly, when the first line does not contain multi-byte characters. The patch attached may fix this bug. The correction is made by only a single line addition to the multibyte.c but it requires libncursesw. Created attachment 188075 [details]
fileencoding misdetection when the first line does not contain multi-byte letters
In FreeBSD 11.1, nvi-m17n cannot set the "fileencoding" for euc-jp file correctly, when the first line does not include multi-byte characters.
In the current code, all the candidate flags are set for this case, and the encoding is determined to the encoding of the first candidate within all the candidates.
The patch attached may fix this bug.
The correction is made by only a single line addition to the multibyte.c but it requires libncursesw.
Created attachment 188352 [details] patch to correct detection of fileencoding and to avoid disappeared some symbols In the newest port nvi-m17n (1.79.20040608_4,1), even when the previous patch I uploaded (Comment 4) is applied, there is another problem; some well-used multi-byte symbols, e.g. the circle symbol (ISO-2022-JP code 217b) or the multiplication sign (215f), cannot be displayed. I guess that this problem is related to ncursew library, although I could not find the way to fix it. However, this problem can be solved by using the bundled curses codes included in the original ports sources instead of linking /lib/libncursesw.so.8. The new patch is an accumulated patch to apply to nvi-m17n-1.79.20040608_4,1. This can fix two problems. One is to solve the detection error of fileencoding, which is same to the patch uploaded previously (obsoleted). The other is new patch to solve the disappearing the well-used symbols. A commit references this bug: Author: swills Date: Sat Jun 16 22:47:22 UTC 2018 New revision: 472573 URL: https://svnweb.freebsd.org/changeset/ports/472573 Log: editors/nvi-m17n: fix CJK display problem PR: 220013 Submitted by: Satoshi TOMIOKA <tomioka.satoshi.ml@gmail.com> Reported by: Yasuhito FUTATSUKI <freebsd-bug-report-yf@yf.bsdclub.org> Changes: head/editors/nvi-m17n/Makefile head/editors/nvi-m17n/files/patch-common-multibyte.c head/editors/nvi-m17n/files/patch-configure Committed, thanks! |
Created attachment 183498 [details] patch to fix to link libncursesw nvi-m17n links libncurses, not libncursesw. So it cannot display CJK characters correctly on FreeBSD >= 11.0 The patch attached (against editors/nvi-m17n) fixes nvi to link libncursesw instead of libncurses.