ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* issue with \processaction
@ 2014-03-18 17:58 Pablo Rodriguez
  2014-03-18 18:55 ` Hans Hagen
  0 siblings, 1 reply; 7+ messages in thread
From: Pablo Rodriguez @ 2014-03-18 17:58 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Dear list,

I have the following sample:

\def\CheckUser{\cldcommand{sprint(tex.vrbcatcodes,os.resultof"whoami")}}
\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,


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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 17:58 issue with \processaction Pablo Rodriguez
@ 2014-03-18 18:55 ` Hans Hagen
  2014-03-18 21:09   ` Pablo Rodriguez
  0 siblings, 1 reply; 7+ messages in thread
From: Hans Hagen @ 2014-03-18 18:55 UTC (permalink / raw)
  To: ntg-context

On 3/18/2014 6:58 PM, Pablo Rodriguez wrote:
> Dear list,
>
> I have the following sample:
>
> \def\CheckUser{\cldcommand{sprint(tex.vrbcatcodes,os.resultof"whoami")}}
> \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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 18:55 ` Hans Hagen
@ 2014-03-18 21:09   ` Pablo Rodriguez
  2014-03-18 21:40     ` Wolfgang Schuster
  0 siblings, 1 reply; 7+ messages in thread
From: Pablo Rodriguez @ 2014-03-18 21:09 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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.resultof"whoami")}}
>> \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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 21:09   ` Pablo Rodriguez
@ 2014-03-18 21:40     ` Wolfgang Schuster
  2014-03-18 22:04       ` Pablo Rodriguez
  0 siblings, 1 reply; 7+ messages in thread
From: Wolfgang Schuster @ 2014-03-18 21:40 UTC (permalink / raw)
  To: mailing list for ConTeXt users


Am 18.03.2014 um 22:09 schrieb Pablo Rodriguez <oinos@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.resultof"whoami")}}
>>> \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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 21:40     ` Wolfgang Schuster
@ 2014-03-18 22:04       ` Pablo Rodriguez
  2014-03-18 22:30         ` Aditya Mahajan
  0 siblings, 1 reply; 7+ messages in thread
From: Pablo Rodriguez @ 2014-03-18 22:04 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 22:04       ` Pablo Rodriguez
@ 2014-03-18 22:30         ` Aditya Mahajan
  2014-03-21 17:48           ` Pablo Rodriguez
  0 siblings, 1 reply; 7+ messages in thread
From: Aditya Mahajan @ 2014-03-18 22:30 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: issue with \processaction
  2014-03-18 22:30         ` Aditya Mahajan
@ 2014-03-21 17:48           ` Pablo Rodriguez
  0 siblings, 0 replies; 7+ messages in thread
From: Pablo Rodriguez @ 2014-03-21 17:48 UTC (permalink / raw)
  To: mailing list for ConTeXt users

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
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-03-21 17:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-18 17:58 issue with \processaction Pablo Rodriguez
2014-03-18 18:55 ` Hans Hagen
2014-03-18 21:09   ` Pablo Rodriguez
2014-03-18 21:40     ` Wolfgang Schuster
2014-03-18 22:04       ` Pablo Rodriguez
2014-03-18 22:30         ` Aditya Mahajan
2014-03-21 17:48           ` Pablo Rodriguez

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).