Re: [NTG-context] issue with \processaction

2014-03-21 Thread Pablo Rodriguez
On 03/18/2014 11:30 PM, Aditya Mahajan wrote:
 On Tue, 18 Mar 2014, Pablo Rodriguez wrote:
 
 The next one (AFAIK) should work on every OS:

 \startluacode
 local user  = 
 local users = {
 [ousia] = 1,
 }
 function document.CheckUser()
 user = os.resultof(echo ousia)
 context.verbatim(user)
 end

 function document.UserNumber(name)
 context.verbatim(users[name or user] or 0)
 end
 \stopluacode

 \def\CheckUser {\ctxlua{document.CheckUser ()}}
 \def\UserNumber{\ctxlua{document.UserNumber()}}

 \starttext
 This is user \CheckUser with number \UserNumber.
 \stoptext
 
 (Untested)
 
 Change `local user` by
 
 ~~~
 userdata = userdata or {}
 userdata.user = 
 ~~~
 
 and all other occurances of `user` by `userdata.user`.

Many thanks for your reply, Aditya.

I followed your instructions, but I’m afraid that it doesn’t work.

I cannot say whether it is my fault, since this is all Greek to me.

I tried a simpler approach (my guess, I discovered the existence of
\executesystemcommand yesterday), which doesn’t work either:

\def\Checkuser{\executesystemcommand{echo rightuser  tmp-yser.txt}}
\def\CheckUser{\Checkuser\input tmp-yser.txt}
\def\UserNumber{\processaction[\CheckUser][rightuser=1, unknown=user
unknown]}
\starttext
This is user \CheckUser\ with number \UserNumber.
\stoptext

I don’t know why the \UserNumber command cannot process action and why
the backslash after \CheckUser is required, since it seems to add an
extra space.

What am I doing wrong in the previous example?

Many thanks for your help,


Pablo
-- 
http://www.ousia.tk
___
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] issue with \processaction

2014-03-18 Thread Hans Hagen

On 3/18/2014 6:58 PM, Pablo Rodriguez wrote:

Dear list,

I have the following sample:

\def\CheckUser{\cldcommand{sprint(tex.vrbcatcodes,os.resultofwhoami)}}
\def\UserNumber{\processaction[\CheckUser][ousia=1, unknown=user unknown]}

\starttext
This is user \CheckUser\ with number \UserNumber.
\stoptext

which gives me the following output:

 This is user ousia with number user unknown.

What am I doing wrong here?

Many thanks for your help,


you output vrbcatcodes strings while you test using ctx catcodesn

of course i'd use lua for all of it:

\startluacode
local user  = 
local users = {
[oasi] = 1,
}
function document.CheckUser()
user = os.resultof(whoami)
context.verbatim(user)
end

function document.UserNumber(name)
context.verbatim(users[name or user] or 0)
end
\stopluacode

\def\CheckUser {\ctxlua{document.CheckUser ()}}
\def\UserNumber{\ctxlua{document.UserNumber()}}

\starttext
This is user \CheckUser\ with number \UserNumber.
\stoptext


-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | 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
___


Re: [NTG-context] issue with \processaction

2014-03-18 Thread Pablo Rodriguez
On 03/18/2014 07:55 PM, Hans Hagen wrote:
 On 3/18/2014 6:58 PM, Pablo Rodriguez wrote:

 \def\CheckUser{\cldcommand{sprint(tex.vrbcatcodes,os.resultofwhoami)}}
 \def\UserNumber{\processaction[\CheckUser][ousia=1, unknown=user unknown]}

 \starttext
 This is user \CheckUser\ with number \UserNumber.
 \stoptext

 What am I doing wrong here?
 
 you output vrbcatcodes strings while you test using ctx catcodesn
 
 of course i'd use lua for all of it:
 
 \startluacode
  local user  = 
  local users = {
  [oasi] = 1,
  }
  function document.CheckUser()
  user = os.resultof(whoami)
  context.verbatim(user)
  end
 
  function document.UserNumber(name)
  context.verbatim(users[name or user] or 0)
  end
 \stopluacode
 
 \def\CheckUser {\ctxlua{document.CheckUser ()}}
 \def\UserNumber{\ctxlua{document.UserNumber()}}
 
 \starttext
 This is user \CheckUser\ with number \UserNumber.
 \stoptext

Many thanks for your reply, Hans.

I’m afraid that the user doesn’t get recognized (I corrected the user
name above).

Is there no way to do it with \processaction?

Many thanks for your help,


Pablo
-- 
http://www.ousia.tk
___
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] issue with \processaction

