From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/83694 Path: news.gmane.org!not-for-mail From: Hans Hagen Newsgroups: gmane.comp.tex.context Subject: Re: Passing macro parameters to lua Date: Mon, 05 Aug 2013 23:00:11 +0200 Message-ID: <5200125B.10504@wxs.nl> References: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1375736650 29079 80.91.229.3 (5 Aug 2013 21:04:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 5 Aug 2013 21:04:10 +0000 (UTC) To: ntg-context@ntg.nl Original-X-From: ntg-context-bounces@ntg.nl Mon Aug 05 23:04:14 2013 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([5.39.185.229]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1V6RtD-0002Ae-GS for gctc-ntg-context-518@m.gmane.org; Mon, 05 Aug 2013 23:00:27 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 4E604101EE; Mon, 5 Aug 2013 22:59:47 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Uj3Cyefl34TT; Mon, 5 Aug 2013 22:59:45 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 54EC7101E4; Mon, 5 Aug 2013 22:59:45 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 61DB0101E4 for ; Mon, 5 Aug 2013 22:59:43 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id L1vncgjrKcnE for ; Mon, 5 Aug 2013 22:59:42 +0200 (CEST) Original-Received: from filter1-til.mf.surf.net (filter1-til.mf.surf.net [194.171.167.217]) by balder.ntg.nl (Postfix) with ESMTP id 4791F101E3 for ; Mon, 5 Aug 2013 22:59:42 +0200 (CEST) Original-Received: from smtp.ziggozakelijk.nl (D57D1DA2.static.ziggozakelijk.nl [213.125.29.162]) by filter1-til.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id r75L0KG2002298 for ; Mon, 5 Aug 2013 23:00:20 +0200 X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=10.100.1.104; Original-Received: from [10.100.1.104] (unverified [10.100.1.104]) by pragma-net.nl (SurgeMail 6.3c2) with ESMTP id 346-1713362 for ; Mon, 05 Aug 2013 23:00:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 In-Reply-To: X-Authenticated-User: hagen@controller-9 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=213.125.29.162; country=NL; region=15; city=Zwolle; latitude=52.5058; longitude=6.0858; http://maps.google.com/maps?q=52.5058,6.0858&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0RK990knp - dfd53937c07b - 20130805 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.217 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:83694 Archived-At: On 8/5/2013 10:53 PM, Matt Gushee wrote: > Hello, good people-- > > I've encountered what appears to be a bug in either the TeX->Lua > interface or the documentation thereof (I have the latest stable > ConTeXt standalone from contextgarden.net). > > I'm trying to create a macro that will insert different text depending > on whether one of the arguments is empty or not. My initial test > implementation (following the wiki section entitled "Passing arguments > and buffers: ConTeXt commands that hook into Lua") looked like this: > > \startluacode > userdata = userdata or {} > > function userdata.empty_or_not(str) > if str == "" or str == nil then > context("{\\sc Empty}") > else > context(str) > end > end > \stopluacode > > \def\emptyOrNot#1{% > \ctxlua{userdata.empty_or_not(#1)}% > } > > \starttext > > \emptyOrNot{Amazing Text!} > > \emptyOrNot{} > > \stoptext > > This did not work. I determined that even when I passed a non-empty > string, the Lua interpreter detected it as nil. It turns out the fix > was simple--I had to quote the string, as follows. > > \def\emptyOrNot#1{% > \ctxlua{userdata.empty_or_not("#1")}% > } > > It took me a while to figure that out, though, since the wiki example > does not show quotes. indeed you need quotes ----------------------------------------------------------------- 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 ___________________________________________________________________________________