mirror of https://github.com/Gnucash/gnucash
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
--- guile_scm_run.swg
|
|
+++ guile_scm_run.swg
|
|
@@ -41,10 +41,14 @@ typedef struct swig_guile_clientdata {
|
|
SCM goops_class;
|
|
} swig_guile_clientdata;
|
|
|
|
+#if SCM_MAJOR_VERSION <= 2
|
|
+#define scm_to_utf8_string scm_to_locale_string
|
|
+#define scm_from_utf8_string scm_from_locale_string
|
|
+#endif
|
|
#define SWIG_scm2str(s) \
|
|
SWIG_Guile_scm2newstr(s, NULL)
|
|
#define SWIG_str02scm(str) \
|
|
- str ? scm_from_locale_string(str) : SCM_BOOL_F
|
|
+ str ? scm_from_utf8_string(str) : SCM_BOOL_F
|
|
# define SWIG_malloc(size) \
|
|
scm_malloc(size)
|
|
# define SWIG_free(mem) \
|
|
@@ -84,21 +88,13 @@ SWIGINTERN char *
|
|
SWIG_Guile_scm2newstr(SCM str, size_t *len) {
|
|
#define FUNC_NAME "SWIG_Guile_scm2newstr"
|
|
char *ret;
|
|
- char *tmp;
|
|
- size_t l;
|
|
|
|
SCM_ASSERT (scm_is_string(str), str, 1, FUNC_NAME);
|
|
- l = scm_c_string_length(str);
|
|
|
|
- ret = (char *) SWIG_malloc( (l + 1) * sizeof(char));
|
|
+ ret = scm_to_utf8_string(str);
|
|
if (!ret) return NULL;
|
|
|
|
- tmp = scm_to_locale_string(str);
|
|
- memcpy(ret, tmp, l);
|
|
- free(tmp);
|
|
-
|
|
- ret[l] = '\0';
|
|
- if (len) *len = l;
|
|
+ if (len) *len = strlen(ret) - 1;
|
|
return ret;
|
|
#undef FUNC_NAME
|
|
}
|
|
@@ -473,7 +469,7 @@ SWIG_Guile_GetArgs (SCM *dest, SCM rest,
|
|
int num_args_passed = 0;
|
|
for (i = 0; i<reqargs; i++) {
|
|
if (!SCM_CONSP(rest))
|
|
- scm_wrong_num_args(scm_from_locale_string(procname ? (char *) procname : "unknown procedure"));
|
|
+ scm_wrong_num_args(scm_from_utf8_string(procname ? (char *) procname : "unknown procedure"));
|
|
*dest++ = SCM_CAR(rest);
|
|
rest = SCM_CDR(rest);
|
|
num_args_passed++;
|
|
@@ -486,7 +482,7 @@ SWIG_Guile_GetArgs (SCM *dest, SCM rest,
|
|
for (; i<optargs; i++)
|
|
*dest++ = SCM_UNDEFINED;
|
|
if (!SCM_NULLP(rest))
|
|
- scm_wrong_num_args(scm_from_locale_string(procname ? (char *) procname : "unknown procedure"));
|
|
+ scm_wrong_num_args(scm_from_utf8_string(procname ? (char *) procname : "unknown procedure"));
|
|
return num_args_passed;
|
|
}
|
|
|