jenkinsmain
Last change
on this file since 9004d96 was
64efc22,
checked in by Vadim Troshchinskiy <vtroshchinskiy@…>, 19 months ago
|
Update qtermwidget to modern version
|
-
Property mode set to
100644
|
File size:
1.1 KB
|
Line | |
---|
1 | /* $XFree86: xc/programs/xterm/wcwidth.character,v 1.3 2001/07/29 22:08:16 tsi Exp $ */ |
---|
2 | /* |
---|
3 | * This is an implementation of wcwidth() and wcswidth() as defined in |
---|
4 | * "The Single UNIX Specification, Version 2, The Open Group, 1997" |
---|
5 | * <http://www.UNIX-systems.org/online.html> |
---|
6 | * |
---|
7 | * Markus Kuhn -- 2001-01-12 -- public domain |
---|
8 | */ |
---|
9 | |
---|
10 | #include <QString> |
---|
11 | |
---|
12 | #ifdef HAVE_UTF8PROC |
---|
13 | #include <utf8proc.h> |
---|
14 | #else |
---|
15 | #include <cwchar> |
---|
16 | #endif |
---|
17 | |
---|
18 | #include "konsole_wcwidth.h" |
---|
19 | |
---|
20 | int konsole_wcwidth(wchar_t ucs) |
---|
21 | { |
---|
22 | #ifdef HAVE_UTF8PROC |
---|
23 | utf8proc_category_t cat = utf8proc_category( ucs ); |
---|
24 | if (cat == UTF8PROC_CATEGORY_CO) { |
---|
25 | // Co: Private use area. libutf8proc makes them zero width, while tmux |
---|
26 | // assumes them to be width 1, and glibc's default width is also 1 |
---|
27 | return 1; |
---|
28 | } |
---|
29 | return utf8proc_charwidth( ucs ); |
---|
30 | #else |
---|
31 | return wcwidth( ucs ); |
---|
32 | #endif |
---|
33 | } |
---|
34 | |
---|
35 | // single byte char: +1, multi byte char: +2 |
---|
36 | int string_width( const std::wstring & wstr ) |
---|
37 | { |
---|
38 | int w = 0; |
---|
39 | for ( size_t i = 0; i < wstr.length(); ++i ) { |
---|
40 | w += konsole_wcwidth( wstr[ i ] ); |
---|
41 | } |
---|
42 | return w; |
---|
43 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.