summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--srfi/srfi-13.c24
-rw-r--r--srfi/srfi-13.scm2
-rw-r--r--srfi/srfi-14.c21
-rw-r--r--srfi/srfi-14.h1
-rw-r--r--srfi/srfi-14.scm2
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