From e95c8f19116813dd03cce957c3367254782915fd Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Sun, 29 May 2005 03:25:21 +0000 Subject: r7063: 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! (This used to be commit 5e2458ae6c863ff29b85fff3d093f7f4fa9dc2be) --- source4/scripting/ejs/smbscript.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'source4') diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c index f1c3f0b46d..85064d3b44 100644 --- a/source4/scripting/ejs/smbscript.c +++ b/source4/scripting/ejs/smbscript.c @@ -29,9 +29,6 @@ void http_exception(const char *reason) 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 @@ static int writeProc(MprVarHandle userHandle, int argc, char **argv) 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); - ejsClose(); + if (ejsOpen(0, 0, 0) != 0) { + fprintf(stderr, "smbscript: ejsOpen(): unable to initialise " + "EJ subsystem\n"); + exit(1); + } - printf("emsg = %s\n", emsg); + 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(); return 0; } -- cgit