[NTG-context] \setextrafontkerns can cause an infinite loop
Hans Hagen
j.hagen at freedom.nl
Thu Jun 30 20:33:53 CEST 2022
On 6/30/2022 11:16 AM, Max Chernoff via ntg-context wrote:
> Sometimes using \setextrafontkerns can cause an infinite loop.
>
> Example 1:
>
> \setextrafontkerns[max]
>
> \starttext
> l\it l
> \stoptext
>
> Example 2:
>
> \setupbodyfont[libertinus]
>
> \setextrafontkerns[max]
>
> \starttext
> x\ss x
> \stoptext
>
> Both of these examples cause ConTeXt to get stuck until it runs out of
> memory. This happens in both MkIV and MkXL.
>
> This patch seems to fix the issue (although it may break other things...):
>
> --- texmf-context/tex/context/base/mkiv/typo-fkr.old 2022-06-30
> 03:05:17.702804200 -0600
> +++ texmf-context/tex/context/base/mkiv/typo-fkr.lua 2022-06-30
> 03:05:22.286858200 -0600
> @@ -57,6 +57,7 @@
> end
> if kern ~= 0 then
> head, current =
> insertbefore(head,current,new_kern(kern))
> + current = getnext(current)
> end
> lastdata = data
> else
> @@ -69,6 +70,7 @@
> local kern = getkernpair(lastdata,lastchar,char)
> if kern ~= 0 then
> head, current =
> insertbefore(head,current,new_kern(kern))
> + current = getnext(current)
> end
> end
> lastchar = char
just
head =
insertbefore(head,current,new_kern(kern))
will do
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list