| Summary: | Konsole removes some important Unicode characters from input, such as ZWNJ | ||
|---|---|---|---|
| Product: | [Applications] konsole | Reporter: | Ebrahim Mohammadi <ebrahim> |
| Component: | font | Assignee: | Konsole Bugs <konsole-bugs-null> |
| Status: | RESOLVED UNMAINTAINED | ||
| Severity: | normal | CC: | adaptee |
| Priority: | NOR | ||
| Version First Reported In: | 2.8.3 | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Ebrahim Mohammadi
2011-05-18 07:35:03 UTC
Another important removed character is U+0654. "The zero-width non-joiner (ZWNJ) is a non-printing character used in the computerization of writing systems that make use of ligatures. When placed between two characters that would otherwise be connected into a ligature, a ZWNJ causes them to be printed in their final and initial forms, respectively. This is also an effect of a space character, but a ZWNJ is used when it is desirable to keep the words closer together."
So a ZWNJ is meant to increase the space between two letters. That does not go well with the columns x rows model used by konsole, if I understand it correctly.
Below is the code where ZWNJ is currently simply ignored (the category for ZWNJ is QChar::Other_Format)
void Screen::displayCharacter(unsigned short c)
{
int w = konsole_wcwidth(c);
if (w < 0)
return;
else if (w == 0) {
if (QChar(c).category() != QChar::Mark_NonSpacing)
return;
....
}
No idea about what U+0654 is meant for. Ebrahim Mohammadi, could you provide a test case? And it is better to re-check those problems using KDE SC newer than 4.8 (or just konsole newer than 2.8.0)
Please open a new ticket if this is still an issue w/ a recent KDE5 version |