Index: common/conv.h =================================================================== RCS file: /cvsroot/src/dist/nvi/common/conv.h,v retrieving revision 1.3 diff -u -r1.3 conv.h --- common/conv.h 18 Jan 2009 03:43:45 -0000 1.3 +++ common/conv.h 16 Apr 2009 05:46:59 -0000 @@ -2,7 +2,7 @@ #define KEY_COL(sp, ch) \ (INTISWIDE(ch) ? \ - (size_t)CHAR_WIDTH(sp, ch) ? \ + (CHAR_WIDTH(sp, ch) >= 0) ? \ (size_t)CHAR_WIDTH(sp, ch) : 1 /* extra space */ \ : KEY_LEN(sp,ch)) Index: vi/vs_line.c =================================================================== RCS file: /cvsroot/src/dist/nvi/vi/vs_line.c,v retrieving revision 1.4 diff -u -r1.4 vs_line.c --- vi/vs_line.c 18 Jan 2009 03:45:50 -0000 1.4 +++ vi/vs_line.c 16 Apr 2009 05:47:00 -0000 @@ -442,7 +442,7 @@ /* XXXX this needs some rethinking */ if (INTISWIDE(ch)) { /* Put a space before non-spacing char. */ - if (!CHAR_WIDTH(sp, ch)) + if (CHAR_WIDTH(sp, ch) <= 0) *cbp++ = L(' '); *cbp++ = ch; } else