svn commit: samba r23047 - in branches/SAMBA_4_0/source/scripting/ejs: .

mimir at samba.org mimir at samba.org
Mon May 21 19:53:58 GMT 2007


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;



More information about the samba-cvs mailing list