Re: [NTG-context] \setextrafontkerns can cause an infinite loop

2022-06-30 Thread Hans Hagen via ntg-context

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
-
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


[NTG-context] \setextrafontkerns can cause an infinite loop

2022-06-30 Thread Max Chernoff via ntg-context

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.old2022-06-30 
03:05:17.702804200 -0600
+++ texmf-context/tex/context/base/mkiv/typo-fkr.lua2022-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

-- Max


___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___