ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Max Chernoff via ntg-context <ntg-context@ntg.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Max Chernoff <mseven@telus.net>
Subject: \setextrafontkerns can cause an infinite loop
Date: Thu, 30 Jun 2022 03:16:38 -0600	[thread overview]
Message-ID: <718d6053-69ea-6514-9203-97127bc6480b@telus.net> (raw)

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

-- 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
___________________________________________________________________________________

             reply	other threads:[~2022-06-30  9:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-30  9:16 Max Chernoff via ntg-context [this message]
2022-06-30 18:33 ` Hans Hagen via ntg-context

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=718d6053-69ea-6514-9203-97127bc6480b@telus.net \
    --to=ntg-context@ntg.nl \
    --cc=mseven@telus.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).