[gimp] Added scheme_register_foreign_func_list and declarations for it.
- From: Kevin Cozens <kcozens src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Added scheme_register_foreign_func_list and declarations for it.
- Date: Tue, 18 Aug 2009 14:52:24 +0000 (UTC)
commit 7ee46c4aa1f58fa775d2a7330a906c2e3ef94a01
Author: Kevin Cozens <kcozens cvs gnome org>
Date: Mon Aug 17 21:38:08 2009 -0400
Added scheme_register_foreign_func_list and declarations for it.
Changes based on official version of TinyScheme (CVS commit dated
2008/07/11 19:09).
plug-ins/script-fu/tinyscheme/scheme.c | 19 +++++++++++++++++++
plug-ins/script-fu/tinyscheme/scheme.h | 14 ++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/plug-ins/script-fu/tinyscheme/scheme.c b/plug-ins/script-fu/tinyscheme/scheme.c
index 935f6e5..9a17d9f 100644
--- a/plug-ins/script-fu/tinyscheme/scheme.c
+++ b/plug-ins/script-fu/tinyscheme/scheme.c
@@ -4895,6 +4895,25 @@ void scheme_define(scheme *sc, pointer envir, pointer symbol, pointer value) {
}
#if !STANDALONE
+void scheme_register_foreign_func(scheme * sc, scheme_registerable * sr)
+{
+ scheme_define(sc,
+ sc->global_env,
+ mk_symbol(sc,sr->name),
+ mk_foreign_func(sc, sr->f));
+}
+
+void scheme_register_foreign_func_list(scheme * sc,
+ scheme_registerable * list,
+ int count)
+{
+ int i;
+ for(i = 0; i < count; i++)
+ {
+ scheme_register_foreign_func(sc, list + i);
+ }
+}
+
pointer scheme_apply0(scheme *sc, const char *procname)
{ return scheme_eval(sc, cons(sc,mk_symbol(sc,procname),sc->NIL)); }
diff --git a/plug-ins/script-fu/tinyscheme/scheme.h b/plug-ins/script-fu/tinyscheme/scheme.h
index 3f05ea8..0de92af 100644
--- a/plug-ins/script-fu/tinyscheme/scheme.h
+++ b/plug-ins/script-fu/tinyscheme/scheme.h
@@ -239,6 +239,20 @@ struct scheme_interface {
};
#endif
+#if !STANDALONE
+typedef struct scheme_registerable
+{
+ foreign_func f;
+ char * name;
+}
+scheme_registerable;
+
+void scheme_register_foreign_func_list(scheme * sc,
+ scheme_registerable * list,
+ int n);
+
+#endif /* !STANDALONE */
+
#ifdef __cplusplus
}
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]