<table><tr><td style="">mglb created this revision.<br />mglb added a reviewer: Konsole.<br />Restricted Application added a project: Konsole.<br />mglb requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D12236">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Currently Unicode uses 0x10FFFF code points. It is possible to represent<br />
all of them with up to two 16 bit values (UTF-16), but this makes it<br />
harder to e.g. check for their width.</p>

<p>Some test cases were changed. Originally they were added with an<br />
assumption that the code point will be truncated to 16 bit value and<br />
as a result changed to another code point.</p></div></div><br /><div><strong>TEST PLAN</strong><div><ul class="remarkup-list">
<li class="remarkup-list-item">All code points <= 0xFFFF should work as before<ul class="remarkup-list">
<li class="remarkup-list-item">Start the same tmux session in two Konsoles</li>
<li class="remarkup-list-item">Change background to fully transparent in one of them and put it in front of the other one, so that all text will overlap</li>
<li class="remarkup-list-item">Generate characters with: <tt style="background: #ebebeb; font-size: 13px;">`</tt> perl -XCSDL -e 'print map{chr($_), " "} 1..0xffff' <tt style="background: #ebebeb; font-size: 13px;">`</tt> (you can pipe it to <tt style="background: #ebebeb; font-size: 13px;">fold -s | less -r</tt>)</li>
<li class="remarkup-list-item">Compare output visually.</li>
</ul></li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Code points > 0xFFFF should not be truncated to 16 bits<ul class="remarkup-list">
<li class="remarkup-list-item">"𝐀" and "퐀" should be different characters</li>
</ul></li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Some code points > 0xFFFF should have single width<ul class="remarkup-list">
<li class="remarkup-list-item">Vertical lines below should align: <tt style="background: #ebebeb; font-size: 13px;">`</tt> 𝐀 | 🐈| <tt style="background: #ebebeb; font-size: 13px;">`</tt></li>
</ul></li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R319 Konsole</div></div></div><br /><div><strong>BRANCH</strong><div><div>wip/Change-internal-character-type-size-to-32-bit</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D12236">https://phabricator.kde.org/D12236</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>src/Character.h<br />
src/Emulation.cpp<br />
src/Emulation.h<br />
src/ExtendedCharTable.cpp<br />
src/ExtendedCharTable.h<br />
src/Screen.cpp<br />
src/Screen.h<br />
src/TerminalCharacterDecoder.cpp<br />
src/TerminalDisplay.cpp<br />
src/Vt102Emulation.cpp<br />
src/Vt102Emulation.h<br />
src/autotests/CharacterWidthTest.cpp<br />
src/konsole_wcwidth.cpp<br />
src/konsole_wcwidth.h</div></div></div><br /><div><strong>To: </strong>mglb, Konsole<br /><strong>Cc: </strong>Konsole, herrold, ngraham, hindenburg<br /></div>