+ /*
+ * Increment the character count, unless
+ * 1) In UTF-8 locale, this is other than the last byte of
+ a multibyte character, or
+ * 2) In C locale, will print a non-printable character.
+ */
+ if ((flags & FORCE7BIT) == 0) {
+ /* UTF-8 locale */
+ if ((flags & INVISIBLE) == 0) {
+ /* If multibyte character, its first byte only. */
+ ++column;
+ }
+ } else {
+ /* If not an ASCII character, the replace character will be
+ displayed. Count it. */
+ if (! isascii((unsigned char) ch) || isprint((unsigned char) ch)) {
+ ++column;
+ }
+ }