Why can you not simply use one of the doifundefined macro's? Something for example: \doifundefined{ExitStatus}{\gdef\ExitStatus{0}} % default to ok as in UNIX dr. Hans van der Meer > On 18 Jun 2020, at 10:27, Lukas/ConTeXt wrote: > > Hello, > I'm using Hans' macro suggested some time before. > I've just updated Ctx MkIV and my sample code: > > ---- > \starttext > \def\MyMacro{Ahoj} > > \def\MyMacWithPars#1#2{Something} > > \def\Undefined{} > \let\Undefined\undefined > > \def\DoNothing{} > \let\DoNothing\donothing > > \startluacode > if CONTEXTLMTXMODE == 0 then > local d = tokens.defined > local c = tokens.create > > function tokens.defined(s,b) > if b then > return d(s) > else > return c(s).cmd_name == "undefined_cmd" > end > end > end > > -- > > local defined = tokens.defined > > for _, v in ipairs{ "MyMacro", "MyMacWithPars", "Undefined", "DoNothing", "NonExisting" } do > print(string.format("\letterpercent-12s", v), defined(v), defined(v, true), defined(v, false)) > end > \stopluacode > > Aaa > \stoptext > ---- > > gives: > " > MyMacro false false false > MyMacWithPars false false false > Undefined false false false > DoNothing false false false > NonExisting false false false > " > > IOW, I'm not able to determine whether a control sequence has not been defined (or has \undefined value) or not. > > Am I doing a trivial mistake or has anything changed? > > Thank you for patience... > > Lukas___________________________________________________________________________________ > 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://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : http://contextgarden.net > ___________________________________________________________________________________