summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-09-14 00:40:03 +0200
committerLudovic Courtès <ludo@gnu.org>2009-09-14 00:42:25 +0200
commit756e8a3acfd52ed391c1f8374d85a8cca0d2bad3 (patch)
treea6c95b91db5967df0d3f734dcb1121fba641a059
parenta5229ee822a17caa46400e08bcd37e3d38b19768 (diff)
downloadguile-756e8a3acfd52ed391c1f8374d85a8cca0d2bad3.tar.gz
Merge `libguile-i18n' into `libguile'.
* GUILE-VERSION (LIBGUILE_I18N_MAJOR, LIBGUILE_I18N_INTERFACE_CURRENT, LIBGUILE_I18N_INTERFACE_REVISION, LIBGUILE_I18N_INTERFACE_AGE, LIBGUILE_I18N_INTERFACE): Remove. * doc/ref/api-i18n.texi (i18n Introduction): Don't mention `libguile-i18n'. * libguile.h: Include "libguile/i18n.h". * libguile/Makefile.am (lib_LTLIBRARIES): Remove `libguile-i18n-v*'. (libguile_la_SOURCES): Add `i18n.c'. (libguile_i18n_v_*_SOURCES, libguile_i18n_v_*_CFLAGS, libguile_i18n_v_*_LIBADD, libguile_i18n_v_*_LDFLAGS): Remove. * libguile/i18n.c (scm_bootstrap_i18n): New function. * libguile/i18n.h (scm_nl_langinfo, scm_init_i18n): Made internal. (scm_bootstrap_i18n): New declaration. * libguile/init.c (scm_i_init_guile): Invoke `scm_bootstrap_i18n ()'. * module/ice-9/i18n.scm: Load from `libguile' instead of `libguile-i18n-v-0'.
-rw-r--r--GUILE-VERSION6
-rw-r--r--doc/ref/api-i18n.texi8
-rw-r--r--libguile.h1
-rw-r--r--libguile/Makefile.am13
-rw-r--r--libguile/i18n.c10
-rw-r--r--libguile/i18n.h9
-rw-r--r--libguile/init.c2
-rw-r--r--module/ice-9/i18n.scm10
8 files changed, 27 insertions, 32 deletions
diff --git a/GUILE-VERSION b/GUILE-VERSION
index 6d86dd8dd..80e2916b6 100644
--- a/GUILE-VERSION
+++ b/GUILE-VERSION
@@ -54,9 +54,3 @@ LIBGUILE_SRFI_SRFI_60_INTERFACE_CURRENT=3
LIBGUILE_SRFI_SRFI_60_INTERFACE_REVISION=0
LIBGUILE_SRFI_SRFI_60_INTERFACE_AGE=0
LIBGUILE_SRFI_SRFI_60_INTERFACE="${LIBGUILE_SRFI_SRFI_60_INTERFACE_CURRENT}:${LIBGUILE_SRFI_SRFI_60_INTERFACE_REVISION}:${LIBGUILE_SRFI_SRFI_60_INTERFACE_AGE}"
-
-LIBGUILE_I18N_MAJOR=0
-LIBGUILE_I18N_INTERFACE_CURRENT=0
-LIBGUILE_I18N_INTERFACE_REVISION=0
-LIBGUILE_I18N_INTERFACE_AGE=0
-LIBGUILE_I18N_INTERFACE="${LIBGUILE_I18N_INTERFACE_CURRENT}:${LIBGUILE_INTERFACE_REVISION}:${LIBGUILE_I18N_INTERFACE_AGE}"
diff --git a/doc/ref/api-i18n.texi b/doc/ref/api-i18n.texi
index be5afe4f9..8bc9896e5 100644
--- a/doc/ref/api-i18n.texi
+++ b/doc/ref/api-i18n.texi
@@ -1,6 +1,6 @@
@c -*-texinfo-*-
@c This is part of the GNU Guile Reference Manual.
-@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2006, 2007
+@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2009
@c Free Software Foundation, Inc.
@c See the file guile.texi for copying conditions.
@@ -39,12 +39,6 @@ In order to make use of the functions described thereafter, the
(use-modules (ice-9 i18n))
@end example
-@cindex libguile-i18n-v-@value{LIBGUILE_I18N_MAJOR}
-
-C programs can use the C functions corresponding to the procedures of
-this module by including @code{<libguile/i18n.h>} and by linking
-against @code{libguile-i18n-v-@value{LIBGUILE_I18N_MAJOR}}.
-
@cindex cultural conventions
The @code{(ice-9 i18n)} module provides procedures to manipulate text
diff --git a/libguile.h b/libguile.h
index 74674d5b9..7967c2b51 100644
--- a/libguile.h
+++ b/libguile.h
@@ -61,6 +61,7 @@ extern "C" {
#include "libguile/guardians.h"
#include "libguile/hash.h"
#include "libguile/hashtab.h"
+#include "libguile/i18n.h"
#include "libguile/init.h"
#include "libguile/ioext.h"
#include "libguile/rdelim.h"
diff --git a/libguile/Makefile.am b/libguile/Makefile.am
index 5070de6b8..f4f12825d 100644
--- a/libguile/Makefile.am
+++ b/libguile/Makefile.am
@@ -43,8 +43,7 @@ gnulib_library = $(top_builddir)/lib/libgnu.la
ETAGS_ARGS = --regex='/SCM_\(GLOBAL_\)?\(G?PROC\|G?PROC1\|SYMBOL\|VCELL\|CONST_LONG\).*\"\([^\"]\)*\"/\3/' \
--regex='/[ \t]*SCM_[G]?DEFINE1?[ \t]*(\([^,]*\),[^,]*/\1/'
-lib_LTLIBRARIES = libguile.la \
- libguile-i18n-v-@LIBGUILE_I18N_MAJOR@.la
+lib_LTLIBRARIES = libguile.la
bin_PROGRAMS = guile
noinst_PROGRAMS = guile_filter_doc_snarfage gen-scmconfig
@@ -145,6 +144,7 @@ libguile_la_SOURCES = \
hash.c \
hashtab.c \
hooks.c \
+ i18n.c \
init.c \
inline.c \
instructions.c \
@@ -203,15 +203,6 @@ libguile_la_SOURCES = \
vports.c \
weaks.c
-libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_SOURCES = i18n.c
-libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_CFLAGS = \
- $(libguile_la_CFLAGS)
-libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_LIBADD = \
- libguile.la $(gnulib_library)
-libguile_i18n_v_@LIBGUILE_I18N_MAJOR@_la_LDFLAGS = \
- -module -L$(builddir) -lguile \
- -version-info @LIBGUILE_I18N_INTERFACE@
-
DOT_X_FILES = \
alist.x \
arbiters.x \
diff --git a/libguile/i18n.c b/libguile/i18n.c
index fd15227b5..4b7eb044c 100644
--- a/libguile/i18n.c
+++ b/libguile/i18n.c
@@ -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"
@@ -1707,6 +1708,15 @@ scm_init_i18n ()
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:
diff --git a/libguile/i18n.h b/libguile/i18n.h
index df2970b4e..16045eb0c 100644
--- a/libguile/i18n.h
+++ b/libguile/i18n.h
@@ -3,7 +3,7 @@
#ifndef SCM_I18N_H
#define SCM_I18N_H
-/* Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 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
@@ -42,9 +42,12 @@ SCM_API SCM scm_string_locale_upcase (SCM chr, SCM locale);
SCM_API SCM scm_string_locale_downcase (SCM chr, SCM locale);
SCM_API SCM scm_locale_string_to_integer (SCM str, SCM base, SCM locale);
SCM_API SCM scm_locale_string_to_inexact (SCM str, SCM locale);
-SCM_API SCM scm_nl_langinfo (SCM item, SCM locale);
-SCM_API void scm_init_i18n (void);
+SCM_INTERNAL SCM scm_nl_langinfo (SCM item, SCM locale);
+
+SCM_INTERNAL void scm_init_i18n (void);
+SCM_INTERNAL void scm_bootstrap_i18n (void);
+
#endif /* SCM_I18N_H */
diff --git a/libguile/init.c b/libguile/init.c
index 940d515f6..3fbe3685f 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -71,6 +71,7 @@
#include "libguile/hashtab.h"
#include "libguile/hooks.h"
#include "libguile/gettext.h"
+#include "libguile/i18n.h"
#include "libguile/iselect.h"
#include "libguile/ioext.h"
#include "libguile/keywords.h"
@@ -561,6 +562,7 @@ scm_i_init_guile (SCM_STACKITEM *base)
scm_init_load_path ();
scm_init_standard_ports (); /* Requires fports */
scm_init_dynamic_linking ();
+ scm_bootstrap_i18n ();
#if SCM_ENABLE_ELISP
scm_init_lang ();
#endif /* SCM_ENABLE_ELISP */
diff --git a/module/ice-9/i18n.scm b/module/ice-9/i18n.scm
index dd14e6754..e63ec7421 100644
--- a/module/ice-9/i18n.scm
+++ b/module/ice-9/i18n.scm
@@ -1,22 +1,22 @@
;;;; i18n.scm --- internationalization support
-;;;; Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+;;;; Copyright (C) 2006, 2007, 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 as published by the Free Software Foundation; either
;;;; version 3 of the License, or (at your option) any later version.
-;;;;
+;;;;
;;;; This library is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;;; Lesser General Public License for more details.
-;;;;
+;;;;
;;;; You should have received a copy of the GNU Lesser General Public
;;;; License along with this library; if not, write to the Free Software
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-;;; Author: Ludovic Courtès <ludovic.courtes@laas.fr>
+;;; Author: Ludovic Courtès <ludo@gnu.org>
;;; Commentary:
;;;
@@ -84,7 +84,7 @@
(eval-when (eval load compile)
- (load-extension "libguile-i18n-v-0" "scm_init_i18n"))
+ (load-extension "libguile" "scm_init_i18n"))
;;;