private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
public static int wcwidth(int ucs) { /* test for 8-bit control characters */ if (ucs == 0) return 0; if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return -1; /* binary search in table of non-spacing characters */ if (bisearch(ucs, combining, combining.length - 1)) return 0; /* if we arrive here, ucs is not a combining or C0/C1 control character */ return 1 + ((ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ ucs == 0x2329 || ucs == 0x232a || (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f) || /* CJK ... Yi */ (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */ (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ (ucs >= 0xffe0 && ucs <= 0xffe6) || (ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd))) ? 1 : 0); }
public static int wcwidth(int ucs) { /* test for 8-bit control characters */ if (ucs == 0) return 0; if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) return -1; /* binary search in table of non-spacing characters */ if (bisearch(ucs, combining, combining.length - 1)) return 0; /* if we arrive here, ucs is not a combining or C0/C1 control character */ return 1 + ((ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ ucs == 0x2329 || ucs == 0x232a || (ucs >= 0x2e80 && ucs <= 0xa4cf && ucs != 0x303f) || /* CJK ... Yi */ (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */ (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ (ucs >= 0xffe0 && ucs <= 0xffe6) || (ucs >= 0x20000 && ucs <= 0x2fffd) || (ucs >= 0x30000 && ucs <= 0x3fffd))) ? 1 : 0); }
int wcwidth(int ucs, int pos) { if (ucs == '\t') { return nextTabStop(pos); } else if (ucs < 32) { return 2; } else { int w = WCWidth.wcwidth(ucs); return w > 0 ? w : 0; } }
private int fmtPrint(final CharSequence buff, int start, int end, int cursorPos) throws IOException { checkNotNull(buff); for (int i = start; i < end; i++) { char c = buff.charAt(i); if (c == '\t') { int nb = nextTabStop(cursorPos); cursorPos += nb; while (nb-- > 0) { out.write(' '); } } else if (c < 32) { out.write('^'); out.write((char) (c + '@')); cursorPos += 2; } else { int w = WCWidth.wcwidth(c); if (w > 0) { out.write(c); cursorPos += w; } } } cursorOk = false; return cursorPos; }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
int wcwidth(int ucs, int pos) { if (ucs == '\t') { return nextTabStop(pos); } else if (ucs < 32) { return 2; } else { int w = WCWidth.wcwidth(ucs); return w > 0 ? w : 0; } }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
private static int consoleWidth(AnsiString s) { CharSequence plain = s.getPlain(); int n = 0; for (int i = 0; i < plain.length(); i++) { n += max(wcwidth(plain.charAt(i)), 0); } return n; } }
private int fmtPrint(final CharSequence buff, int start, int end, int cursorPos) throws IOException { checkNotNull(buff); for (int i = start; i < end; i++) { char c = buff.charAt(i); if (c == '\t') { int nb = nextTabStop(cursorPos); cursorPos += nb; while (nb-- > 0) { out.write(' '); } } else if (c < 32) { out.write('^'); out.write((char) (c + '@')); cursorPos += 2; } else { int w = WCWidth.wcwidth(c); if (w > 0) { out.write(c); cursorPos += w; } } } cursorOk = false; return cursorPos; }