/*
Make TYPE::FUNC available as a Scheme function.
*/
+std::string mangle_cxx_identifier (std::string);
#define MAKE_SCHEME_CALLBACK(TYPE, FUNC, ARGCOUNT) \
SCM TYPE ::FUNC ## _proc; \
void \
TYPE ## _ ## FUNC ## _init_functions () \
{ \
- TYPE ::FUNC ## _proc = scm_c_define_gsubr (#TYPE "::" #FUNC, \
+ std::string id = mangle_cxx_identifier (String (#TYPE) + "::" + String (#FUNC));\
+ TYPE ::FUNC ## _proc = scm_c_define_gsubr (id.c_str(), \
(ARGCOUNT), 0, 0, \
(Scheme_function_unknown) TYPE::FUNC); \
- scm_c_export (#TYPE "::" #FUNC, NULL); \
+ scm_c_export (id.c_str (), NULL); \
} \
\
ADD_SCM_INIT_FUNC (TYPE ## _ ## FUNC ## _callback, \