Author: tpot Date: 2005-05-29 03:25:21 +0000 (Sun, 29 May 2005) New Revision: 7063
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7063 Log: Do error checking on the ejs functions. Tridge says there is a bug in defining per-engine CFunction's so move calls to ejsDefineStringCFunction() above the ejsOpenEngine() call. Test script now works! Modified: branches/SAMBA_4_0/source/scripting/ejs/smbscript.c Changeset: Modified: branches/SAMBA_4_0/source/scripting/ejs/smbscript.c =================================================================== --- branches/SAMBA_4_0/source/scripting/ejs/smbscript.c 2005-05-29 00:22:34 UTC (rev 7062) +++ branches/SAMBA_4_0/source/scripting/ejs/smbscript.c 2005-05-29 03:25:21 UTC (rev 7063) @@ -29,9 +29,6 @@ exit(1); } -extern void ejsDefineStringCFunction(EjsId eid, const char *functionName, - MprStringCFunction fn, void *thisPtr, int flags); - static int writeProc(MprVarHandle userHandle, int argc, char **argv) { int i; @@ -50,13 +47,26 @@ MprVar result; char *emsg; - ejsOpen(0, 0, 0); - eid = ejsOpenEngine(primary, alternate); - ejsDefineStringCFunction(eid, "write", writeProc, NULL, 0); - ejsEvalScript(0, "write(\"hello\n\");", &result, &emsg); + if (ejsOpen(0, 0, 0) != 0) { + fprintf(stderr, "smbscript: ejsOpen(): unable to initialise " + "EJ subsystem\n"); + exit(1); + } + + ejsDefineStringCFunction(-1, "write", writeProc, NULL, 0); + + if ((eid = ejsOpenEngine(primary, alternate)) == (EjsId)-1) { + fprintf(stderr, "smbscript: ejsOpenEngine(): unable to " + "initialise an EJS engine\n"); + exit(1); + } + + if (ejsEvalScript(0, "write(\"hello\n\");", &result, &emsg) == -1) { + fprintf(stderr, "smbscript: ejsEvalScript(): %s\n", emsg); + exit(1); + } + ejsClose(); - printf("emsg = %s\n", emsg); - return 0; }