Re: [NTG-context] Last version standalone ConTeXt issue.

2016-10-10 Thread Meer, Hans van der
This is an interesting feature for handling a call to an undefined macro (as 
might result from \csnam#1\endcsname, for example.

>
> \starttext
>
> \startluacode
>
> function interfaces.defined(name)
>return token.get_cmdname(token.create(name)) ~= "undefined_cs"
> end
>
> if interfaces.defined("foo") then
>context("foo")
> else
>interfaces.setmacro("foo","bar")
> end
>
> \stopluacode
>
> \foo
>
> \stoptext
>
> I'll add interfaces.defined to the core.
>
> -
>  Hans Hagen | PRAGMA ADE
>  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
>  tel: 038 477 53 69 | www.pragma-ade.com | 
> www.pragma-pod.nl
> -

As an example I executed the following code:

\starttext
\framed{\ConTeXt-version = \contextversion}\blank

\def\nofoo{This is nofoo}
\startluacode
if interfaces.defined("foo") then
   context("foo")
else
   interfaces.setmacro("foo","nofoo")
end
\stopluacode
\tex{foo} is undefined: "\foo"\crlf
\def\foo{This is foo}
\tex{foo} is defined: "\foo"\crlf
\stoptext

The result of the first call to \foo, however, is not "This is nofoo" but the 
name of the nofoo macro. I expected that \nofoo would have been executed 
instead. That would have been beneficial, because the missing macro \foo can 
then be substituted for something the programmer thinks useful.
Is this correct? Or am I doing something wrong?

Hans van der Meer





tester.pdf
Description: tester.pdf
___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Last version standalone ConTeXt issue.

2016-02-09 Thread Jaroslav Hajtmar

Thanx Hans.
Great! It works fine now! For me it is very useful and important macro.
One more thanx for reply.

Jaroslav Hajtmar



Dne 09.02.16 v 19:50 Hans Hagen napsal(a):

On 2/9/2016 1:28 PM, Jaroslav Hajtmar wrote:

Hello ConTeXist.

In the latest version ConTeXt it stopped working my macros which
contents function  he once advised me Taco. It is low level lua code.
Can anyone advise me what the problem is, eventually. how to replace Lua
code in my function to make it work again? Macros worked at least 6
years and now crashes.

Here is my function:

function thirddata.handlecsv.texmacroisdefined(macroname) -- check
whether macroname macro is defined  in ConTeXt
-- function is used to test whether the user has defined the macro
\macroname. If not, it needs to define any default value
 if token.csname_name(token.create(macroname)) == macroname then
 return true
  else
 return false
 end
end

Is there any alternative (ConTeXt like), which is should be possible use
in Lua code?


\starttext

\startluacode

function interfaces.defined(name)
return token.get_cmdname(token.create(name)) ~= "undefined_cs"
end

if interfaces.defined("foo") then
context("foo")
else
interfaces.setmacro("foo","bar")
end

\stopluacode

\foo

\stoptext

I'll add interfaces.defined to the core.

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: 038 477 53 69 | www.pragma-ade.com | 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___


___
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] Last version standalone ConTeXt issue.

2016-02-09 Thread Hans Hagen

On 2/9/2016 1:28 PM, Jaroslav Hajtmar wrote:

Hello ConTeXist.

In the latest version ConTeXt it stopped working my macros which
contents function  he once advised me Taco. It is low level lua code.
Can anyone advise me what the problem is, eventually. how to replace Lua
code in my function to make it work again? Macros worked at least 6
years and now crashes.

Here is my function:

function thirddata.handlecsv.texmacroisdefined(macroname) -- check
whether macroname macro is defined  in ConTeXt
-- function is used to test whether the user has defined the macro
\macroname. If not, it needs to define any default value
 if token.csname_name(token.create(macroname)) == macroname then
 return true
  else
 return false
 end
end

Is there any alternative (ConTeXt like), which is should be possible use
in Lua code?


\starttext

\startluacode

function interfaces.defined(name)
return token.get_cmdname(token.create(name)) ~= "undefined_cs"
end

if interfaces.defined("foo") then
context("foo")
else
interfaces.setmacro("foo","bar")
end

\stopluacode

\foo

\stoptext

I'll add interfaces.defined to the core.

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: 038 477 53 69 | www.pragma-ade.com | 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___