1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-31 20:22:15 +03:00

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 5e2458ae6c)
This commit is contained in:
Tim Potter
2005-05-29 03:25:21 +00:00
committed by Gerald (Jerry) Carter
parent 10f428b607
commit e95c8f1911

View File

@ -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;
}