diff --git a/ChangeLog b/ChangeLog index 8138155c..373fa3f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -78,7 +78,8 @@ CVS code - - If wcwidth() returns -1 for the character passed in, treat the character as having the width of Unicode U+FFFD (Replacement Character) instead of having zero width, since there are - display problems that crop up with the latter approach. (DLR) + display problems that sometimes crop up with the latter + approach. (DLR) - files.c: read_file() - Remove apparently unneeded logic to handle a case where diff --git a/src/chars.c b/src/chars.c index 531ffad0..ef704422 100644 --- a/src/chars.c +++ b/src/chars.c @@ -299,8 +299,10 @@ int mbwidth(const char *c) width = wcwidth(wc); - if (width == -1) - width = wcwidth(bad_wchar); + if (width == -1) { + wc = bad_wchar; + width = wcwidth(wc); + } return width; } else