summaryrefslogtreecommitdiff
path: root/source4/scripting/ejs
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-07-14 07:21:59 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:23:05 -0500
commit0e5907d57cdfb0c1ce3f151161a9260c14466bd0 (patch)
treeaa522b01632adbe40b01b362f9ee9d13bb77e02a /source4/scripting/ejs
parentfa2b97a20a518708e4534e8aa2cce12024228488 (diff)
downloadsamba-0e5907d57cdfb0c1ce3f151161a9260c14466bd0.tar.gz
samba-0e5907d57cdfb0c1ce3f151161a9260c14466bd0.tar.bz2
samba-0e5907d57cdfb0c1ce3f151161a9260c14466bd0.zip
r8452: allow for the ugly hack:
#!/bin/sh exec smbscript "$0" ${1+"$@"} which is needed because bloody solaris puts 'env' in /bin instead of /usr/bin also neaten up the #! handling code. (This used to be commit 778bcd3738e42d8adfd4529f790c898f0d904363)
Diffstat (limited to 'source4/scripting/ejs')
-rw-r--r--source4/scripting/ejs/smbscript.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/source4/scripting/ejs/smbscript.c b/source4/scripting/ejs/smbscript.c
index dec9592c46..d71d084779 100644
--- a/source4/scripting/ejs/smbscript.c
+++ b/source4/scripting/ejs/smbscript.c
@@ -83,15 +83,15 @@ void ejs_exception(const char *reason)
/* load the script and advance past interpreter line*/
script = file_load(fname, &script_size, mem_ctx);
- if ((script_size > 2) && script[0] == '#' && script[1] == '!') {
- script += 2;
- script_size -= 2;
- while (script_size) {
- if (*script == '\r' || *script == '\n')
- break;
- script++;
- script_size--;
- }
+ /* allow scriptable js */
+ if (strncmp(script, "#!", 2) == 0) {
+ script += strcspn(script, "\r\n");
+ script += strspn(script, "\r\n");
+ }
+ /* and this copes with the ugly exec hack */
+ if (strncmp(script, "exec ", 5) == 0) {
+ script += strcspn(script, "\r\n");
+ script += strspn(script, "\r\n");
}
/* run the script */