diff options
author | Marius Vollmer <mvo@zagadka.de> | 2001-05-19 00:17:05 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2001-05-19 00:17:05 +0000 |
commit | 94451729e00a4a14c410929a2d37368a5d07d114 (patch) | |
tree | 245348e93692b509fca29695947ee0f08a6021ba /srfi/srfi-14.c | |
parent | d28690d78a190d533ae326406ee1067295fd31a0 (diff) | |
download | guile-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.c | 21 |
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 |