#1089108 /usr/bin/gnome-terminal: wrongly displays unicode sequences involving combining characters

Package:
gnome-terminal
Source:
gnome-terminal
Description:
GNOME terminal emulator application
Submitter:
Uwe Kleine-König
Date:
2024-12-11 16:21:04 UTC
Severity:
normal
Tags:
#1089108#5
Date:
2024-12-05 18:05:16 UTC
From:
To:
Hello,

The (e.g.) combining Acute Accent (codepoint 0x301, utf-8 representation
"\xcc\x81") is supposed to put an accent on the char just before it.

That is

	echo -e "e\xcc\x81e" | iconv -f utf-8

is supposed to show two e with the first having an accent.

In xterm the output is as expected, in Gnome terminal it's the second e
that gets the accent however.

Best regards
Uwe

#1089108#10
Date:
2024-12-05 18:28:25 UTC
From:
To:
Control: tags -1 + moreinfo

This works as you say it should for me, in gnome-terminal and kgx
(gnome-console).

What byte sequence is output from iconv on your system?
(echo -e "e\xcc\x81e" | iconv -f utf-8 | xxd)

I expect that the answer should be:

00000000: 65cc 8165 0a                             e..e.

which is U+0065 'e', U+0301 combining acute accent, U+0065 'e', newline.

I have version 1.55.0+ds-3, if that matters.

I have version 0.78.2-1, if that matters.

    smcv

#1089108#17
Date:
2024-12-05 18:41:49 UTC
From:
To:
Hello Simon,

thanks for your quick reply.

kgx gets it right for me, too.

Indeed. I only added the iconv in case someone wants to reproduce with a
non-utf-8 encoding.

I updated these two to the version you have (i.e. current unstable) and
the problem persists in gnome-terminal (even after a reboot).
Then maybe a transitive dependency is the culprit???

Best regards
Uwe

#1089108#22
Date:
2024-12-11 15:27:18 UTC
From:
To:
Hello,
reboot :-\

Then I created a new user and tried with that => problem fixed.

Then I created (with my normal user) a new Profile for Gnome Terminal =>
problem fixed.

Then in the old profile switched from the Custom font "Inconsolata"
(provided by package fonts-inconsolata) to Monospace => problem fixed.

The latter even works "live", that is, if I have the Terminal show the
bogus sequence and switch the font, the display is fixed. Same in the
other direction.

Fun-fact: When I switch the font in kgx to Inconsolata, it shows two e
without accent.

Best regards
Uwe

#1089108#27
Date:
2024-12-11 16:17:14 UTC
From:
To:
Control: reassign -1 fonts-inconsolata,gnome-terminal
Control: retitle -1 fonts-inconsolata: combining accents drawn incorrectly in gnome-terminal
Control: tags -1 + help
...

I can reproduce this by restarting gnome-terminal after installing
Inconsolata, and then configuring it to use Inconsolata. For whatever
reason, this didn't happen until I had completely exited all running
gnome-terminal windows so that its background service exited.

This seems like a problem with the rendering of the Inconsolata font -
either a bug in the content of that font, or a bug in some rendering
library (vte? pango? harfbuzz? it's anyone's guess, really) triggered by
something specific to that font.

I can reproduce this, too.

kgx uses GTK 4, while gnome-terminal uses GTK 3, so it's reasonable that
their behaviour is not identical.

    smcv