diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-07-20 07:04:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:29:48 -0500 |
commit | 620301858a5b747002eebe2b9fcef10712ee8249 (patch) | |
tree | 6736859b378854e534aea94cdb14bf922fb2f293 | |
parent | 3d59490a4010c00a35113d36c60737001e5c77bb (diff) | |
download | samba-620301858a5b747002eebe2b9fcef10712ee8249.tar.gz samba-620301858a5b747002eebe2b9fcef10712ee8249.tar.bz2 samba-620301858a5b747002eebe2b9fcef10712ee8249.zip |
r8638: continue the trend of maknig our C functions true ejs objects by making the string functions
into an object. To keep existing code working I have added:
string_init(global);
into base.js. That brings the functions into the global scope for our
existing scripts
(This used to be commit a978484738168b82441c4dc4f5f803d349769a4b)
-rw-r--r-- | source4/scripting/ejs/smbcalls_string.c | 26 | ||||
-rw-r--r-- | source4/scripting/libjs/base.js | 3 | ||||
-rw-r--r-- | swat/scripting/common.js | 2 | ||||
-rwxr-xr-x | testprogs/ejs/sprintf.js | 2 |
4 files changed, 26 insertions, 7 deletions
diff --git a/source4/scripting/ejs/smbcalls_string.c b/source4/scripting/ejs/smbcalls_string.c index 657c8efc61..3d386abe2e 100644 --- a/source4/scripting/ejs/smbcalls_string.c +++ b/source4/scripting/ejs/smbcalls_string.c @@ -321,15 +321,27 @@ static int ejs_vsprintf(MprVarHandle eid, int argc, struct MprVar **argv) } /* + initialise string ejs subsystem +*/ +static int ejs_string_init(MprVarHandle eid, int argc, struct MprVar **argv) +{ + struct MprVar *obj = mprInitObject(eid, "string", argc, argv); + + mprSetStringCFunction(obj, "strlen", ejs_strlen); + mprSetStringCFunction(obj, "strlower", ejs_strlower); + mprSetStringCFunction(obj, "strupper", ejs_strupper); + mprSetStringCFunction(obj, "split", ejs_split); + mprSetCFunction(obj, "join", ejs_join); + mprSetCFunction(obj, "sprintf", ejs_sprintf); + mprSetCFunction(obj, "vsprintf", ejs_vsprintf); + + return 0; +} + +/* setup C functions that be called from ejs */ void smb_setup_ejs_string(void) { - ejsDefineStringCFunction(-1, "strlen", ejs_strlen, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineStringCFunction(-1, "strlower", ejs_strlower, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineStringCFunction(-1, "strupper", ejs_strupper, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineStringCFunction(-1, "split", ejs_split, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineCFunction(-1, "join", ejs_join, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineCFunction(-1, "sprintf", ejs_sprintf, NULL, MPR_VAR_SCRIPT_HANDLE); - ejsDefineCFunction(-1, "vsprintf", ejs_vsprintf, NULL, MPR_VAR_SCRIPT_HANDLE); + ejsDefineCFunction(-1, "string_init", ejs_string_init, NULL, MPR_VAR_SCRIPT_HANDLE); } diff --git a/source4/scripting/libjs/base.js b/source4/scripting/libjs/base.js index 39b62b133e..8a07f4e383 100644 --- a/source4/scripting/libjs/base.js +++ b/source4/scripting/libjs/base.js @@ -9,6 +9,9 @@ if (global["HAVE_BASE_JS"] != undefined) { } HAVE_BASE_JS=1 +/* bring the string functions into the global frame */ +string_init(global); + /* an essential function! */ diff --git a/swat/scripting/common.js b/swat/scripting/common.js index baebe8af82..f868040f03 100644 --- a/swat/scripting/common.js +++ b/swat/scripting/common.js @@ -8,6 +8,8 @@ global.page = new Object(); /* fill in some defaults */ global.page.title = "Samba Web Administration Tool"; +libinclude("base.js"); + /* to cope with browsers that don't support cookies we append the sessionid to the URI */ global.SESSIONURI = ""; diff --git a/testprogs/ejs/sprintf.js b/testprogs/ejs/sprintf.js index 4d3d9a7555..6ae8605718 100755 --- a/testprogs/ejs/sprintf.js +++ b/testprogs/ejs/sprintf.js @@ -3,6 +3,8 @@ test sprintf function */ +string_init(local); + function check_result(s, v) { if (s != v) { |