summaryrefslogtreecommitdiff
path: root/srfi/srfi-14.c
diff options
context:
space:
mode:
authorMarius Vollmer <mvo@zagadka.de>2001-05-19 00:17:05 +0000
committerMarius Vollmer <mvo@zagadka.de>2001-05-19 00:17:05 +0000
commit94451729e00a4a14c410929a2d37368a5d07d114 (patch)
tree245348e93692b509fca29695947ee0f08a6021ba /srfi/srfi-14.c
parentd28690d78a190d533ae326406ee1067295fd31a0 (diff)
downloadguile-94451729e00a4a14c410929a2d37368a5d07d114.tar.gz
Avoid using module operations from C.
* srfi-13.c (scm_init_srfi_13_14): Removed. * srfi-14.h, srfi-14.c (scm_c_init_srfi_14): New. Contains initializations needed by C clients of srfi-14. (scm_init_srfi_13, scm_init_srfi_14): Call it. * srfi-13.scm: Call "scm_init_srf_13" instead of "scm_init_srfi_13_14". * srfi-14.scm: Call "scm_init_srf_14" instead of "scm_init_srfi_13_14".
Diffstat (limited to 'srfi/srfi-14.c')
-rw-r--r--srfi/srfi-14.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/srfi/srfi-14.c b/srfi/srfi-14.c
index 9fb6b4847..24388fc5c 100644
--- a/srfi/srfi-14.c
+++ b/srfi/srfi-14.c
@@ -1348,13 +1348,24 @@ SCM_DEFINE (scm_char_set_diff_plus_intersection_x, "char-set-diff+intersection!"
void
-scm_init_srfi_14 (void)
+scm_c_init_srfi_14 (void)
{
- scm_tc16_charset = scm_make_smob_type ("character-set",
- SCM_CHARSET_SIZE * sizeof (long));
- scm_set_smob_free (scm_tc16_charset, charset_free);
- scm_set_smob_print (scm_tc16_charset, charset_print);
+ static initialized = 0;
+
+ if (!initialized)
+ {
+ scm_tc16_charset = scm_make_smob_type ("character-set",
+ SCM_CHARSET_SIZE * sizeof (long));
+ scm_set_smob_free (scm_tc16_charset, charset_free);
+ scm_set_smob_print (scm_tc16_charset, charset_print);
+ initialized = 1;
+ }
+}
+void
+scm_init_srfi_14 (void)
+{
+ scm_c_init_srfi_14 ();
#ifndef SCM_MAGIC_SNARFER
#include "srfi/srfi-14.x"
#endif