* gitk crashes if the diff contains certain unicode characters
@ 2020-04-19 12:15 Glax
2020-04-19 13:02 ` Andreas Schwab
2020-04-19 14:30 ` Danh Doan
0 siblings, 2 replies; 3+ messages in thread
From: Glax @ 2020-04-19 12:15 UTC (permalink / raw)
To: git
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
Note that if I now commit, gitk will crash at startup because the diff
with the character are on the last commit (which gitk selects by default)
git commit -am crash
gitk # crashes
gitk HEAD^ # works fine
After that, you can add a couple more commits and gitk works fine,
unless you click on one of the commits whose diff contain the character.
eg:
echo foo >foo
git commit -am foo
echo bar >foo
git commit -am bar
gitk
Version / System:
$ git --version
git version 2.20.1
$ lsb_release -d
Description: Ubuntu 19.10
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: gitk crashes if the diff contains certain unicode characters
2020-04-19 12:15 gitk crashes if the diff contains certain unicode characters Glax
@ 2020-04-19 13:02 ` Andreas Schwab
2020-04-19 14:30 ` Danh Doan
1 sibling, 0 replies; 3+ messages in thread
From: Andreas Schwab @ 2020-04-19 13:02 UTC (permalink / raw)
To: Glax; +Cc: git
On Apr 19 2020, Glax wrote:
> 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:
Worksforme. Could be a bug in your tk library.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: gitk crashes if the diff contains certain unicode characters
2020-04-19 12:15 gitk crashes if the diff contains certain unicode characters Glax
2020-04-19 13:02 ` Andreas Schwab
@ 2020-04-19 14:30 ` Danh Doan
1 sibling, 0 replies; 3+ messages in thread
From: Danh Doan @ 2020-04-19 14:30 UTC (permalink / raw)
To: Glax; +Cc: git
On 2020-04-19 14:15:06+0200, Glax <glax@dragon.best> 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-04-19 14:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-19 12:15 gitk crashes if the diff contains certain unicode characters Glax
2020-04-19 13:02 ` Andreas Schwab
2020-04-19 14:30 ` Danh Doan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.