On 7/9/2019 10:37 AM, Taco Hoekwater wrote:

On 8 Jul 2019, at 17:18, mf <mass...@fastwebnet.it> wrote:

Hello list,
i've played a bit with interfaces.definecommand, that lets you define TeX macros from lua 
(see the "ConTeXt Lua Documents", 7.3 User interfacing).

I found that the commands defined by interfaces.definecommand fail when you 
pass string arguments that contain brackets.

I think cldf-int.lua needs a patch to support those kind of arguments.

FYI, it fails because definecommand() creates a \myCommand that is equivalent 
to this:

   \def\myCommand#1{\ctxlua {_clmm_('myCommand',[[#1]])}}

The [[…]] is the lua multi-line string syntax, like /* */ in C.

So if the #1 expands into \blank[line], that produces [[\blank[line]]] 
resulting in a trailing extra ‘]’, which is a lua syntax error.

In the meantime it's possible to bypass the problem passing arguments with 
brackets inside double braces, as in the MWE attached.

Adding a space at the end also works, but a core patch makes sense to me.
i'll re-implment it in a more modern way


                                          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 

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 via email to