Ejemplo n.º 1
0
SCM
gfec_eval_file(const char *file, gfec_error_handler error_handler)
{
    gchar *contents = NULL;
    GError *save_error = NULL;
    SCM result;

    if (!g_file_get_contents (file, &contents, NULL, &save_error))
    {
        gchar *full_msg = g_strdup_printf ("Couldn't read contents of %s.\nReason: %s", file, save_error->message);
        error_handler(full_msg);

        g_error_free (save_error);
        g_free(full_msg);

        return SCM_UNDEFINED;
    }

    result = gfec_eval_string (contents, error_handler);
    g_free (contents);

    if (!result)
    {
        gchar *full_msg = g_strdup_printf ("Couldn't read contents of %s", file);
        error_handler(full_msg);

        g_free(full_msg);
    }

    return result;
}
Ejemplo n.º 2
0
gboolean
gnc_run_report (gint report_id, char ** data)
{
    const gchar *free_data;
    SCM scm_text;
    gchar *str;

    g_return_val_if_fail (data != NULL, FALSE);
    *data = NULL;

    str = g_strdup_printf("(gnc:report-run %d)", report_id);
    scm_text = gfec_eval_string(str, error_handler);
    g_free(str);

    if (scm_text == SCM_UNDEFINED || !scm_is_string (scm_text))
        return FALSE;

    free_data = scm_to_locale_string (scm_text);
    *data = g_strdup (free_data);

    return TRUE;
}