diff options
-rw-r--r-- | srfi/srfi-13.c | 24 | ||||
-rw-r--r-- | srfi/srfi-13.scm | 2 | ||||
-rw-r--r-- | srfi/srfi-14.c | 21 | ||||
-rw-r--r-- | srfi/srfi-14.h | 1 | ||||
-rw-r--r-- | srfi/srfi-14.scm | 2 |
5 files changed, 20 insertions, 30 deletions
diff --git a/srfi/srfi-13.c b/srfi/srfi-13.c index 4b709781f..88584caaa 100644 --- a/srfi/srfi-13.c +++ b/srfi/srfi-13.c @@ -3026,30 +3026,8 @@ SCM_DEFINE (scm_string_delete, "string-delete", 2, 2, 0, void scm_init_srfi_13 (void) { + scm_c_init_srfi_14 (); #ifndef SCM_MAGIC_SNARFER #include "srfi/srfi-13.x" #endif } - - -void -scm_init_srfi_13_14 (void) -{ - static int initialized = 0; - - if (!initialized) - { - SCM srfi_13_module = scm_make_module (scm_read_0str ("(srfi srfi-13)")); - SCM srfi_14_module = scm_make_module (scm_read_0str ("(srfi srfi-14)")); - SCM old_module; - - initialized = 1; - - old_module = scm_set_current_module (srfi_13_module); - scm_init_srfi_13 (); - scm_set_current_module (srfi_14_module); - scm_init_srfi_14 (); - - scm_set_current_module (old_module); - } -} diff --git a/srfi/srfi-13.scm b/srfi/srfi-13.scm index 89f974d8f..612518105 100644 --- a/srfi/srfi-13.scm +++ b/srfi/srfi-13.scm @@ -110,7 +110,7 @@ string-delete ) -(dynamic-call "scm_init_srfi_13_14" (dynamic-link "libguile-srfi-srfi-13-14")) +(dynamic-call "scm_init_srfi_13" (dynamic-link "libguile-srfi-srfi-13-14")) (define string-hash (lambda (s . rest) 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 diff --git a/srfi/srfi-14.h b/srfi/srfi-14.h index 6eef6f9f7..48bb88337 100644 --- a/srfi/srfi-14.h +++ b/srfi/srfi-14.h @@ -56,6 +56,7 @@ /* Smob type code for character sets. */ extern int scm_tc16_charset; +void scm_c_init_srfi_14 (void); void scm_init_srfi_14 (void); SCM scm_char_set_p (SCM obj); diff --git a/srfi/srfi-14.scm b/srfi/srfi-14.scm index 117e27818..b947b9187 100644 --- a/srfi/srfi-14.scm +++ b/srfi/srfi-14.scm @@ -90,7 +90,7 @@ char-set:full ) -(dynamic-call "scm_init_srfi_13_14" (dynamic-link "libguile-srfi-srfi-13-14")) +(dynamic-call "scm_init_srfi_14" (dynamic-link "libguile-srfi-srfi-13-14")) (define (->char-set x) (cond |