Subject: Re: gitk crashes if the diff contains certain unicode characters

From: Danh Doan <[email-masked]>
Date: Sun, 19 Apr 2020 21:30:08 +0700

On 2020-04-19 14:15:06+0200, Glax <[email-masked]> wrote:
> Looks like certain characters cause gitk to crash when it tries to
> render a diff.
> 
> 
> How to repro:
> 
> 	git init
> 	echo foo >foo
> 	git add foo
> 	git commit -m foo
> 	# The following assumes bash builtin echo
> 	echo -e '\u2754' >foo
> 	gitk
> 
> Now `foo` should contain the character U+2754 encoded as utf-8.
> 
> If on gitk you click on "Local uncommitted changes", it'll crash with
> the following message:
> 
> 	X Error of failed request:  BadLength (poly request too large or
> internal Xlib length error)
> 	  Major opcode of failed request:  139 (RENDER)
> 	  Minor opcode of failed request:  20 (RenderAddGlyphs)
> 	  Serial number of failed request:  4220
> 	  Current serial number in output stream:  4247

U+2754 is *WHITE* QUESTION MARK ORNAMENT
The error message is very familiar to me.

I /think/ it's a bug in libXft, it can't handle colored emoji, yet.

There're similar issue reported to Google Noto Emoji font:
https://github.com/googlefonts/noto-emoji/issues/183

-- 
Danh