2014-03-18 Thread Wolfgang Schuster

Am 18.03.2014 um 22:09 schrieb Pablo Rodriguez oi...@gmx.es:

 On 03/18/2014 07:55 PM, Hans Hagen wrote:
 On 3/18/2014 6:58 PM, Pablo Rodriguez wrote:
 
 \def\CheckUser{\cldcommand{sprint(tex.vrbcatcodes,os.resultofwhoami)}}
 \def\UserNumber{\processaction[\CheckUser][ousia=1, unknown=user unknown]}
 
 \starttext
 This is user \CheckUser\ with number \UserNumber.
 \stoptext
 
 What am I doing wrong here?
 
 you output vrbcatcodes strings while you test using ctx catcodesn
 
 of course i'd use lua for all of it:
 
 \startluacode
 local user  = 
 local users = {
 [oasi] = 1,
 }
 function document.CheckUser()
 user = os.resultof(whoami)
 context.verbatim(user)
 end
 
 function document.UserNumber(name)
 context.verbatim(users[name or user] or 0)
 end
 \stopluacode
 
 \def\CheckUser {\ctxlua{document.CheckUser ()}}
 \def\UserNumber{\ctxlua{document.UserNumber()}}
 
 \starttext
 This is user \CheckUser\ with number \UserNumber.
 \stoptext
 
 Many thanks for your reply, Hans.
 
 I’m afraid that the user doesn’t get recognized (I corrected the user
 name above).

The same applies to your examples because your test won’t work on our machines 
;)

 Is there no way to do it with \processaction?

Only when you ensure the text you get from Lua has the normal cathode regime 
and when
you special characters like \ in the result you have to convert them to 
\letterbackslash etc.
which isn’t simpler than Hans solution. The advantage of Hans solution is that 
you don’t
have to care about expansion.

Wolfgang
___
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] issue with \processaction

2014-03-18 Thread Pablo Rodriguez
On 03/18/2014 10:40 PM, Wolfgang Schuster wrote:
 Am 18.03.2014 um 22:09 schrieb Pablo Rodriguez:
 On 03/18/2014 07:55 PM, Hans Hagen wrote:
 [...]
 
 you output vrbcatcodes strings while you test using ctx catcodesn

 of course i'd use lua for all of it:
 [...]
 I’m afraid that the user doesn’t get recognized (I corrected the user
 name above).
 
 The same applies to your examples because your test won’t work on
 our machines ;)

You’re right, Wolfgang, I chose the wrong sample.

The next one (AFAIK) should work on every OS:

\startluacode
 local user  = 
 local users = {
 [ousia] = 1,
 }
 function document.CheckUser()
 user = os.resultof(echo ousia)
 context.verbatim(user)
 end

 function document.UserNumber(name)
 context.verbatim(users[name or user] or 0)
 end
\stopluacode

\def\CheckUser {\ctxlua{document.CheckUser ()}}
\def\UserNumber{\ctxlua{document.UserNumber()}}

\starttext
This is user \CheckUser with number \UserNumber.
\stoptext

 Is there no way to do it with \processaction?
 
 Only when you ensure the text you get from Lua has the normal cathode
 regime and when you special characters like \ in the result you have
 to convert them to \letterbackslash etc. which isn’t simpler than
 Hans solution. The advantage of Hans solution is that you don’t have
 to care about expansion.

The solution from Hans is great. The only issue there is that it is much
harder to understand for me.

Since this is a minimal part in a way more complex implementation (at
least for me), I really need to use commands that I know what they do.
Pure Lua code is totally unknown to me. I don’t have any background in
programming.

This is the reason why I asked about \processaction.

Many thanks for your reply,


Pablo
-- 
http://www.ousia.tk
___
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] issue with \processaction

2014-03-18 Thread Aditya Mahajan

On Tue, 18 Mar 2014, Pablo Rodriguez wrote:


The next one (AFAIK) should work on every OS:

\startluacode
local user  = 
local users = {
[ousia] = 1,
}
function document.CheckUser()
user = os.resultof(echo ousia)
context.verbatim(user)
end

function document.UserNumber(name)
context.verbatim(users[name or user] or 0)
end
\stopluacode

\def\CheckUser {\ctxlua{document.CheckUser ()}}
\def\UserNumber{\ctxlua{document.UserNumber()}}

\starttext
This is user \CheckUser with number \UserNumber.
\stoptext


(Untested)

Change `local user` by

~~~
userdata = userdata or {}
userdata.user = 
~~~

and all other occurances of `user` by `userdata.user`.

Aditya
___
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
___