From 4d53b075d85d7517730109c92cb7c7b09bf69dee Mon Sep 17 00:00:00 2001 From: Borg Date: Mon, 23 Jun 2014 23:13:03 +0200 Subject: [PATCH] Fixed scripts calling under Win32. When using 'ScriptsInterpreter' variable, we incorrectly checked for '.bat' ending scripts while later building scriptname without extension. --- src/process.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/process.c b/src/process.c index e487e34..51c9e2a 100644 --- a/src/process.c +++ b/src/process.c @@ -349,15 +349,19 @@ bool detach(void) { bool execute_script(const char *name, char **envp) { #ifdef HAVE_SYSTEM - int status, len; char *scriptname; - int i; char *interpreter = NULL; + config_t *cfg_interpreter; + int status, len, i; + cfg_interpreter = lookup_config(config_tree, "ScriptsInterpreter"); #ifndef HAVE_MINGW len = xasprintf(&scriptname, "\"%s/%s\"", confbase, name); #else - len = xasprintf(&scriptname, "\"%s/%s.bat\"", confbase, name); + if(cfg_interpreter) + len = xasprintf(&scriptname, "\"%s/%s\"", confbase, name); + else + len = xasprintf(&scriptname, "\"%s/%s.bat\"", confbase, name); #endif if(len < 0) return false; @@ -365,14 +369,13 @@ bool execute_script(const char *name, char **envp) { scriptname[len - 1] = '\0'; /* First check if there is a script */ - if(access(scriptname + 1, F_OK)) { free(scriptname); return true; } // Custom scripts interpreter - if(get_config_string(lookup_config(config_tree, "ScriptsInterpreter"), &interpreter)) { + if(get_config_string(cfg_interpreter, &interpreter)) { // Force custom scripts interpreter allowing execution of scripts on android without execution flag (such as on /sdcard) free(scriptname); len = xasprintf(&scriptname, "%s \"%s/%s\"", interpreter, confbase, name); -- 2.25.1