Avoid using module operations from C.
authorMarius Vollmer <mvo@zagadka.de>
Sat, 19 May 2001 00:17:05 +0000 (00:17 +0000)
committerMarius Vollmer <mvo@zagadka.de>
Sat, 19 May 2001 00:17:05 +0000 (00:17 +0000)
* 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".

srfi/srfi-13.c
srfi/srfi-13.scm
srfi/srfi-14.c
srfi/srfi-14.h
srfi/srfi-14.scm

index 4b70978..88584ca 100644 (file)
@@ -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);
-    }
-}
index 89f974d..6125181 100644 (file)
  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)
index 9fb6b48..24388fc 100644 (file)
@@ -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
index 6eef6f9..48bb883 100644 (file)
@@ -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);
index 117e278..b947b91 100644 (file)
@@ -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