diff options
| author | djcb <djcb@djcbsoftware.nl> | 2017-11-05 13:12:41 +0200 |
|---|---|---|
| committer | djcb <djcb@djcbsoftware.nl> | 2017-11-05 13:47:30 +0200 |
| commit | dbc162ef9ba3efd355fa1b1fc71c9c4f81cd46d3 (patch) | |
| tree | 3c4fd159ba28851ab1ea7427faf37f871bed1d50 /lib/mu-script.c | |
| parent | 9e1ce98da78aeb4e642548d2c998d8b50ab08b48 (diff) | |
cosmetic1.0-alpha1
Diffstat (limited to 'lib/mu-script.c')
| -rw-r--r-- | lib/mu-script.c | 20 |
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*/ |
