Author: mimir
Date: 2007-05-21 19:53:57 +0000 (Mon, 21 May 2007)
New Revision: 23047

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23047

Log:
Allow local inclusion of js files as well as from predefined
path(s).


rafal


Modified:
   branches/SAMBA_4_0/source/scripting/ejs/smbcalls.c


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/ejs/smbcalls.c
===================================================================
--- branches/SAMBA_4_0/source/scripting/ejs/smbcalls.c  2007-05-21 19:12:14 UTC 
(rev 23046)
+++ branches/SAMBA_4_0/source/scripting/ejs/smbcalls.c  2007-05-21 19:53:57 UTC 
(rev 23047)
@@ -120,17 +120,34 @@
 
        for (i = 0; i < argc; i++) {
                const char *script = argv[i];
+               struct MprVar result;
+               char *path, *emsg;
+               int ret;
 
+               /* First, try to include file from current working directory.
+                  This allows local includes which is handy sometimes. */
+               path = talloc_asprintf(mprMemCtx(), "%s", script);
+               if (path == NULL) {
+                       return -1;
+               }
+               
+               if (file_exist(path)) {
+                       ret = ejsEvalFile(eid, path, &result, &emsg);
+                       talloc_free(path);
+                       if (ret < 0) {
+                               ejsSetErrorMsg(eid, "%s: %s", script, emsg);
+                               return -1;
+                       }
+                       continue;
+               }
+
+               /* use specfied path to search for requested file */
                for (j=0;js_include[j];j++) {
-                       char *path;
                        path = talloc_asprintf(mprMemCtx(), "%s/%s", 
js_include[j], script);
                        if (path == NULL) {
                                return -1;
                        }
                        if (file_exist(path)) {
-                               int ret;
-                               struct MprVar result;
-                               char *emsg;
 
                                ret = ejsEvalFile(eid, path, &result, &emsg);
                                talloc_free(path);
@@ -142,6 +159,7 @@
                        }
                        talloc_free(path);
                }
+
                if (js_include[j] == NULL) {
                        ejsSetErrorMsg(eid, "unable to include '%s'", script);
                        return -1;

Reply via email to