summaryrefslogtreecommitdiff
path: root/lib/mu-script.c
diff options
context:
space:
mode:
authordjcb <djcb@djcbsoftware.nl>2017-11-05 13:12:41 +0200
committerdjcb <djcb@djcbsoftware.nl>2017-11-05 13:47:30 +0200
commitdbc162ef9ba3efd355fa1b1fc71c9c4f81cd46d3 (patch)
tree3c4fd159ba28851ab1ea7427faf37f871bed1d50 /lib/mu-script.c
parent9e1ce98da78aeb4e642548d2c998d8b50ab08b48 (diff)
cosmetic1.0-alpha1
Diffstat (limited to 'lib/mu-script.c')
-rw-r--r--lib/mu-script.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/mu-script.c b/lib/mu-script.c
index c4cbca3..584b4dd 100644
--- a/lib/mu-script.c
+++ b/lib/mu-script.c
@@ -308,21 +308,26 @@ gboolean
mu_script_guile_run (MuScriptInfo *msi, const char *muhome,
const char **args, GError **err)
{
- char *mainargs, *expr;
- const char * argv[] = {
- "guile", "-l", NULL, "-c", NULL, NULL
- };
+ const char *s;
+ char *mainargs, *expr;
+ char **argv;
g_return_val_if_fail (msi, FALSE);
g_return_val_if_fail (muhome, FALSE);
+ argv = g_new0 (char*, 6);
+ argv[0] = g_strdup("guile");
+ argv[1] = g_strdup("-l");
+
if (access (mu_script_info_path (msi), R_OK) != 0) {
mu_util_g_set_error (err, MU_ERROR_FILE_CANNOT_READ,
"failed to read script: %s",
strerror(errno));
return FALSE;
- }
- argv[2] = (char*)mu_script_info_path (msi);
+ }
+
+ s = mu_script_info_path (msi);
+ argv[2] = g_strdup (s ? s : "");
mainargs = mu_str_quoted_from_strv (args);
expr = g_strdup_printf (
@@ -332,12 +337,13 @@ mu_script_guile_run (MuScriptInfo *msi, const char *muhome,
mainargs ? mainargs : "");
g_free (mainargs);
+ argv[3] = g_strdup("-c");
argv[4] = expr;
scm_boot_guile (5, argv, guile_shell, NULL);
/* never reached but let's be correct(TM)*/
- g_free (expr);
+ g_strfreev (argv);
return TRUE;
}
#else /*!BUILD_GUILE*/