[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