Merge `libguile-i18n' into `libguile'.
[bpt/guile.git] / libguile / i18n.c
index 7dcfa5a..4b7eb04 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -23,6 +23,7 @@
 #include <alloca.h>
 
 #include "libguile/_scm.h"
+#include "libguile/extensions.h"
 #include "libguile/feature.h"
 #include "libguile/i18n.h"
 #include "libguile/strings.h"
@@ -230,26 +231,6 @@ SCM_SMOB_FREE (scm_tc16_locale_smob_type, smob_locale_free, locale)
   return 0;
 }
 
-#ifndef USE_GNU_LOCALE_API
-static SCM
-smob_locale_mark (SCM locale)
-{
-  register SCM dependency;
-
-  if (!scm_is_eq (locale, SCM_VARIABLE_REF (scm_global_locale)))
-    {
-      scm_t_locale c_locale;
-
-      c_locale = (scm_t_locale) SCM_SMOB_DATA (locale);
-      dependency = (c_locale->base_locale);
-    }
-  else
-    dependency = SCM_BOOL_F;
-
-  return dependency;
-}
-#endif
-
 
 static void inline scm_locale_error (const char *, int) SCM_NORETURN;
 
@@ -1722,15 +1703,20 @@ scm_init_i18n ()
 
 #include "libguile/i18n.x"
 
-#ifndef USE_GNU_LOCALE_API
-  scm_set_smob_mark (scm_tc16_locale_smob_type, smob_locale_mark);
-#endif
-
   /* Initialize the global locale object with a special `locale' SMOB.  */
   SCM_NEWSMOB (global_locale_smob, scm_tc16_locale_smob_type, NULL);
   SCM_VARIABLE_SET (scm_global_locale, global_locale_smob);
 }
 
+void
+scm_bootstrap_i18n ()
+{
+  scm_c_register_extension ("libguile", "scm_init_i18n",
+                           (scm_t_extension_init_func) scm_init_i18n,
+                           NULL);
+
+}
+
 
 /*
   Local Variables: