Example #1
0
static gchar*
get_query (MuConfig *opts, GError **err)
{
	gchar *query, *bookmarkval;

	/* params[0] is 'find', actual search params start with [1] */
	if (!opts->bookmark && !opts->params[1]) {
		g_set_error (err, MU_ERROR_DOMAIN, MU_ERROR_IN_PARAMETERS,
			     "error in parameters");
		return NULL;
	}

	bookmarkval = NULL;
	if (opts->bookmark) {
		bookmarkval = resolve_bookmark (opts, err);
		if (!bookmarkval)
			return NULL;
	}

	query = mu_str_quoted_from_strv ((const gchar**)&opts->params[1]);
	if (bookmarkval) {
		gchar *tmp;
		tmp = g_strdup_printf ("%s %s", bookmarkval, query);
		g_free (query);
		query = tmp;
	}

	g_free (bookmarkval);

	return query;
}
Example #2
0
gboolean
mu_script_guile_run (MuScriptInfo *msi, const char *muhome,
		     const char **args, GError **err)
{
	char *mainargs, *expr;
	char *argv[] = {
	"guile", "-l", NULL, "-c", NULL, NULL
		};

	g_return_val_if_fail (msi, FALSE);
	g_return_val_if_fail (muhome, FALSE);

	if (access (mu_script_info_path (msi), R_OK) != 0) {
	mu_util_g_set_error (err, MU_ERROR_FILE_CANNOT_READ,
				      strerror(errno));
		 return FALSE;
	 }
	argv[2] = (char*)mu_script_info_path (msi);

	mainargs = mu_str_quoted_from_strv (args);
	expr = g_strdup_printf (
	"(main '(\"%s\" \"--muhome=%s\" %s))",
		mu_script_info_name (msi),
		muhome,
		mainargs ? mainargs : "");

	g_free (mainargs);
	argv[4] = expr;

	scm_boot_guile (5, argv, guile_shell, NULL);

	/* never reached but let's be correct(TM)*/
	g_free (expr);
	return TRUE;
}