r8372: - split out provisioning logic into a separate ejs library
[jra/samba/.git] / source4 / scripting / ejs / smbcalls_string.c
index ad998701f6d7f9553a3946a1256670aa5f9fdad6..6597f3b27b724c41b3b0fdd195e06bd5bce710f5 100644 (file)
 #include "lib/ejs/ejs.h"
 #include "system/passwd.h"
 
+/*
+  usage:
+      var len = strlen(str);
+*/
+static int ejs_strlen(MprVarHandle eid, int argc, char **argv)
+{
+       if (argc != 1) {
+               ejsSetErrorMsg(eid, "strlen invalid arguments");
+               return -1;
+       }
+       mpr_Return(eid, mprCreateIntegerVar(strlen_m(argv[0])));
+       return 0;
+}
+
 /*
   usage:
       var s = strlower("UPPER");
@@ -311,6 +325,7 @@ static int ejs_vsprintf(MprVarHandle eid, int argc, struct MprVar **argv)
 */
 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);