23 #include "swig-runtime.h"
27 #include "gnc-guile-utils.h"
28 #include "guile-mappings.h"
43 gchar *gnc_scm_to_utf8_string(SCM scm_string)
45 if (scm_is_string (scm_string))
50 str = scm_to_utf8_string(scm_string);
75 gchar *gnc_scm_to_locale_string(SCM scm_string)
77 if (scm_is_string (scm_string))
82 str = scm_to_locale_string(scm_string);
104 gnc_scm_symbol_to_locale_string(SCM symbol_value)
107 if (scm_is_symbol(symbol_value))
109 SCM string_value = scm_symbol_to_string (symbol_value);
110 if (scm_is_string (string_value))
112 char *tmp = scm_to_utf8_string (string_value);
113 gchar *str = g_strdup (tmp);
135 gnc_scm_call_1_to_string(SCM func, SCM arg)
139 if (scm_is_procedure(func))
141 value = scm_call_1(func, arg);
143 if (scm_is_string(value))
145 return gnc_scm_to_utf8_string(value);
154 PERR(
"not a procedure\n");
172 gnc_scm_call_1_symbol_to_string(SCM func, SCM arg)
176 if (scm_is_procedure(func))
178 symbol_value = scm_call_1(func, arg);
179 return gnc_scm_symbol_to_locale_string (symbol_value);
183 PERR(
"not a procedure\n");
200 gnc_scm_call_1_to_procedure(SCM func, SCM arg)
204 if (scm_is_procedure(func))
206 value = scm_call_1(func, arg);
208 if (scm_is_procedure(value))
217 PERR(
"not a procedure\n");
220 return SCM_UNDEFINED;
234 gnc_scm_call_1_to_list(SCM func, SCM arg)
238 if (scm_is_procedure(func))
240 value = scm_call_1(func, arg);
242 if (scm_is_list(value))
251 PERR(
"not a procedure\n");
254 return SCM_UNDEFINED;
268 gnc_scm_call_1_to_vector(SCM func, SCM arg)
272 if (scm_is_procedure(func))
274 value = scm_call_1(func, arg);
276 if (scm_is_vector(value))
285 PERR(
"not a procedure\n");
288 return SCM_UNDEFINED;
295 gchar *gnc_scm_strip_comments (SCM scm_text)
297 gchar *raw_text, *text, **splits;
300 raw_text = gnc_scm_to_utf8_string (scm_text);
301 splits = g_strsplit(raw_text,
"\n", -1);
302 for (i = j = 0; splits[i]; i++)
304 gchar *haystack, *needle;
305 if ((splits[i][0] ==
';') || (splits[i][0] ==
'\0'))
316 haystack = splits [i];
317 needle = g_strstr_len (haystack, -1,
"\\ ");
320 gchar *new_haystack = NULL;
321 gsize prefix_size = needle - haystack;
322 gchar *prefix = g_strndup (haystack, prefix_size);
324 new_haystack = g_strconcat (prefix, needle, NULL);
327 haystack = new_haystack;
328 needle = g_strstr_len (haystack, -1,
"\\ ");
330 splits[j++] = haystack;
334 text = g_strjoinv(
" ", splits);
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
#define PERR(format, args...)
const gchar * QofLogModule