mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 00:01:10 +08:00
Implement std::time_put.
2001-09-19 Benjamin Kosnik <bkoz@redhat.com> Implement std::time_put. * include/bits/locale_facets.h: Include time_members.h. (__timepunct): New. (time_put): Implement. * include/bits/locale_facets.tcc (do_put): Put generic versions here. * include/bits/localefwd.h: Bump number of facets. * config/locale/time_members_generic.h: New file. * config/locale/time_members_gnu.h: New file. * config/locale/c_locale_generic.h: Include clocale. * src/locale-inst.cc: Add use_facet instantiations for __timepunct. * src/locale.cc: Add __timepunct initializations. * src/localename.cc (locale::_Impl::_Impl(string, size_t)): Same. * include/Makefile.am (stamp-target): Add time_members.h. * include/Makefile.in: Regenerate. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_H. * aclocal.m4: Regenerate. * configure: Regenerate. * testsuite/22_locale/time_put.cc: New file. * testsuite/22_locale/time_put_members_char.cc: New file. * docs/html/22_locale/locale.html: Add note. From-SVN: r45702
This commit is contained in:
parent
10bd1d78b4
commit
e08138aae3
@ -1,3 +1,27 @@
|
||||
2001-09-19 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
Implement std::time_put.
|
||||
* include/bits/locale_facets.h: Include time_members.h.
|
||||
(__timepunct): New.
|
||||
(time_put): Implement.
|
||||
* include/bits/locale_facets.tcc (do_put): Put generic versions here.
|
||||
* include/bits/localefwd.h: Bump number of facets.
|
||||
* config/locale/time_members_generic.h: New file.
|
||||
* config/locale/time_members_gnu.h: New file.
|
||||
* config/locale/c_locale_generic.h: Include clocale.
|
||||
* src/locale-inst.cc: Add use_facet instantiations for __timepunct.
|
||||
* src/locale.cc: Add __timepunct initializations.
|
||||
* src/localename.cc (locale::_Impl::_Impl(string, size_t)): Same.
|
||||
* include/Makefile.am (stamp-target): Add time_members.h.
|
||||
* include/Makefile.in: Regenerate.
|
||||
* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add CTIME_H.
|
||||
* aclocal.m4: Regenerate.
|
||||
* configure: Regenerate.
|
||||
* testsuite/22_locale/time_put.cc: New file.
|
||||
* testsuite/22_locale/time_put_members_char.cc: New file.
|
||||
|
||||
* docs/html/22_locale/locale.html: Add note.
|
||||
|
||||
2001-09-17 Phil Edwards <pme@gcc.gnu.org>
|
||||
|
||||
* docs/html/configopts.html: HTML to XHTML change. Lowercase tags.
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
@ -88,17 +90,17 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -145,7 +147,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -172,7 +173,44 @@ MULTICLEAN = true
|
||||
# Work around what appears to be a GNU make bug handling MAKEFLAGS
|
||||
# values defined in terms of make variables, as is the case for CC and
|
||||
# friends when we are called from the top level Makefile.
|
||||
AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CC_FOR_TARGET=$(CC_FOR_TARGET)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "includedir=$(includedir)" "prefix=$(prefix)" "tooldir=$(tooldir)" "AR=$(AR)" "AS=$(AS)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "NM=$(NM)" "NM_FOR_BUILD=$(NM_FOR_BUILD)" "NM_FOR_TARGET=$(NM_FOR_TARGET)" "DESTDIR=$(DESTDIR)" "WERROR=$(WERROR)"
|
||||
AM_MAKEFLAGS = \
|
||||
"AR_FLAGS=$(AR_FLAGS)" \
|
||||
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
|
||||
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
|
||||
"CFLAGS=$(CFLAGS)" \
|
||||
"CXXFLAGS=$(CXXFLAGS)" \
|
||||
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
|
||||
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
|
||||
"INSTALL=$(INSTALL)" \
|
||||
"INSTALL_DATA=$(INSTALL_DATA)" \
|
||||
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
|
||||
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
|
||||
"LDFLAGS=$(LDFLAGS)" \
|
||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
|
||||
"MAKE=$(MAKE)" \
|
||||
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
|
||||
"PICFLAG=$(PICFLAG)" \
|
||||
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
|
||||
"SHELL=$(SHELL)" \
|
||||
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
|
||||
"exec_prefix=$(exec_prefix)" \
|
||||
"infodir=$(infodir)" \
|
||||
"libdir=$(libdir)" \
|
||||
"includedir=$(includedir)" \
|
||||
"prefix=$(prefix)" \
|
||||
"tooldir=$(tooldir)" \
|
||||
"AR=$(AR)" \
|
||||
"AS=$(AS)" \
|
||||
"LD=$(LD)" \
|
||||
"LIBCFLAGS=$(LIBCFLAGS)" \
|
||||
"PICFLAG=$(PICFLAG)" \
|
||||
"RANLIB=$(RANLIB)" \
|
||||
"NM=$(NM)" \
|
||||
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
|
||||
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
|
||||
"DESTDIR=$(DESTDIR)" \
|
||||
"WERROR=$(WERROR)"
|
||||
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
CONFIG_HEADER = config.h
|
||||
@ -271,7 +309,7 @@ maintainer-clean-recursive:
|
||||
dot_seen=no; \
|
||||
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
rev="$$subdir $$rev"; \
|
||||
test "$$subdir" = "." && dot_seen=yes; \
|
||||
test "$$subdir" != "." || dot_seen=yes; \
|
||||
done; \
|
||||
test "$$dot_seen" = "no" && rev=". $$rev"; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
|
@ -1063,6 +1063,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_generic.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_generic.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_generic.cc
|
||||
CTIME_H=config/locale/time_members_generic.h
|
||||
;;
|
||||
xgnu)
|
||||
AC_MSG_RESULT(gnu)
|
||||
@ -1091,6 +1092,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_gnu.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_gnu.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_gnu.cc
|
||||
CTIME_H=config/locale/time_members_gnu.h
|
||||
;;
|
||||
xieee_1003.1)
|
||||
AC_MSG_RESULT(generic)
|
||||
@ -1106,6 +1108,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_ieee_1003.1-200x.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_generic.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_generic.cc
|
||||
CTIME_H=config/locale/time_members_generic.h
|
||||
;;
|
||||
*)
|
||||
echo "$enable_clocale is an unknown locale package" 1>&2
|
||||
@ -1122,6 +1125,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
AC_SUBST(CLOCALE_H)
|
||||
AC_SUBST(CCODECVT_H)
|
||||
AC_SUBST(CMESSAGES_H)
|
||||
AC_SUBST(CTIME_H)
|
||||
AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
|
||||
AC_LINK_FILES($CCOLLATE_CC, src/collate.cc)
|
||||
AC_LINK_FILES($CMESSAGES_CC, src/messages.cc)
|
||||
|
543
libstdc++-v3/aclocal.m4
vendored
543
libstdc++-v3/aclocal.m4
vendored
@ -1,6 +1,6 @@
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.4
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.4-p5
|
||||
|
||||
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
@ -1075,6 +1075,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_generic.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_generic.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_generic.cc
|
||||
CTIME_H=config/locale/time_members_generic.h
|
||||
;;
|
||||
xgnu)
|
||||
AC_MSG_RESULT(gnu)
|
||||
@ -1103,6 +1104,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_gnu.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_gnu.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_gnu.cc
|
||||
CTIME_H=config/locale/time_members_gnu.h
|
||||
;;
|
||||
xieee_1003.1)
|
||||
AC_MSG_RESULT(generic)
|
||||
@ -1118,6 +1120,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
CMESSAGES_CC=config/locale/messages_members_ieee_1003.1-200x.cc
|
||||
CMONEY_CC=config/locale/moneypunct_members_generic.cc
|
||||
CNUMERIC_CC=config/locale/numpunct_members_generic.cc
|
||||
CTIME_H=config/locale/time_members_generic.h
|
||||
;;
|
||||
*)
|
||||
echo "$enable_clocale is an unknown locale package" 1>&2
|
||||
@ -1134,6 +1137,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
|
||||
AC_SUBST(CLOCALE_H)
|
||||
AC_SUBST(CCODECVT_H)
|
||||
AC_SUBST(CMESSAGES_H)
|
||||
AC_SUBST(CTIME_H)
|
||||
AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
|
||||
AC_LINK_FILES($CCOLLATE_CC, src/collate.cc)
|
||||
AC_LINK_FILES($CMESSAGES_CC, src/messages.cc)
|
||||
@ -1931,12 +1935,30 @@ AC_DEFUN(AC_LC_MESSAGES, [
|
||||
])
|
||||
|
||||
|
||||
#serial 1
|
||||
# This test replaces the one in autoconf.
|
||||
# Currently this macro should have the same name as the autoconf macro
|
||||
# because gettext's gettext.m4 (distributed in the automake package)
|
||||
# still uses it. Otherwise, the use in gettext.m4 makes autoheader
|
||||
# give these diagnostics:
|
||||
# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
|
||||
# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
|
||||
|
||||
undefine([AC_ISC_POSIX])
|
||||
|
||||
AC_DEFUN([AC_ISC_POSIX],
|
||||
[
|
||||
dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
|
||||
AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
|
||||
]
|
||||
)
|
||||
|
||||
# Add --enable-maintainer-mode option to configure.
|
||||
# From Jim Meyering
|
||||
|
||||
# serial 1
|
||||
|
||||
AC_DEFUN(AM_MAINTAINER_MODE,
|
||||
AC_DEFUN([AM_MAINTAINER_MODE],
|
||||
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
||||
dnl maintainer-mode is disabled by default
|
||||
AC_ARG_ENABLE(maintainer-mode,
|
||||
@ -1953,7 +1975,7 @@ AC_DEFUN(AM_MAINTAINER_MODE,
|
||||
|
||||
# Define a conditional.
|
||||
|
||||
AC_DEFUN(AM_CONDITIONAL,
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_SUBST($1_TRUE)
|
||||
AC_SUBST($1_FALSE)
|
||||
if $2; then
|
||||
@ -1972,9 +1994,37 @@ fi])
|
||||
# but which still want to provide support for the GNU gettext functionality.
|
||||
# Please note that the actual code is *not* freely available.
|
||||
|
||||
# serial 5
|
||||
# serial 9
|
||||
|
||||
AC_DEFUN(AM_WITH_NLS,
|
||||
dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
|
||||
dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
|
||||
dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
|
||||
dnl depending on --{enable,disable}-{shared,static} and on the presence of
|
||||
dnl AM-DISABLE-SHARED). Otherwise, a static library
|
||||
dnl $(top_builddir)/intl/libintl.a will be created.
|
||||
dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
|
||||
dnl implementations (in libc or libintl) without the ngettext() function
|
||||
dnl will be ignored.
|
||||
dnl LIBDIR is used to find the intl libraries. If empty,
|
||||
dnl the value `$(top_builddir)/intl/' is used.
|
||||
dnl
|
||||
dnl The result of the configuration is one of three cases:
|
||||
dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
|
||||
dnl and used.
|
||||
dnl Catalog format: GNU --> install in $(datadir)
|
||||
dnl Catalog extension: .mo after installation, .gmo in source tree
|
||||
dnl 2) GNU gettext has been found in the system's C library.
|
||||
dnl Catalog format: GNU --> install in $(datadir)
|
||||
dnl Catalog extension: .mo after installation, .gmo in source tree
|
||||
dnl 3) No internationalization, always use English msgid.
|
||||
dnl Catalog format: none
|
||||
dnl Catalog extension: none
|
||||
dnl The use of .gmo is historical (it was needed to avoid overwriting the
|
||||
dnl GNU format catalogs when building on a platform with an X/Open gettext),
|
||||
dnl but we keep it in order not to force irrelevant filename changes on the
|
||||
dnl maintainers.
|
||||
dnl
|
||||
AC_DEFUN([AM_WITH_NLS],
|
||||
[AC_MSG_CHECKING([whether NLS is requested])
|
||||
dnl Default is enabled NLS
|
||||
AC_ARG_ENABLE(nls,
|
||||
@ -1983,11 +2033,15 @@ AC_DEFUN(AM_WITH_NLS,
|
||||
AC_MSG_RESULT($USE_NLS)
|
||||
AC_SUBST(USE_NLS)
|
||||
|
||||
BUILD_INCLUDED_LIBINTL=no
|
||||
USE_INCLUDED_LIBINTL=no
|
||||
INTLLIBS=
|
||||
|
||||
dnl If we use NLS figure out what method
|
||||
if test "$USE_NLS" = "yes"; then
|
||||
AC_DEFINE(ENABLE_NLS)
|
||||
AC_DEFINE(ENABLE_NLS, 1,
|
||||
[Define to 1 if translation of program messages to the user's native language
|
||||
is requested.])
|
||||
AC_MSG_CHECKING([whether included gettext is requested])
|
||||
AC_ARG_WITH(included-gettext,
|
||||
[ --with-included-gettext use the GNU gettext library included here],
|
||||
@ -1998,86 +2052,74 @@ AC_DEFUN(AM_WITH_NLS,
|
||||
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
|
||||
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
|
||||
dnl User does not insist on using GNU NLS library. Figure out what
|
||||
dnl to use. If gettext or catgets are available (in this order) we
|
||||
dnl use this. Else we have to fall back to GNU NLS library.
|
||||
dnl catgets is only used if permitted by option --with-catgets.
|
||||
nls_cv_header_intl=
|
||||
nls_cv_header_libgt=
|
||||
dnl to use. If GNU gettext is available we use this. Else we have
|
||||
dnl to fall back to GNU NLS library.
|
||||
CATOBJEXT=NONE
|
||||
|
||||
AC_CHECK_HEADER(libintl.h,
|
||||
[AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
|
||||
[AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
|
||||
gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
|
||||
dnl Add a version number to the cache macros.
|
||||
define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
|
||||
define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
|
||||
|
||||
if test "$gt_cv_func_gettext_libc" != "yes"; then
|
||||
AC_CHECK_LIB(intl, bindtextdomain,
|
||||
[AC_CACHE_CHECK([for gettext in libintl],
|
||||
gt_cv_func_gettext_libintl,
|
||||
[AC_CHECK_LIB(intl, gettext,
|
||||
gt_cv_func_gettext_libintl=yes,
|
||||
gt_cv_func_gettext_libintl=no)],
|
||||
gt_cv_func_gettext_libintl=no)])
|
||||
AC_CHECK_HEADER(libintl.h,
|
||||
[AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
|
||||
[AC_TRY_LINK([#include <libintl.h>
|
||||
extern int _nl_msg_cat_cntr;],
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libc=yes,
|
||||
gt_cv_func_gnugettext_libc=no)])
|
||||
|
||||
if test "$gt_cv_func_gnugettext_libc" != "yes"; then
|
||||
AC_CACHE_CHECK([for GNU gettext in libintl],
|
||||
gt_cv_func_gnugettext_libintl,
|
||||
[gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -lintl $LIBICONV"
|
||||
AC_TRY_LINK([#include <libintl.h>
|
||||
extern int _nl_msg_cat_cntr;],
|
||||
[bindtextdomain ("", "");
|
||||
return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
|
||||
gt_cv_func_gnugettext_libintl=yes,
|
||||
gt_cv_func_gnugettext_libintl=no)
|
||||
LIBS="$gt_save_LIBS"])
|
||||
fi
|
||||
|
||||
if test "$gt_cv_func_gettext_libc" = "yes" \
|
||||
|| test "$gt_cv_func_gettext_libintl" = "yes"; then
|
||||
AC_DEFINE(HAVE_GETTEXT)
|
||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
||||
if test "$MSGFMT" != "no"; then
|
||||
AC_CHECK_FUNCS(dcgettext)
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||
AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
|
||||
return _nl_msg_cat_cntr],
|
||||
[CATOBJEXT=.gmo
|
||||
DATADIRNAME=share],
|
||||
[CATOBJEXT=.mo
|
||||
DATADIRNAME=lib])
|
||||
INSTOBJEXT=.mo
|
||||
fi
|
||||
fi
|
||||
dnl If an already present or preinstalled GNU gettext() is found,
|
||||
dnl use it. But if this macro is used in GNU gettext, and GNU
|
||||
dnl gettext is already preinstalled in libintl, we update this
|
||||
dnl libintl. (Cf. the install rule in intl/Makefile.in.)
|
||||
if test "$gt_cv_func_gnugettext_libc" = "yes" \
|
||||
|| { test "$gt_cv_func_gnugettext_libintl" = "yes" \
|
||||
&& test "$PACKAGE" != gettext; }; then
|
||||
AC_DEFINE(HAVE_GETTEXT, 1,
|
||||
[Define if the GNU gettext() function is already present or preinstalled.])
|
||||
|
||||
if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
|
||||
dnl If iconv() is in a separate libiconv library, then anyone
|
||||
dnl linking with libintl{.a,.so} also needs to link with
|
||||
dnl libiconv.
|
||||
INTLLIBS="-lintl $LIBICONV"
|
||||
fi
|
||||
|
||||
gt_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS $INTLLIBS"
|
||||
AC_CHECK_FUNCS(dcgettext)
|
||||
LIBS="$gt_save_LIBS"
|
||||
|
||||
AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
|
||||
if test "$MSGFMT" != "no"; then
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
fi
|
||||
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||
|
||||
CATOBJEXT=.gmo
|
||||
fi
|
||||
])
|
||||
|
||||
if test "$CATOBJEXT" = "NONE"; then
|
||||
AC_MSG_CHECKING([whether catgets can be used])
|
||||
AC_ARG_WITH(catgets,
|
||||
[ --with-catgets use catgets functions if available],
|
||||
nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
|
||||
AC_MSG_RESULT($nls_cv_use_catgets)
|
||||
|
||||
if test "$nls_cv_use_catgets" = "yes"; then
|
||||
dnl No gettext in C library. Try catgets next.
|
||||
AC_CHECK_LIB(i, main)
|
||||
AC_CHECK_FUNC(catgets,
|
||||
[AC_DEFINE(HAVE_CATGETS)
|
||||
INTLOBJS="\$(CATOBJS)"
|
||||
AC_PATH_PROG(GENCAT, gencat, no)dnl
|
||||
if test "$GENCAT" != "no"; then
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
|
||||
if test "$GMSGFMT" = "no"; then
|
||||
AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
|
||||
fi
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
CATOBJEXT=.cat
|
||||
INSTOBJEXT=.cat
|
||||
DATADIRNAME=lib
|
||||
INTLDEPS='$(top_builddir)/intl/libintl.a'
|
||||
INTLLIBS=$INTLDEPS
|
||||
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
||||
nls_cv_header_intl=intl/libintl.h
|
||||
nls_cv_header_libgt=intl/libgettext.h
|
||||
fi])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$CATOBJEXT" = "NONE"; then
|
||||
dnl Neither gettext nor catgets in included in the C library.
|
||||
dnl GNU gettext is not found in the C library.
|
||||
dnl Fall back on GNU gettext library.
|
||||
nls_cv_use_gnu_gettext=yes
|
||||
fi
|
||||
@ -2092,15 +2134,11 @@ AC_DEFUN(AM_WITH_NLS,
|
||||
AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
|
||||
[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
|
||||
AC_SUBST(MSGFMT)
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
CATOBJEXT=.gmo
|
||||
INSTOBJEXT=.mo
|
||||
DATADIRNAME=share
|
||||
INTLDEPS='$(top_builddir)/intl/libintl.a'
|
||||
INTLLIBS=$INTLDEPS
|
||||
LIBS=`echo $LIBS | sed -e 's/-lintl//'`
|
||||
nls_cv_header_intl=intl/libintl.h
|
||||
nls_cv_header_libgt=intl/libgettext.h
|
||||
INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
|
||||
LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
|
||||
fi
|
||||
|
||||
dnl Test whether we really found GNU xgettext.
|
||||
@ -2116,25 +2154,73 @@ AC_DEFUN(AM_WITH_NLS,
|
||||
fi
|
||||
fi
|
||||
|
||||
# We need to process the po/ directory.
|
||||
dnl We need to process the po/ directory.
|
||||
POSUB=po
|
||||
else
|
||||
DATADIRNAME=share
|
||||
nls_cv_header_intl=intl/libintl.h
|
||||
nls_cv_header_libgt=intl/libgettext.h
|
||||
fi
|
||||
AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
|
||||
AC_OUTPUT_COMMANDS(
|
||||
[case "$CONFIG_FILES" in *po/Makefile.in*)
|
||||
sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
|
||||
esac])
|
||||
[for ac_file in $CONFIG_FILES; do
|
||||
# Support "outfile[:infile[:infile...]]"
|
||||
case "$ac_file" in
|
||||
*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
|
||||
esac
|
||||
# PO directories have a Makefile.in generated from Makefile.in.in.
|
||||
case "$ac_file" in */Makefile.in)
|
||||
# Adjust a relative srcdir.
|
||||
ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
|
||||
ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
|
||||
ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
|
||||
case "$ac_given_srcdir" in
|
||||
.) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
|
||||
/*) top_srcdir="$ac_given_srcdir" ;;
|
||||
*) top_srcdir="$ac_dots$ac_given_srcdir" ;;
|
||||
esac
|
||||
if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
|
||||
rm -f "$ac_dir/POTFILES"
|
||||
echo creating "$ac_dir/POTFILES"
|
||||
sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
|
||||
echo creating "$ac_dir/Makefile"
|
||||
sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done])
|
||||
|
||||
|
||||
# If this is used in GNU gettext we have to set USE_NLS to `yes'
|
||||
# because some of the sources are only built for this goal.
|
||||
dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
|
||||
dnl to 'yes' because some of the testsuite requires it.
|
||||
if test "$PACKAGE" = gettext; then
|
||||
USE_NLS=yes
|
||||
USE_INCLUDED_LIBINTL=yes
|
||||
BUILD_INCLUDED_LIBINTL=yes
|
||||
fi
|
||||
|
||||
dnl intl/plural.c is generated from intl/plural.y. It requires bison,
|
||||
dnl because plural.y uses bison specific features. It requires at least
|
||||
dnl bison-1.26 because earlier versions generate a plural.c that doesn't
|
||||
dnl compile.
|
||||
dnl bison is only needed for the maintainer (who touches plural.y). But in
|
||||
dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
|
||||
dnl the rule in general Makefile. Now, some people carelessly touch the
|
||||
dnl files or have a broken "make" program, hence the plural.c rule will
|
||||
dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
|
||||
dnl present or too old.
|
||||
AC_CHECK_PROGS([INTLBISON], [bison])
|
||||
if test -z "$INTLBISON"; then
|
||||
ac_verc_fail=yes
|
||||
else
|
||||
dnl Found it, now check the version.
|
||||
AC_MSG_CHECKING([version of bison])
|
||||
changequote(<<,>>)dnl
|
||||
ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison .* \([0-9]*\.[0-9.]*\).*$/\1/p'`
|
||||
case $ac_prog_version in
|
||||
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
|
||||
1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
|
||||
changequote([,])dnl
|
||||
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
|
||||
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
|
||||
esac
|
||||
AC_MSG_RESULT([$ac_prog_version])
|
||||
fi
|
||||
if test $ac_verc_fail = yes; then
|
||||
INTLBISON=:
|
||||
fi
|
||||
|
||||
dnl These rules are solely for the distribution goal. While doing this
|
||||
@ -2146,22 +2232,38 @@ AC_DEFUN(AM_WITH_NLS,
|
||||
done
|
||||
|
||||
dnl Make all variables we use known to autoconf.
|
||||
AC_SUBST(BUILD_INCLUDED_LIBINTL)
|
||||
AC_SUBST(USE_INCLUDED_LIBINTL)
|
||||
AC_SUBST(CATALOGS)
|
||||
AC_SUBST(CATOBJEXT)
|
||||
AC_SUBST(DATADIRNAME)
|
||||
AC_SUBST(GMOFILES)
|
||||
AC_SUBST(INSTOBJEXT)
|
||||
AC_SUBST(INTLDEPS)
|
||||
AC_SUBST(INTLLIBS)
|
||||
AC_SUBST(INTLOBJS)
|
||||
AC_SUBST(POFILES)
|
||||
AC_SUBST(POSUB)
|
||||
|
||||
dnl For backward compatibility. Some configure.ins may be using this.
|
||||
nls_cv_header_intl=
|
||||
nls_cv_header_libgt=
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
DATADIRNAME=share
|
||||
AC_SUBST(DATADIRNAME)
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
INSTOBJEXT=.mo
|
||||
AC_SUBST(INSTOBJEXT)
|
||||
|
||||
dnl For backward compatibility. Some Makefiles may be using this.
|
||||
GENCAT=gencat
|
||||
AC_SUBST(GENCAT)
|
||||
])
|
||||
|
||||
AC_DEFUN(AM_GNU_GETTEXT,
|
||||
dnl Usage: Just like AM_WITH_NLS, which see.
|
||||
AC_DEFUN([AM_GNU_GETTEXT],
|
||||
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AC_PROG_CC])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])dnl
|
||||
AC_REQUIRE([AC_PROG_RANLIB])dnl
|
||||
AC_REQUIRE([AC_ISC_POSIX])dnl
|
||||
AC_REQUIRE([AC_HEADER_STDC])dnl
|
||||
@ -2171,21 +2273,18 @@ AC_DEFUN(AM_GNU_GETTEXT,
|
||||
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
|
||||
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
|
||||
AC_REQUIRE([AC_FUNC_MMAP])dnl
|
||||
AC_REQUIRE([jm_GLIBC21])dnl
|
||||
|
||||
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
|
||||
unistd.h sys/param.h])
|
||||
AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
|
||||
strdup __argz_count __argz_stringify __argz_next])
|
||||
|
||||
if test "${ac_cv_func_stpcpy+set}" != "set"; then
|
||||
AC_CHECK_FUNCS(stpcpy)
|
||||
fi
|
||||
if test "${ac_cv_func_stpcpy}" = "yes"; then
|
||||
AC_DEFINE(HAVE_STPCPY)
|
||||
fi
|
||||
AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
|
||||
stdlib.h string.h unistd.h sys/param.h])
|
||||
AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
|
||||
getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
|
||||
strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
|
||||
|
||||
AM_ICONV
|
||||
AM_LANGINFO_CODESET
|
||||
AM_LC_MESSAGES
|
||||
AM_WITH_NLS
|
||||
AM_WITH_NLS([$1],[$2],[$3])
|
||||
|
||||
if test "x$CATOBJEXT" != "x"; then
|
||||
if test "x$ALL_LINGUAS" = "x"; then
|
||||
@ -2193,10 +2292,21 @@ strdup __argz_count __argz_stringify __argz_next])
|
||||
else
|
||||
AC_MSG_CHECKING(for catalogs to be installed)
|
||||
NEW_LINGUAS=
|
||||
for lang in ${LINGUAS=$ALL_LINGUAS}; do
|
||||
case "$ALL_LINGUAS" in
|
||||
*$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
|
||||
esac
|
||||
for presentlang in $ALL_LINGUAS; do
|
||||
useit=no
|
||||
for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
|
||||
# Use the presentlang catalog if desiredlang is
|
||||
# a. equal to presentlang, or
|
||||
# b. a variant of presentlang (because in this case,
|
||||
# presentlang can be used as a fallback for messages
|
||||
# which are not translated in the desiredlang catalog).
|
||||
case "$desiredlang" in
|
||||
"$presentlang"*) useit=yes;;
|
||||
esac
|
||||
done
|
||||
if test $useit = yes; then
|
||||
NEW_LINGUAS="$NEW_LINGUAS $presentlang"
|
||||
fi
|
||||
done
|
||||
LINGUAS=$NEW_LINGUAS
|
||||
AC_MSG_RESULT($LINGUAS)
|
||||
@ -2208,47 +2318,8 @@ strdup __argz_count __argz_stringify __argz_next])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl The reference to <locale.h> in the installed <libintl.h> file
|
||||
dnl must be resolved because we cannot expect the users of this
|
||||
dnl to define HAVE_LOCALE_H.
|
||||
if test $ac_cv_header_locale_h = yes; then
|
||||
INCLUDE_LOCALE_H="#include <locale.h>"
|
||||
else
|
||||
INCLUDE_LOCALE_H="\
|
||||
/* The system does not provide the header <locale.h>. Take care yourself. */"
|
||||
fi
|
||||
AC_SUBST(INCLUDE_LOCALE_H)
|
||||
|
||||
dnl Determine which catalog format we have (if any is needed)
|
||||
dnl For now we know about two different formats:
|
||||
dnl Linux libc-5 and the normal X/Open format
|
||||
test -d intl || mkdir intl
|
||||
if test "$CATOBJEXT" = ".cat"; then
|
||||
AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
|
||||
|
||||
dnl Transform the SED scripts while copying because some dumb SEDs
|
||||
dnl cannot handle comments.
|
||||
sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
|
||||
fi
|
||||
dnl po2tbl.sed is always needed.
|
||||
sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
|
||||
$srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
|
||||
|
||||
dnl In the intl/Makefile.in we have a special dependency which makes
|
||||
dnl only sense for gettext. We comment this out for non-gettext
|
||||
dnl packages.
|
||||
if test "$PACKAGE" = "gettext"; then
|
||||
GT_NO="#NO#"
|
||||
GT_YES=
|
||||
else
|
||||
GT_NO=
|
||||
GT_YES="#YES#"
|
||||
fi
|
||||
AC_SUBST(GT_NO)
|
||||
AC_SUBST(GT_YES)
|
||||
|
||||
dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
|
||||
dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
|
||||
dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
|
||||
dnl Try to locate is.
|
||||
MKINSTALLDIRS=
|
||||
if test -n "$ac_aux_dir"; then
|
||||
@ -2259,25 +2330,9 @@ strdup __argz_count __argz_stringify __argz_next])
|
||||
fi
|
||||
AC_SUBST(MKINSTALLDIRS)
|
||||
|
||||
dnl *** For now the libtool support in intl/Makefile is not for real.
|
||||
l=
|
||||
AC_SUBST(l)
|
||||
|
||||
dnl Generate list of files to be processed by xgettext which will
|
||||
dnl be included in po/Makefile.
|
||||
test -d po || mkdir po
|
||||
if test "x$srcdir" != "x."; then
|
||||
if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
|
||||
posrcprefix="$srcdir/"
|
||||
else
|
||||
posrcprefix="../$srcdir/"
|
||||
fi
|
||||
else
|
||||
posrcprefix="../"
|
||||
fi
|
||||
rm -f po/POTFILES
|
||||
sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
|
||||
< $srcdir/po/POTFILES.in > po/POTFILES
|
||||
dnl Enable libtool support if the surrounding package wishes it.
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
|
||||
AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
|
||||
])
|
||||
|
||||
# Search path for a program which passes the given test.
|
||||
@ -2292,7 +2347,7 @@ strdup __argz_count __argz_stringify __argz_next])
|
||||
|
||||
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
|
||||
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||
AC_DEFUN(AM_PATH_PROG_WITH_TEST,
|
||||
AC_DEFUN([AM_PATH_PROG_WITH_TEST],
|
||||
[# Extract the first word of "$2", so it can be a program name with args.
|
||||
set dummy $2; ac_word=[$]2
|
||||
AC_MSG_CHECKING([for $ac_word])
|
||||
@ -2328,6 +2383,121 @@ fi
|
||||
AC_SUBST($1)dnl
|
||||
])
|
||||
|
||||
#serial 2
|
||||
|
||||
# Test for the GNU C Library, version 2.1 or newer.
|
||||
# From Bruno Haible.
|
||||
|
||||
AC_DEFUN([jm_GLIBC21],
|
||||
[
|
||||
AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
|
||||
ac_cv_gnu_library_2_1,
|
||||
[AC_EGREP_CPP([Lucky GNU user],
|
||||
[
|
||||
#include <features.h>
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
|
||||
Lucky GNU user
|
||||
#endif
|
||||
#endif
|
||||
],
|
||||
ac_cv_gnu_library_2_1=yes,
|
||||
ac_cv_gnu_library_2_1=no)
|
||||
]
|
||||
)
|
||||
AC_SUBST(GLIBC21)
|
||||
GLIBC21="$ac_cv_gnu_library_2_1"
|
||||
]
|
||||
)
|
||||
|
||||
#serial AM2
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_DEFUN([AM_ICONV],
|
||||
[
|
||||
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||
dnl those with the standalone portable GNU libiconv installed).
|
||||
|
||||
AC_ARG_WITH([libiconv-prefix],
|
||||
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
|
||||
for dir in `echo "$withval" | tr : ' '`; do
|
||||
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
|
||||
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
|
||||
done
|
||||
])
|
||||
|
||||
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
|
||||
am_cv_func_iconv="no, consider installing GNU libiconv"
|
||||
am_cv_lib_iconv=no
|
||||
AC_TRY_LINK([#include <stdlib.h>
|
||||
#include <iconv.h>],
|
||||
[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);],
|
||||
am_cv_func_iconv=yes)
|
||||
if test "$am_cv_func_iconv" != yes; then
|
||||
am_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -liconv"
|
||||
AC_TRY_LINK([#include <stdlib.h>
|
||||
#include <iconv.h>],
|
||||
[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);],
|
||||
am_cv_lib_iconv=yes
|
||||
am_cv_func_iconv=yes)
|
||||
LIBS="$am_save_LIBS"
|
||||
fi
|
||||
])
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
|
||||
AC_MSG_CHECKING([for iconv declaration])
|
||||
AC_CACHE_VAL(am_cv_proto_iconv, [
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdlib.h>
|
||||
#include <iconv.h>
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
|
||||
#else
|
||||
size_t iconv();
|
||||
#endif
|
||||
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
|
||||
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
|
||||
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
|
||||
AC_MSG_RESULT([$]{ac_t:-
|
||||
}[$]am_cv_proto_iconv)
|
||||
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
|
||||
[Define as const if the declaration of iconv() needs const.])
|
||||
fi
|
||||
LIBICONV=
|
||||
if test "$am_cv_lib_iconv" = yes; then
|
||||
LIBICONV="-liconv"
|
||||
fi
|
||||
AC_SUBST(LIBICONV)
|
||||
])
|
||||
|
||||
#serial AM1
|
||||
|
||||
dnl From Bruno Haible.
|
||||
|
||||
AC_DEFUN([AM_LANGINFO_CODESET],
|
||||
[
|
||||
AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
|
||||
[AC_TRY_LINK([#include <langinfo.h>],
|
||||
[char* cs = nl_langinfo(CODESET);],
|
||||
am_cv_langinfo_codeset=yes,
|
||||
am_cv_langinfo_codeset=no)
|
||||
])
|
||||
if test $am_cv_langinfo_codeset = yes; then
|
||||
AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
|
||||
[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
|
||||
fi
|
||||
])
|
||||
|
||||
# Check whether LC_MESSAGES is available in <locale.h>.
|
||||
# Ulrich Drepper <drepper@cygnus.com>, 1995.
|
||||
#
|
||||
@ -2336,15 +2506,16 @@ AC_SUBST($1)dnl
|
||||
# but which still want to provide support for the GNU gettext functionality.
|
||||
# Please note that the actual code is *not* freely available.
|
||||
|
||||
# serial 1
|
||||
# serial 2
|
||||
|
||||
AC_DEFUN(AM_LC_MESSAGES,
|
||||
AC_DEFUN([AM_LC_MESSAGES],
|
||||
[if test $ac_cv_header_locale_h = yes; then
|
||||
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
|
||||
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
|
||||
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
|
||||
if test $am_cv_val_LC_MESSAGES = yes; then
|
||||
AC_DEFINE(HAVE_LC_MESSAGES)
|
||||
AC_DEFINE(HAVE_LC_MESSAGES, 1,
|
||||
[Define if your <locale.h> file defines LC_MESSAGES.])
|
||||
fi
|
||||
fi])
|
||||
|
||||
@ -2357,7 +2528,7 @@ AC_DEFUN(AM_LC_MESSAGES,
|
||||
dnl Usage:
|
||||
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
|
||||
|
||||
AC_DEFUN(AM_INIT_AUTOMAKE,
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_REQUIRE([AC_PROG_INSTALL])
|
||||
PACKAGE=[$1]
|
||||
AC_SUBST(PACKAGE)
|
||||
@ -2385,7 +2556,7 @@ AC_REQUIRE([AC_PROG_MAKE_SET])])
|
||||
# Check to make sure that the build environment is sane.
|
||||
#
|
||||
|
||||
AC_DEFUN(AM_SANITY_CHECK,
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
@ -2426,7 +2597,7 @@ AC_MSG_RESULT(yes)])
|
||||
|
||||
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
|
||||
dnl The program must properly implement --version.
|
||||
AC_DEFUN(AM_MISSING_PROG,
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_MSG_CHECKING(for working $2)
|
||||
# Run test in a subshell; some versions of sh will print an error if
|
||||
# an executable is not found, even if stderr is redirected.
|
||||
@ -2442,7 +2613,7 @@ AC_SUBST($1)])
|
||||
|
||||
# Like AC_CONFIG_HEADER, but automatically create stamp file.
|
||||
|
||||
AC_DEFUN(AM_CONFIG_HEADER,
|
||||
AC_DEFUN([AM_CONFIG_HEADER],
|
||||
[AC_PREREQ([2.12])
|
||||
AC_CONFIG_HEADER([$1])
|
||||
dnl When config.status generates a header, we must update the stamp-h file.
|
||||
|
@ -3,9 +3,6 @@
|
||||
/* Define if you have a working `mmap' system call. */
|
||||
#undef HAVE_MMAP
|
||||
|
||||
/* Define if you need to in order for stat and other things to work. */
|
||||
#undef _POSIX_SOURCE
|
||||
|
||||
// Define if GCC supports weak symbols
|
||||
#undef _GLIBCPP_SUPPORTS_WEAK
|
||||
|
||||
@ -693,6 +690,9 @@
|
||||
/* Define if you have the <nan.h> header file. */
|
||||
#undef HAVE_NAN_H
|
||||
|
||||
/* Define if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define if you have the <sys/isa_defs.h> header file. */
|
||||
#undef HAVE_SYS_ISA_DEFS_H
|
||||
|
||||
@ -702,6 +702,9 @@
|
||||
/* Define if you have the <sys/resource.h> header file. */
|
||||
#undef HAVE_SYS_RESOURCE_H
|
||||
|
||||
/* Define if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
|
@ -33,6 +33,8 @@
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
#include <clocale>
|
||||
|
||||
namespace std
|
||||
{
|
||||
typedef int* __c_locale;
|
||||
|
45
libstdc++-v3/config/locale/time_members_generic.h
Normal file
45
libstdc++-v3/config/locale/time_members_generic.h
Normal file
@ -0,0 +1,45 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, 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 General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
|
||||
// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
template<typename _CharT>
|
||||
void
|
||||
__timepunct<_CharT>::_M_put_helper(char* __s, size_t __maxlen,
|
||||
const char* __format,
|
||||
const tm* __tm) const
|
||||
{
|
||||
setlocale(LC_ALL, _M_name_timepunct);
|
||||
strftime(__s, __maxlen, __format, __tm);
|
||||
}
|
53
libstdc++-v3/config/locale/time_members_gnu.h
Normal file
53
libstdc++-v3/config/locale/time_members_gnu.h
Normal file
@ -0,0 +1,53 @@
|
||||
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, 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 General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// As a special exception, you may use this file as part of a free software
|
||||
// library without restriction. Specifically, if other files instantiate
|
||||
// templates or use macros or inline functions from this file, or you compile
|
||||
// this file and link it with other files to produce an executable, this
|
||||
// file does not by itself cause the resulting executable to be covered by
|
||||
// the GNU General Public License. This exception does not however
|
||||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
|
||||
// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
template<typename _CharT>
|
||||
void
|
||||
__timepunct<_CharT>::_M_put_helper(char* __s, size_t __maxlen,
|
||||
const char* __format,
|
||||
const tm* __tm) const
|
||||
{
|
||||
#if 0
|
||||
// Requires glibc 2.3
|
||||
if (_M_c_locale_timepunct)
|
||||
__strftime_l(__s, __maxlen, _M_c_locale_timepunct, __format, __tm);
|
||||
else
|
||||
strftime(__s, __maxlen, __format, __tm);
|
||||
#else
|
||||
setlocale(LC_ALL, _M_name_timepunct);
|
||||
strftime(__s, __maxlen, __format, __tm);
|
||||
#endif
|
||||
}
|
1840
libstdc++-v3/configure
vendored
1840
libstdc++-v3/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -105,8 +105,11 @@ More information can be found in the following testcases:
|
||||
use "de" information? What is the rule for locales composed of
|
||||
just an ISO language code (say, "de") and locales with both an
|
||||
ISO language code and ISO country code (say, "de_DE").
|
||||
</ul>
|
||||
|
||||
<li> what should non-required facet instantiations do? If the
|
||||
generic implemenation is provided, then how to end-users
|
||||
provide specializations?
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<h2>
|
||||
@ -139,5 +142,3 @@ Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, A
|
||||
System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
|
||||
The Open Group/The Institute of Electrical and Electronics Engineers, Inc.
|
||||
http://www.opennc.org/austin/docreg.html
|
||||
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
## USA.
|
||||
|
||||
## $Id: Makefile.am,v 1.9 2001/08/29 00:32:49 ljrittle Exp $
|
||||
## $Id: Makefile.am,v 1.10 2001/09/10 18:13:16 bkoz Exp $
|
||||
|
||||
AUTOMAKE_OPTIONS = 1.3 gnits
|
||||
MAINT_CHARSET = latin1
|
||||
@ -337,6 +337,7 @@ stamp-target: ${target_headers} ${target_builddir}
|
||||
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h ;\
|
||||
echo `date` > stamp-target; \
|
||||
fi
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
@ -87,17 +89,17 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -140,7 +142,6 @@ glibcpp_prefixdir = @glibcpp_prefixdir@
|
||||
glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -158,42 +159,255 @@ glibcpp_builddir = @glibcpp_builddir@
|
||||
|
||||
bits_srcdir = ${glibcpp_srcdir}/include/bits
|
||||
bits_builddir = ./bits
|
||||
bits_headers = ${bits_srcdir}/basic_file.h ${bits_srcdir}/basic_ios.h ${bits_srcdir}/basic_ios.tcc ${bits_srcdir}/basic_string.h ${bits_srcdir}/basic_string.tcc ${bits_srcdir}/boost_concept_check.h ${bits_srcdir}/char_traits.h ${bits_srcdir}/codecvt.h ${bits_srcdir}/concept_check.h ${bits_srcdir}/cpp_type_traits.h ${bits_srcdir}/fpos.h ${bits_srcdir}/fstream.tcc ${bits_srcdir}/functexcept.h ${bits_srcdir}/generic_shadow.h ${bits_srcdir}/gslice.h ${bits_srcdir}/gslice_array.h ${bits_srcdir}/indirect_array.h ${bits_srcdir}/ios_base.h ${bits_srcdir}/istream.tcc ${bits_srcdir}/locale_facets.h ${bits_srcdir}/locale_facets.tcc ${bits_srcdir}/localefwd.h ${bits_srcdir}/mask_array.h ${bits_srcdir}/ostream.tcc ${bits_srcdir}/pthread_allocimpl.h ${bits_srcdir}/stream_iterator.h ${bits_srcdir}/streambuf_iterator.h ${bits_srcdir}/slice.h ${bits_srcdir}/slice_array.h ${bits_srcdir}/sstream.tcc ${bits_srcdir}/std_algorithm.h ${bits_srcdir}/std_bitset.h ${bits_srcdir}/std_complex.h ${bits_srcdir}/std_deque.h ${bits_srcdir}/std_fstream.h ${bits_srcdir}/std_functional.h ${bits_srcdir}/std_iomanip.h ${bits_srcdir}/std_ios.h ${bits_srcdir}/std_iosfwd.h ${bits_srcdir}/std_iostream.h ${bits_srcdir}/std_istream.h ${bits_srcdir}/std_iterator.h ${bits_srcdir}/std_limits.h ${bits_srcdir}/std_list.h ${bits_srcdir}/std_locale.h ${bits_srcdir}/std_map.h ${bits_srcdir}/std_memory.h ${bits_srcdir}/std_numeric.h ${bits_srcdir}/std_ostream.h ${bits_srcdir}/std_queue.h ${bits_srcdir}/std_set.h ${bits_srcdir}/std_sstream.h ${bits_srcdir}/std_stack.h ${bits_srcdir}/std_stdexcept.h ${bits_srcdir}/std_streambuf.h ${bits_srcdir}/std_string.h ${bits_srcdir}/std_utility.h ${bits_srcdir}/std_valarray.h ${bits_srcdir}/std_vector.h ${bits_srcdir}/stl_algo.h ${bits_srcdir}/stl_algobase.h ${bits_srcdir}/stl_alloc.h ${bits_srcdir}/stl_bvector.h ${bits_srcdir}/stl_construct.h ${bits_srcdir}/stl_deque.h ${bits_srcdir}/stl_function.h ${bits_srcdir}/stl_heap.h ${bits_srcdir}/stl_iterator.h ${bits_srcdir}/stl_iterator_base_funcs.h ${bits_srcdir}/stl_iterator_base_types.h ${bits_srcdir}/stl_list.h ${bits_srcdir}/stl_map.h ${bits_srcdir}/stl_multimap.h ${bits_srcdir}/stl_multiset.h ${bits_srcdir}/stl_numeric.h ${bits_srcdir}/stl_pair.h ${bits_srcdir}/stl_pthread_alloc.h ${bits_srcdir}/stl_queue.h ${bits_srcdir}/stl_raw_storage_iter.h ${bits_srcdir}/stl_relops.h ${bits_srcdir}/stl_set.h ${bits_srcdir}/stl_stack.h ${bits_srcdir}/stl_tempbuf.h ${bits_srcdir}/stl_threads.h ${bits_srcdir}/stl_tree.h ${bits_srcdir}/stl_uninitialized.h ${bits_srcdir}/stl_vector.h ${bits_srcdir}/streambuf.tcc ${bits_srcdir}/stringfwd.h ${bits_srcdir}/type_traits.h ${bits_srcdir}/valarray_array.h ${bits_srcdir}/valarray_array.tcc ${bits_srcdir}/valarray_meta.h
|
||||
bits_headers = \
|
||||
${bits_srcdir}/basic_file.h \
|
||||
${bits_srcdir}/basic_ios.h \
|
||||
${bits_srcdir}/basic_ios.tcc \
|
||||
${bits_srcdir}/basic_string.h \
|
||||
${bits_srcdir}/basic_string.tcc \
|
||||
${bits_srcdir}/boost_concept_check.h \
|
||||
${bits_srcdir}/char_traits.h \
|
||||
${bits_srcdir}/codecvt.h \
|
||||
${bits_srcdir}/concept_check.h \
|
||||
${bits_srcdir}/cpp_type_traits.h \
|
||||
${bits_srcdir}/fpos.h \
|
||||
${bits_srcdir}/fstream.tcc \
|
||||
${bits_srcdir}/functexcept.h \
|
||||
${bits_srcdir}/generic_shadow.h \
|
||||
${bits_srcdir}/gslice.h \
|
||||
${bits_srcdir}/gslice_array.h \
|
||||
${bits_srcdir}/indirect_array.h \
|
||||
${bits_srcdir}/ios_base.h \
|
||||
${bits_srcdir}/istream.tcc \
|
||||
${bits_srcdir}/locale_facets.h \
|
||||
${bits_srcdir}/locale_facets.tcc \
|
||||
${bits_srcdir}/localefwd.h \
|
||||
${bits_srcdir}/mask_array.h \
|
||||
${bits_srcdir}/ostream.tcc \
|
||||
${bits_srcdir}/pthread_allocimpl.h \
|
||||
${bits_srcdir}/stream_iterator.h \
|
||||
${bits_srcdir}/streambuf_iterator.h \
|
||||
${bits_srcdir}/slice.h \
|
||||
${bits_srcdir}/slice_array.h \
|
||||
${bits_srcdir}/sstream.tcc \
|
||||
${bits_srcdir}/std_algorithm.h \
|
||||
${bits_srcdir}/std_bitset.h \
|
||||
${bits_srcdir}/std_complex.h \
|
||||
${bits_srcdir}/std_deque.h \
|
||||
${bits_srcdir}/std_fstream.h \
|
||||
${bits_srcdir}/std_functional.h \
|
||||
${bits_srcdir}/std_iomanip.h \
|
||||
${bits_srcdir}/std_ios.h \
|
||||
${bits_srcdir}/std_iosfwd.h \
|
||||
${bits_srcdir}/std_iostream.h \
|
||||
${bits_srcdir}/std_istream.h \
|
||||
${bits_srcdir}/std_iterator.h \
|
||||
${bits_srcdir}/std_limits.h \
|
||||
${bits_srcdir}/std_list.h \
|
||||
${bits_srcdir}/std_locale.h \
|
||||
${bits_srcdir}/std_map.h \
|
||||
${bits_srcdir}/std_memory.h \
|
||||
${bits_srcdir}/std_numeric.h \
|
||||
${bits_srcdir}/std_ostream.h \
|
||||
${bits_srcdir}/std_queue.h \
|
||||
${bits_srcdir}/std_set.h \
|
||||
${bits_srcdir}/std_sstream.h \
|
||||
${bits_srcdir}/std_stack.h \
|
||||
${bits_srcdir}/std_stdexcept.h \
|
||||
${bits_srcdir}/std_streambuf.h \
|
||||
${bits_srcdir}/std_string.h \
|
||||
${bits_srcdir}/std_utility.h \
|
||||
${bits_srcdir}/std_valarray.h \
|
||||
${bits_srcdir}/std_vector.h \
|
||||
${bits_srcdir}/stl_algo.h \
|
||||
${bits_srcdir}/stl_algobase.h \
|
||||
${bits_srcdir}/stl_alloc.h \
|
||||
${bits_srcdir}/stl_bvector.h \
|
||||
${bits_srcdir}/stl_construct.h \
|
||||
${bits_srcdir}/stl_deque.h \
|
||||
${bits_srcdir}/stl_function.h \
|
||||
${bits_srcdir}/stl_heap.h \
|
||||
${bits_srcdir}/stl_iterator.h \
|
||||
${bits_srcdir}/stl_iterator_base_funcs.h \
|
||||
${bits_srcdir}/stl_iterator_base_types.h \
|
||||
${bits_srcdir}/stl_list.h \
|
||||
${bits_srcdir}/stl_map.h \
|
||||
${bits_srcdir}/stl_multimap.h \
|
||||
${bits_srcdir}/stl_multiset.h \
|
||||
${bits_srcdir}/stl_numeric.h \
|
||||
${bits_srcdir}/stl_pair.h \
|
||||
${bits_srcdir}/stl_pthread_alloc.h \
|
||||
${bits_srcdir}/stl_queue.h \
|
||||
${bits_srcdir}/stl_raw_storage_iter.h \
|
||||
${bits_srcdir}/stl_relops.h \
|
||||
${bits_srcdir}/stl_set.h \
|
||||
${bits_srcdir}/stl_stack.h \
|
||||
${bits_srcdir}/stl_tempbuf.h \
|
||||
${bits_srcdir}/stl_threads.h \
|
||||
${bits_srcdir}/stl_tree.h \
|
||||
${bits_srcdir}/stl_uninitialized.h \
|
||||
${bits_srcdir}/stl_vector.h \
|
||||
${bits_srcdir}/streambuf.tcc \
|
||||
${bits_srcdir}/stringfwd.h \
|
||||
${bits_srcdir}/type_traits.h \
|
||||
${bits_srcdir}/valarray_array.h \
|
||||
${bits_srcdir}/valarray_array.tcc \
|
||||
${bits_srcdir}/valarray_meta.h
|
||||
|
||||
|
||||
backward_srcdir = ${glibcpp_srcdir}/include/backward
|
||||
backward_builddir = ./backward
|
||||
backward_headers = ${backward_srcdir}/complex.h ${backward_srcdir}/iomanip.h ${backward_srcdir}/istream.h ${backward_srcdir}/ostream.h ${backward_srcdir}/stream.h ${backward_srcdir}/streambuf.h ${backward_srcdir}/algo.h ${backward_srcdir}/algobase.h ${backward_srcdir}/alloc.h ${backward_srcdir}/bvector.h ${backward_srcdir}/defalloc.h ${backward_srcdir}/deque.h ${backward_srcdir}/function.h ${backward_srcdir}/hash_map.h ${backward_srcdir}/hash_set.h ${backward_srcdir}/hashtable.h ${backward_srcdir}/heap.h ${backward_srcdir}/iostream.h ${backward_srcdir}/iterator.h ${backward_srcdir}/list.h ${backward_srcdir}/map.h ${backward_srcdir}/multimap.h ${backward_srcdir}/new.h ${backward_srcdir}/multiset.h ${backward_srcdir}/pair.h ${backward_srcdir}/queue.h ${backward_srcdir}/rope.h ${backward_srcdir}/set.h ${backward_srcdir}/slist.h ${backward_srcdir}/stack.h ${backward_srcdir}/tempbuf.h ${backward_srcdir}/tree.h ${backward_srcdir}/vector.h ${backward_srcdir}/fstream.h ${backward_srcdir}/strstream.h ${backward_srcdir}/strstream ${backward_srcdir}/backward_warning.h
|
||||
backward_headers = \
|
||||
${backward_srcdir}/complex.h \
|
||||
${backward_srcdir}/iomanip.h \
|
||||
${backward_srcdir}/istream.h \
|
||||
${backward_srcdir}/ostream.h \
|
||||
${backward_srcdir}/stream.h \
|
||||
${backward_srcdir}/streambuf.h \
|
||||
${backward_srcdir}/algo.h \
|
||||
${backward_srcdir}/algobase.h \
|
||||
${backward_srcdir}/alloc.h \
|
||||
${backward_srcdir}/bvector.h \
|
||||
${backward_srcdir}/defalloc.h \
|
||||
${backward_srcdir}/deque.h \
|
||||
${backward_srcdir}/function.h \
|
||||
${backward_srcdir}/hash_map.h \
|
||||
${backward_srcdir}/hash_set.h \
|
||||
${backward_srcdir}/hashtable.h \
|
||||
${backward_srcdir}/heap.h \
|
||||
${backward_srcdir}/iostream.h \
|
||||
${backward_srcdir}/iterator.h \
|
||||
${backward_srcdir}/list.h \
|
||||
${backward_srcdir}/map.h \
|
||||
${backward_srcdir}/multimap.h \
|
||||
${backward_srcdir}/new.h \
|
||||
${backward_srcdir}/multiset.h \
|
||||
${backward_srcdir}/pair.h \
|
||||
${backward_srcdir}/queue.h \
|
||||
${backward_srcdir}/rope.h \
|
||||
${backward_srcdir}/set.h \
|
||||
${backward_srcdir}/slist.h \
|
||||
${backward_srcdir}/stack.h \
|
||||
${backward_srcdir}/tempbuf.h \
|
||||
${backward_srcdir}/tree.h \
|
||||
${backward_srcdir}/vector.h \
|
||||
${backward_srcdir}/fstream.h \
|
||||
${backward_srcdir}/strstream.h \
|
||||
${backward_srcdir}/strstream \
|
||||
${backward_srcdir}/backward_warning.h
|
||||
|
||||
|
||||
ext_srcdir = ${glibcpp_srcdir}/include/ext
|
||||
ext_builddir = ./ext
|
||||
ext_headers = ${ext_srcdir}/rope ${ext_srcdir}/ropeimpl.h ${ext_srcdir}/stl_rope.h ${ext_srcdir}/slist ${ext_srcdir}/hash_map ${ext_srcdir}/hash_set ${ext_srcdir}/stl_hashtable.h ${ext_srcdir}/stl_hash_fun.h
|
||||
ext_headers = \
|
||||
${ext_srcdir}/rope \
|
||||
${ext_srcdir}/ropeimpl.h \
|
||||
${ext_srcdir}/stl_rope.h \
|
||||
${ext_srcdir}/slist \
|
||||
${ext_srcdir}/hash_map \
|
||||
${ext_srcdir}/hash_set \
|
||||
${ext_srcdir}/stl_hashtable.h \
|
||||
${ext_srcdir}/stl_hash_fun.h
|
||||
|
||||
|
||||
# This is the common subset of files that all three "C" header models use.
|
||||
c_base_srcdir = @C_INCLUDE_DIR@/bits
|
||||
c_base_builddir = ./bits
|
||||
c_base_headers = ${c_base_srcdir}/std_cassert.h ${c_base_srcdir}/std_cctype.h ${c_base_srcdir}/std_cerrno.h ${c_base_srcdir}/std_cfloat.h ${c_base_srcdir}/std_climits.h ${c_base_srcdir}/std_clocale.h ${c_base_srcdir}/std_cmath.h ${c_base_srcdir}/std_csetjmp.h ${c_base_srcdir}/std_csignal.h ${c_base_srcdir}/std_cstdarg.h ${c_base_srcdir}/std_cstddef.h ${c_base_srcdir}/std_cstdio.h ${c_base_srcdir}/std_cstdlib.h ${c_base_srcdir}/std_cstring.h ${c_base_srcdir}/std_ctime.h ${c_base_srcdir}/std_cwchar.h ${c_base_srcdir}/std_cwctype.h ${c_base_srcdir}/cmath.tcc
|
||||
c_base_headers = \
|
||||
${c_base_srcdir}/std_cassert.h \
|
||||
${c_base_srcdir}/std_cctype.h \
|
||||
${c_base_srcdir}/std_cerrno.h \
|
||||
${c_base_srcdir}/std_cfloat.h \
|
||||
${c_base_srcdir}/std_climits.h \
|
||||
${c_base_srcdir}/std_clocale.h \
|
||||
${c_base_srcdir}/std_cmath.h \
|
||||
${c_base_srcdir}/std_csetjmp.h \
|
||||
${c_base_srcdir}/std_csignal.h \
|
||||
${c_base_srcdir}/std_cstdarg.h \
|
||||
${c_base_srcdir}/std_cstddef.h \
|
||||
${c_base_srcdir}/std_cstdio.h \
|
||||
${c_base_srcdir}/std_cstdlib.h \
|
||||
${c_base_srcdir}/std_cstring.h \
|
||||
${c_base_srcdir}/std_ctime.h \
|
||||
${c_base_srcdir}/std_cwchar.h \
|
||||
${c_base_srcdir}/std_cwctype.h \
|
||||
${c_base_srcdir}/cmath.tcc
|
||||
|
||||
|
||||
std_srcdir = ${glibcpp_srcdir}/include/std
|
||||
std_builddir = ./
|
||||
std_headers = ${std_srcdir}/algorithm ${std_srcdir}/bitset ${std_srcdir}/complex ${std_srcdir}/deque ${std_srcdir}/fstream ${std_srcdir}/functional ${std_srcdir}/iomanip ${std_srcdir}/ios ${std_srcdir}/iosfwd ${std_srcdir}/iostream ${std_srcdir}/istream ${std_srcdir}/iterator ${std_srcdir}/limits ${std_srcdir}/list ${std_srcdir}/locale ${std_srcdir}/map ${std_srcdir}/memory ${std_srcdir}/numeric ${std_srcdir}/ostream ${std_srcdir}/queue ${std_srcdir}/set ${std_srcdir}/sstream ${std_srcdir}/stack ${std_srcdir}/stdexcept ${std_srcdir}/streambuf ${std_srcdir}/string ${std_srcdir}/utility ${std_srcdir}/valarray ${std_srcdir}/vector ${std_srcdir}/cassert ${std_srcdir}/cctype ${std_srcdir}/cerrno ${std_srcdir}/cfloat ${std_srcdir}/climits ${std_srcdir}/clocale ${std_srcdir}/ciso646 ${std_srcdir}/cmath ${std_srcdir}/csetjmp ${std_srcdir}/csignal ${std_srcdir}/cstdarg ${std_srcdir}/cstddef ${std_srcdir}/cstdio ${std_srcdir}/cstdlib ${std_srcdir}/cstring ${std_srcdir}/ctime ${std_srcdir}/cwchar ${std_srcdir}/cwctype
|
||||
std_headers = \
|
||||
${std_srcdir}/algorithm \
|
||||
${std_srcdir}/bitset \
|
||||
${std_srcdir}/complex \
|
||||
${std_srcdir}/deque \
|
||||
${std_srcdir}/fstream \
|
||||
${std_srcdir}/functional \
|
||||
${std_srcdir}/iomanip \
|
||||
${std_srcdir}/ios \
|
||||
${std_srcdir}/iosfwd \
|
||||
${std_srcdir}/iostream \
|
||||
${std_srcdir}/istream \
|
||||
${std_srcdir}/iterator \
|
||||
${std_srcdir}/limits \
|
||||
${std_srcdir}/list \
|
||||
${std_srcdir}/locale \
|
||||
${std_srcdir}/map \
|
||||
${std_srcdir}/memory \
|
||||
${std_srcdir}/numeric \
|
||||
${std_srcdir}/ostream \
|
||||
${std_srcdir}/queue \
|
||||
${std_srcdir}/set \
|
||||
${std_srcdir}/sstream \
|
||||
${std_srcdir}/stack \
|
||||
${std_srcdir}/stdexcept \
|
||||
${std_srcdir}/streambuf \
|
||||
${std_srcdir}/string \
|
||||
${std_srcdir}/utility \
|
||||
${std_srcdir}/valarray \
|
||||
${std_srcdir}/vector \
|
||||
${std_srcdir}/cassert \
|
||||
${std_srcdir}/cctype \
|
||||
${std_srcdir}/cerrno \
|
||||
${std_srcdir}/cfloat \
|
||||
${std_srcdir}/climits \
|
||||
${std_srcdir}/clocale \
|
||||
${std_srcdir}/ciso646 \
|
||||
${std_srcdir}/cmath \
|
||||
${std_srcdir}/csetjmp \
|
||||
${std_srcdir}/csignal \
|
||||
${std_srcdir}/cstdarg \
|
||||
${std_srcdir}/cstddef \
|
||||
${std_srcdir}/cstdio \
|
||||
${std_srcdir}/cstdlib \
|
||||
${std_srcdir}/cstring \
|
||||
${std_srcdir}/ctime \
|
||||
${std_srcdir}/cwchar \
|
||||
${std_srcdir}/cwctype
|
||||
|
||||
|
||||
target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
|
||||
target_builddir = ./${target_alias}/bits
|
||||
target_headers = ${target_srcdir}/ctype_base.h ${target_srcdir}/ctype_inline.h ${target_srcdir}/ctype_noninline.h ${target_srcdir}/os_defines.h ${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h ${glibcpp_srcdir}/@LIMITS_INC_SRCDIR@/limits.h
|
||||
target_headers = \
|
||||
${target_srcdir}/ctype_base.h \
|
||||
${target_srcdir}/ctype_inline.h \
|
||||
${target_srcdir}/ctype_noninline.h \
|
||||
${target_srcdir}/os_defines.h \
|
||||
${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h \
|
||||
${glibcpp_srcdir}/@LIMITS_INC_SRCDIR@/limits.h
|
||||
|
||||
|
||||
thread_builddir = ./${target_alias}/bits
|
||||
thread_headers = ${thread_builddir}/gthr.h ${thread_builddir}/gthr-single.h ${thread_builddir}/gthr-default.h
|
||||
thread_headers = \
|
||||
${thread_builddir}/gthr.h \
|
||||
${thread_builddir}/gthr-single.h \
|
||||
${thread_builddir}/gthr-default.h
|
||||
|
||||
|
||||
# List of all timestamp files. By keeping only one copy of this list, both
|
||||
# CLEANFILES and all-local are kept up-to-date.
|
||||
allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext stamp-target stamp-thread
|
||||
allstamps = stamp-std stamp-bits stamp-c_base stamp-backward stamp-ext \
|
||||
stamp-target stamp-thread
|
||||
|
||||
|
||||
# Target includes for threads
|
||||
@ -363,6 +577,7 @@ stamp-target: ${target_headers} ${target_builddir}
|
||||
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h ;\
|
||||
@LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h ;\
|
||||
echo `date` > stamp-target; \
|
||||
fi
|
||||
|
@ -1037,7 +1037,6 @@ namespace std
|
||||
class collate_byname : public collate<_CharT>
|
||||
{
|
||||
public:
|
||||
// Types:
|
||||
typedef _CharT char_type;
|
||||
typedef basic_string<_CharT> string_type;
|
||||
|
||||
@ -1058,6 +1057,57 @@ namespace std
|
||||
enum dateorder { no_order, dmy, mdy, ymd, ydm };
|
||||
};
|
||||
|
||||
template<typename _CharT>
|
||||
class __timepunct : public locale::facet
|
||||
{
|
||||
public:
|
||||
// Types:
|
||||
typedef _CharT char_type;
|
||||
typedef basic_string<_CharT> string_type;
|
||||
|
||||
static locale::id id;
|
||||
|
||||
protected:
|
||||
__c_locale _M_c_locale_timepunct;
|
||||
#if 1
|
||||
// Only needed if glibc < 2.3
|
||||
const char* _M_name_timepunct;
|
||||
#endif
|
||||
|
||||
public:
|
||||
explicit
|
||||
__timepunct(size_t __refs = 0)
|
||||
: locale::facet(__refs), _M_c_locale_timepunct(NULL),
|
||||
_M_name_timepunct("C")
|
||||
{
|
||||
// _M_initialize_numpunct();
|
||||
}
|
||||
|
||||
explicit
|
||||
__timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0)
|
||||
: locale::facet(__refs)
|
||||
{
|
||||
_M_name_timepunct = __s;
|
||||
if (__cloc)
|
||||
_M_c_locale_timepunct = _S_clone_c_locale(__cloc);
|
||||
}
|
||||
|
||||
void
|
||||
_M_put_helper(char* __s, size_t __maxlen, const char* __format,
|
||||
const tm* __tm) const;
|
||||
|
||||
protected:
|
||||
virtual
|
||||
~__timepunct()
|
||||
{
|
||||
if (_M_c_locale_timepunct)
|
||||
_S_destroy_c_locale(_M_c_locale_timepunct);
|
||||
}
|
||||
};
|
||||
|
||||
template<typename _CharT>
|
||||
locale::id __timepunct<_CharT>::id;
|
||||
|
||||
template<typename _CharT, typename _InIter>
|
||||
class time_get : public locale::facet, public time_base
|
||||
{
|
||||
@ -1068,6 +1118,11 @@ namespace std
|
||||
|
||||
static locale::id id;
|
||||
|
||||
protected:
|
||||
mutable basic_string<_CharT>* _M_daynames;
|
||||
mutable basic_string<_CharT>* _M_monthnames;
|
||||
|
||||
public:
|
||||
explicit
|
||||
time_get(size_t __refs = 0)
|
||||
: locale::facet (__refs), _M_daynames(0), _M_monthnames(0) { }
|
||||
@ -1077,29 +1132,29 @@ namespace std
|
||||
{ return do_date_order(); }
|
||||
|
||||
iter_type
|
||||
get_time(iter_type __s, iter_type __end, ios_base& __f,
|
||||
get_time(iter_type __s, iter_type __end, ios_base& __io,
|
||||
ios_base::iostate& __err, tm* __t) const
|
||||
{ return do_get_time(__s, __end, __f, __err, __t); }
|
||||
{ return do_get_time(__s, __end, __io, __err, __t); }
|
||||
|
||||
iter_type
|
||||
get_date(iter_type __s, iter_type __end, ios_base& __f,
|
||||
get_date(iter_type __s, iter_type __end, ios_base& __io,
|
||||
ios_base::iostate& __err, tm* __t) const
|
||||
{ return do_get_date(__s, __end, __f, __err, __t); }
|
||||
{ return do_get_date(__s, __end, __io, __err, __t); }
|
||||
|
||||
iter_type
|
||||
get_weekday(iter_type __s, iter_type __end, ios_base& __f,
|
||||
get_weekday(iter_type __s, iter_type __end, ios_base& __io,
|
||||
ios_base::iostate& __err, tm* __t) const
|
||||
{ return do_get_weekday(__s,__end,__f,__err,__t); }
|
||||
{ return this->do_get_weekday(__s, __end, __io, __err, __t); }
|
||||
|
||||
iter_type
|
||||
get_monthname(iter_type __s, iter_type __end, ios_base& __f,
|
||||
get_monthname(iter_type __s, iter_type __end, ios_base& __io,
|
||||
ios_base::iostate& __err, tm* __t) const
|
||||
{ return do_get_monthname(__s,__end,__f,__err,__t); }
|
||||
{ return this->do_get_monthname(__s, __end, __io, __err, __t); }
|
||||
|
||||
iter_type
|
||||
get_year(iter_type __s, iter_type __end, ios_base& __f,
|
||||
get_year(iter_type __s, iter_type __end, ios_base& __io,
|
||||
ios_base::iostate& __err, tm* __t) const
|
||||
{ return do_get_year(__s,__end,__f,__err,__t); }
|
||||
{ return this->do_get_year(__s, __end, __io, __err, __t); }
|
||||
|
||||
protected:
|
||||
virtual
|
||||
@ -1135,9 +1190,6 @@ namespace std
|
||||
do_get_year(iter_type __s, iter_type /*__end*/, ios_base&,
|
||||
ios_base::iostate& /*__err*/, tm* /*__t*/) const
|
||||
{ return __s; }
|
||||
|
||||
mutable basic_string<_CharT>* _M_daynames;
|
||||
mutable basic_string<_CharT>* _M_monthnames;
|
||||
};
|
||||
|
||||
template<typename _CharT, typename _InIter>
|
||||
@ -1162,34 +1214,33 @@ namespace std
|
||||
class time_put : public locale::facet, public time_base
|
||||
{
|
||||
public:
|
||||
// Types:
|
||||
typedef _CharT char_type;
|
||||
typedef _OutIter iter_type;
|
||||
|
||||
static locale::id id;
|
||||
|
||||
explicit
|
||||
time_put(size_t __refs = 0) : locale::facet (__refs) { }
|
||||
|
||||
// NB: this is a nonvirtual, calls do_put in a loop.
|
||||
iter_type
|
||||
put(iter_type __s, ios_base& /*__f*/, char_type /*__fill*/,
|
||||
const tm* /*__tmb*/, const _CharT* /*__pattern*/,
|
||||
const _CharT* /*__pat_end*/) const
|
||||
{ return __s; }
|
||||
time_put(size_t __refs = 0)
|
||||
: locale::facet(__refs) { }
|
||||
|
||||
iter_type
|
||||
put(iter_type __s, ios_base& __f, char_type __fill,
|
||||
const tm* __tmb, char __format, char __modifier = 0) const
|
||||
{ return do_put(__s, __f, __fill, __tmb, __format, __modifier); }
|
||||
put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
|
||||
const _CharT* __beg, const _CharT* __end) const;
|
||||
|
||||
iter_type
|
||||
put(iter_type __s, ios_base& __io, char_type __fill,
|
||||
const tm* __tm, char __format, char __mod = 0) const
|
||||
{ return this->do_put(__s, __io, __fill, __tm, __format, __mod); }
|
||||
|
||||
protected:
|
||||
virtual
|
||||
~time_put() { }
|
||||
~time_put()
|
||||
{ }
|
||||
|
||||
virtual iter_type
|
||||
do_put(iter_type __s, ios_base&, char_type, const tm* /*__t*/,
|
||||
char /*__format*/, char /*__mod*/) const
|
||||
{ return __s; }
|
||||
do_put(iter_type __s, ios_base& __io, char_type __fill, const tm* __tm,
|
||||
char __format, char __mod) const;
|
||||
};
|
||||
|
||||
template<typename _CharT, typename _OutIter>
|
||||
@ -1199,18 +1250,23 @@ namespace std
|
||||
class time_put_byname : public time_put<_CharT, _OutIter>
|
||||
{
|
||||
public:
|
||||
// Types:
|
||||
typedef _CharT char_type;
|
||||
typedef _OutIter iter_type;
|
||||
|
||||
explicit
|
||||
time_put_byname(const char*, size_t __refs = 0)
|
||||
: time_put<_CharT, _OutIter> (__refs) { }
|
||||
time_put_byname(const char* /*__s*/, size_t __refs = 0)
|
||||
: time_put<_CharT, _OutIter>(__refs)
|
||||
{ };
|
||||
|
||||
protected:
|
||||
virtual
|
||||
~time_put_byname() { }
|
||||
};
|
||||
|
||||
// Include host and configuration specific messages virtual functions.
|
||||
#include <bits/time_members.h>
|
||||
|
||||
|
||||
struct money_base
|
||||
{
|
||||
@ -1409,28 +1465,26 @@ namespace std
|
||||
money_get(size_t __refs = 0) : locale::facet(__refs) { }
|
||||
|
||||
iter_type
|
||||
get(iter_type __s, iter_type __end, bool __intl,
|
||||
ios_base& __f, ios_base::iostate& __err, long double& __units) const
|
||||
{ return this->do_get(__s, __end, __intl, __f, __err, __units); }
|
||||
get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
|
||||
ios_base::iostate& __err, long double& __units) const
|
||||
{ return this->do_get(__s, __end, __intl, __io, __err, __units); }
|
||||
|
||||
iter_type
|
||||
get(iter_type __s, iter_type __end, bool __intl, ios_base& __f,
|
||||
get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
|
||||
ios_base::iostate& __err, string_type& __digits) const
|
||||
{ return this->do_get(__s, __end, __intl, __f, __err, __digits); }
|
||||
{ return this->do_get(__s, __end, __intl, __io, __err, __digits); }
|
||||
|
||||
protected:
|
||||
virtual
|
||||
~money_get() { }
|
||||
|
||||
virtual iter_type
|
||||
do_get(iter_type __s, iter_type __end, bool __intl,
|
||||
ios_base& __io, ios_base::iostate& __err,
|
||||
long double& __units) const;
|
||||
do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
|
||||
ios_base::iostate& __err, long double& __units) const;
|
||||
|
||||
virtual iter_type
|
||||
do_get(iter_type __s, iter_type __end, bool __intl,
|
||||
ios_base& __io, ios_base::iostate& __err,
|
||||
string_type& __digits) const;
|
||||
do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
|
||||
ios_base::iostate& __err, string_type& __digits) const;
|
||||
};
|
||||
|
||||
template<typename _CharT, typename _InIter>
|
||||
@ -1450,14 +1504,14 @@ namespace std
|
||||
money_put(size_t __refs = 0) : locale::facet(__refs) { }
|
||||
|
||||
iter_type
|
||||
put(iter_type __s, bool __intl, ios_base& __f,
|
||||
put(iter_type __s, bool __intl, ios_base& __io,
|
||||
char_type __fill, long double __units) const
|
||||
{ return this->do_put(__s, __intl, __f, __fill, __units); }
|
||||
{ return this->do_put(__s, __intl, __io, __fill, __units); }
|
||||
|
||||
iter_type
|
||||
put(iter_type __s, bool __intl, ios_base& __f,
|
||||
put(iter_type __s, bool __intl, ios_base& __io,
|
||||
char_type __fill, const string_type& __digits) const
|
||||
{ return this->do_put(__s, __intl, __f, __fill, __digits); }
|
||||
{ return this->do_put(__s, __intl, __io, __fill, __digits); }
|
||||
|
||||
protected:
|
||||
virtual
|
||||
@ -1493,10 +1547,10 @@ namespace std
|
||||
// Underlying "C" library locale information saved from
|
||||
// initialization, needed by messages_byname as well.
|
||||
__c_locale _M_c_locale_messages;
|
||||
#if 1
|
||||
#if 1
|
||||
// Only needed if glibc < 2.3
|
||||
const char* _M_name_messages;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
public:
|
||||
static locale::id id;
|
||||
|
@ -166,7 +166,7 @@ namespace std
|
||||
void
|
||||
_Format_cache<_CharT>::_M_populate(ios_base& __io)
|
||||
{
|
||||
locale __loc = __io.getloc ();
|
||||
locale __loc = __io.getloc();
|
||||
numpunct<_CharT> const& __np = use_facet<numpunct<_CharT> >(__loc);
|
||||
_M_truename = __np.truename();
|
||||
_M_falsename = __np.falsename();
|
||||
@ -1511,6 +1511,83 @@ namespace std
|
||||
}
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _OutIter>
|
||||
time_put<_CharT, _OutIter>::iter_type
|
||||
time_put<_CharT, _OutIter>::put(iter_type __s, ios_base& __io,
|
||||
char_type, const tm* __tm,
|
||||
const _CharT* __beg,
|
||||
const _CharT* __end) const
|
||||
{
|
||||
locale __loc = __io.getloc();
|
||||
ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
while (__beg != __end)
|
||||
{
|
||||
char __c = __ctype.narrow(*__beg, 0);
|
||||
++__beg;
|
||||
if (__c == '%')
|
||||
{
|
||||
char __format;
|
||||
char __mod = 0;
|
||||
size_t __len = 1;
|
||||
__c = __ctype.narrow(*__beg, 0);
|
||||
++__beg;
|
||||
if (__c == 'E' || __c == 'O')
|
||||
{
|
||||
__mod = __c;
|
||||
__format = __ctype.narrow(*__beg, 0);
|
||||
++__beg;
|
||||
}
|
||||
else
|
||||
__format = __c;
|
||||
this->do_put(__s, __io, char_type(), __tm, __format, __mod);
|
||||
}
|
||||
else
|
||||
__s = __c;
|
||||
}
|
||||
return __s;
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _OutIter>
|
||||
time_put<_CharT, _OutIter>::iter_type
|
||||
time_put<_CharT, _OutIter>::do_put(iter_type __s, ios_base& __io,
|
||||
char_type, const tm* __tm,
|
||||
char __format, char __mod) const
|
||||
{
|
||||
// NB: This size is arbitrary. Should this be a data member,
|
||||
// initialized at construction?
|
||||
const size_t __maxlen = 64;
|
||||
char* __res = static_cast<char*>(__builtin_alloca(__maxlen));
|
||||
|
||||
// NB: In IEE 1003.1-200x, and perhaps other locale models, it
|
||||
// is possible that the format character will be longer than one
|
||||
// character. Possibilities include 'E' or 'O' followed by a
|
||||
// format charcter: if __mod is not the default argument, assume
|
||||
// it's a valid modifier.
|
||||
char __fmt[4];
|
||||
__fmt[0] = '%';
|
||||
if (!__mod)
|
||||
{
|
||||
__fmt[1] = __format;
|
||||
__fmt[2] = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
__fmt[1] = __mod;
|
||||
__fmt[2] = __format;
|
||||
__fmt[3] = '\0';
|
||||
}
|
||||
|
||||
locale __loc = __io.getloc();
|
||||
__timepunct<_CharT> const& __tp = use_facet<__timepunct<_CharT> >(__loc);
|
||||
__tp._M_put_helper(__res, __maxlen, __fmt, __tm);
|
||||
|
||||
// Write resulting, fully-formatted string to output iterator.
|
||||
size_t __len = strlen(__res);
|
||||
for (size_t __i = 0; __i < __len; ++__i)
|
||||
__s = __res[__i];
|
||||
return __s;
|
||||
}
|
||||
|
||||
// Support for time_get:
|
||||
// Note that these partial specializations could, and maybe should,
|
||||
// be changed to full specializations (by eliminating the _Dummy
|
||||
|
@ -47,9 +47,9 @@ namespace std
|
||||
{
|
||||
// NB: Don't instantiate required wchar_t facets if no wchar_t support.
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
# define _GLIBCPP_NUM_FACETS 26
|
||||
# define _GLIBCPP_NUM_FACETS 28
|
||||
#else
|
||||
# define _GLIBCPP_NUM_FACETS 13
|
||||
# define _GLIBCPP_NUM_FACETS 14
|
||||
#endif
|
||||
|
||||
// 22.1.1 Locale
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
@ -88,16 +90,16 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
|
||||
@ -142,7 +144,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -151,7 +152,7 @@ toplevel_srcdir = @toplevel_srcdir@
|
||||
AUTOMAKE_OPTIONS = 1.3 cygnus
|
||||
|
||||
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
|
||||
@GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = libio.la
|
||||
@GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = @GLIBCPP_BUILD_LIBIO_TRUE@libio.la
|
||||
@GLIBCPP_BUILD_LIBIO_FALSE@noinst_LTLIBRARIES =
|
||||
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
@ -159,14 +160,20 @@ GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
|
||||
INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)
|
||||
INCLUDES = \
|
||||
-nostdinc++ \
|
||||
$(GLIBCPP_INCLUDES) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)
|
||||
|
||||
|
||||
libio_headers = libio.h libioP.h iolibio.h
|
||||
libio_headers = \
|
||||
libio.h libioP.h iolibio.h
|
||||
|
||||
@GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c iofclose.c iofopen.c
|
||||
@GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = @GLIBCPP_NEED_LIBIO_TRUE@\
|
||||
@GLIBCPP_NEED_LIBIO_TRUE@ filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c \
|
||||
@GLIBCPP_NEED_LIBIO_TRUE@ iofclose.c iofopen.c
|
||||
@GLIBCPP_NEED_LIBIO_FALSE@LIBIO_SRCS =
|
||||
@GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = wfiledoalloc.c wfileops.c wgenops.c iofwide.c
|
||||
@GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = @GLIBCPP_NEED_WLIBIO_TRUE@\
|
||||
@GLIBCPP_NEED_WLIBIO_TRUE@ wfiledoalloc.c wfileops.c wgenops.c iofwide.c
|
||||
@GLIBCPP_NEED_WLIBIO_FALSE@LIBIO_WSRCS =
|
||||
|
||||
EXTRA_DIST = iostreamP.h
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
@ -88,17 +90,17 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -144,7 +146,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -160,7 +161,9 @@ EXTRA_LONG_DOUBLE_yes = signbitl.c
|
||||
|
||||
EXTRA_DIST = $(EXTRA_LONG_DOUBLE_yes)
|
||||
|
||||
libmath_la_LIBADD = @LIBMATHOBJS@ $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
|
||||
libmath_la_LIBADD = \
|
||||
@LIBMATHOBJS@ \
|
||||
$(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
|
||||
|
||||
|
||||
libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
|
||||
@ -172,7 +175,8 @@ LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
||||
|
||||
INCLUDES = $(TOPLEVEL_INCLUDES)
|
||||
INCLUDES = \
|
||||
$(TOPLEVEL_INCLUDES)
|
||||
|
||||
CONFIG_HEADER = ../config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
@ -87,16 +89,16 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -141,7 +143,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -171,24 +172,50 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
||||
# These bits are all figured out from configure. Look in acinclude.m4
|
||||
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
|
||||
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
|
||||
CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
|
||||
CONFIG_CXXFLAGS = \
|
||||
@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
|
||||
|
||||
|
||||
# Warning flags to use.
|
||||
WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
WARN_CXXFLAGS = \
|
||||
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
|
||||
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
|
||||
|
||||
INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
|
||||
INCLUDES = \
|
||||
-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \
|
||||
$(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
|
||||
|
||||
|
||||
headers = exception new typeinfo cxxabi.h exception_defines.h
|
||||
headers = \
|
||||
exception new typeinfo cxxabi.h exception_defines.h
|
||||
|
||||
|
||||
sources = del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc vec.cc
|
||||
sources = \
|
||||
del_op.cc \
|
||||
del_opnt.cc \
|
||||
del_opv.cc \
|
||||
del_opvnt.cc \
|
||||
eh_alloc.cc \
|
||||
eh_aux_runtime.cc \
|
||||
eh_catch.cc \
|
||||
eh_exception.cc \
|
||||
eh_globals.cc \
|
||||
eh_personality.cc \
|
||||
eh_terminate.cc \
|
||||
eh_throw.cc \
|
||||
new_handler.cc \
|
||||
new_op.cc \
|
||||
new_opnt.cc \
|
||||
new_opv.cc \
|
||||
new_opvnt.cc \
|
||||
pure.cc \
|
||||
tinfo.cc \
|
||||
tinfo2.cc \
|
||||
vec.cc
|
||||
|
||||
|
||||
libsupc___la_SOURCES = $(sources)
|
||||
@ -204,7 +231,12 @@ LIBSUPCXX_CXXFLAGS = $(LIBSUPCXX_PICFLAGS)
|
||||
# set this option because CONFIG_CXXFLAGS has to be after
|
||||
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
|
||||
# as the occasion call for it. (ie, --enable-debug)
|
||||
AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
|
||||
AM_CXXFLAGS = \
|
||||
-fno-implicit-templates \
|
||||
$(LIBSUPCXX_CXXFLAGS) \
|
||||
$(WARN_CXXFLAGS) \
|
||||
$(OPTIMIZE_CXXFLAGS) \
|
||||
$(CONFIG_CXXFLAGS)
|
||||
|
||||
|
||||
# libstdc++ libtool notes
|
||||
@ -228,7 +260,9 @@ AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS)
|
||||
#
|
||||
# We have to put --tag disable-shared after --tag CXX lest things
|
||||
# CXX undo the affect of disable-shared.
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
|
||||
--mode=compile $(CXX) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
|
||||
|
||||
|
||||
# 3) We'd have a problem when building the shared libstdc++ object if
|
||||
@ -237,7 +271,9 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared --mode=c
|
||||
# course is problematic at this point. So, we get the top-level
|
||||
# directory to configure libstdc++-v3 to use gcc as the C++
|
||||
# compilation driver.
|
||||
CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \
|
||||
--mode=link $(CXX) \
|
||||
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CONFIG_HEADER = ../config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
@ -88,17 +90,17 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -143,7 +145,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -164,7 +165,9 @@ LOCALE_OUT = @glibcpp_MOFILES@
|
||||
MSGFMT = msgfmt
|
||||
|
||||
# Necessary files.
|
||||
DISTFILES = Makefile.am Makefile.in string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN)
|
||||
DISTFILES = \
|
||||
Makefile.am Makefile.in string_literals.cc POTFILES.in $(PACKAGE).pot \
|
||||
$(LOCALE_IN)
|
||||
|
||||
|
||||
# Specify what gets cleaned up on a 'make clean'
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -66,6 +66,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -76,6 +77,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
DATADIRNAME = @DATADIRNAME@
|
||||
@ -86,16 +88,16 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBSUPCXX_PICFLAGS = @LIBSUPCXX_PICFLAGS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
@ -137,7 +139,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -161,11 +162,13 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
||||
# These bits are all figured out from configure. Look in acinclude.m4
|
||||
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
|
||||
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
|
||||
CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
|
||||
CONFIG_CXXFLAGS = \
|
||||
@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
|
||||
|
||||
|
||||
# Warning flags to use.
|
||||
WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
WARN_CXXFLAGS = \
|
||||
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
|
||||
|
||||
|
||||
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||
@ -175,17 +178,29 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
||||
|
||||
INCLUDES = -nostdinc++ $(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES)
|
||||
INCLUDES = \
|
||||
-nostdinc++ \
|
||||
$(GLIBCPP_INCLUDES) \
|
||||
$(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \
|
||||
$(TOPLEVEL_INCLUDES)
|
||||
|
||||
|
||||
sources = basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc complex_io.cc functexcept.cc globals.cc ios.cc limits.cc locale.cc locale-inst.cc localename.cc collate.cc messages.cc moneypunct.cc numpunct.cc misc-inst.cc stdexcept.cc stl-inst.cc string-inst.cc strstream.cc valarray-inst.cc wstring-inst.cc
|
||||
sources = \
|
||||
basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc \
|
||||
complex_io.cc functexcept.cc globals.cc ios.cc limits.cc \
|
||||
locale.cc locale-inst.cc localename.cc \
|
||||
collate.cc messages.cc moneypunct.cc numpunct.cc \
|
||||
misc-inst.cc stdexcept.cc stl-inst.cc string-inst.cc strstream.cc \
|
||||
valarray-inst.cc wstring-inst.cc
|
||||
|
||||
|
||||
VPATH = $(top_srcdir):$(top_srcdir)/src
|
||||
|
||||
libstdc___la_SOURCES = $(sources)
|
||||
|
||||
libstdc___la_LIBADD = ../libmath/libmath.la @libio_la@ ../libsupc++/libsupc++convenience.la
|
||||
libstdc___la_LIBADD = \
|
||||
../libmath/libmath.la @libio_la@ \
|
||||
../libsupc++/libsupc++convenience.la
|
||||
|
||||
|
||||
libstdc___la_LDFLAGS = -version-info @libtool_VERSION@ -lm
|
||||
@ -205,7 +220,12 @@ GLIBCPP_INCLUDE_DIR = @glibcpp_builddir@/include
|
||||
# The no-implicit-templates flag will generate unresolved references to
|
||||
# the concept-checking symbols. So we must disable the checks while
|
||||
# actually building the library.
|
||||
AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
|
||||
AM_CXXFLAGS = \
|
||||
-fno-implicit-templates \
|
||||
$(LIBSUPCXX_CXXFLAGS) \
|
||||
$(WARN_CXXFLAGS) \
|
||||
$(OPTIMIZE_CXXFLAGS) \
|
||||
$(CONFIG_CXXFLAGS)
|
||||
|
||||
|
||||
# libstdc++ libtool notes
|
||||
@ -226,7 +246,8 @@ AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS)
|
||||
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
|
||||
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
|
||||
# attempt to infer which configuration to use
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
|
||||
|
||||
|
||||
# 3) We'd have a problem when building the shared libstdc++ object if
|
||||
@ -235,7 +256,8 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(
|
||||
# course is problematic at this point. So, we get the top-level
|
||||
# directory to configure libstdc++-v3 to use gcc as the C++
|
||||
# compilation driver.
|
||||
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
|
||||
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CONFIG_HEADER = ../config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
|
@ -81,12 +81,14 @@ namespace std
|
||||
#endif
|
||||
|
||||
// time_get and time_put
|
||||
template class __timepunct<char>;
|
||||
template class time_put<char, obuf_iterator>;
|
||||
template class time_put_byname<char, obuf_iterator>;
|
||||
template class time_get<char, ibuf_iterator>;
|
||||
template class time_get_byname<char, ibuf_iterator>;
|
||||
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template class __timepunct<wchar_t>;
|
||||
template class time_put<wchar_t, wobuf_iterator>;
|
||||
template class time_put_byname<wchar_t, wobuf_iterator>;
|
||||
template class time_get<wchar_t, wibuf_iterator>;
|
||||
@ -130,49 +132,70 @@ namespace std
|
||||
#endif
|
||||
|
||||
// use_facet
|
||||
template
|
||||
const num_put<char, obuf_iterator >&
|
||||
use_facet<num_put<char, obuf_iterator> >(const locale&);
|
||||
template
|
||||
const num_get<char, ibuf_iterator >&
|
||||
use_facet<num_get<char, ibuf_iterator> >(const locale&);
|
||||
template
|
||||
const codecvt<char, char, mbstate_t>&
|
||||
use_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||
template
|
||||
const numpunct<char>&
|
||||
use_facet<numpunct<char> >(const locale&);
|
||||
|
||||
template
|
||||
const num_put<char, obuf_iterator >&
|
||||
use_facet<num_put<char, obuf_iterator> >(const locale&);
|
||||
|
||||
template
|
||||
const num_get<char, ibuf_iterator >&
|
||||
use_facet<num_get<char, ibuf_iterator> >(const locale&);
|
||||
|
||||
template
|
||||
const codecvt<char, char, mbstate_t>&
|
||||
use_facet<codecvt<char, char, mbstate_t> >(const locale&);
|
||||
|
||||
template
|
||||
const collate<char>&
|
||||
use_facet<collate<char> >(const locale&);
|
||||
|
||||
template
|
||||
const moneypunct<char, true>&
|
||||
use_facet<moneypunct<char, true> >(const locale&);
|
||||
|
||||
template
|
||||
const moneypunct<char, false>&
|
||||
use_facet<moneypunct<char, false> >(const locale&);
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template
|
||||
const num_put<wchar_t, wobuf_iterator>&
|
||||
use_facet<num_put<wchar_t, wobuf_iterator> >(const locale&);
|
||||
template
|
||||
const num_get<wchar_t, wibuf_iterator>&
|
||||
use_facet<num_get<wchar_t, wibuf_iterator> >(const locale&);
|
||||
|
||||
template
|
||||
const codecvt<wchar_t, char, mbstate_t>&
|
||||
use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
|
||||
const __timepunct<char>&
|
||||
use_facet<__timepunct<char> >(const locale&);
|
||||
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template
|
||||
const numpunct<wchar_t>&
|
||||
use_facet<numpunct<wchar_t> >(const locale&);
|
||||
|
||||
template
|
||||
const num_put<wchar_t, wobuf_iterator>&
|
||||
use_facet<num_put<wchar_t, wobuf_iterator> >(const locale&);
|
||||
|
||||
template
|
||||
const num_get<wchar_t, wibuf_iterator>&
|
||||
use_facet<num_get<wchar_t, wibuf_iterator> >(const locale&);
|
||||
|
||||
template
|
||||
const codecvt<wchar_t, char, mbstate_t>&
|
||||
use_facet<codecvt<wchar_t, char, mbstate_t> >(locale const&);
|
||||
|
||||
template
|
||||
const collate<wchar_t>&
|
||||
use_facet<collate<wchar_t> >(const locale&);
|
||||
|
||||
template
|
||||
const moneypunct<wchar_t, true>&
|
||||
use_facet<moneypunct<wchar_t, true> >(const locale&);
|
||||
|
||||
template
|
||||
const moneypunct<wchar_t, false>&
|
||||
use_facet<moneypunct<wchar_t, false> >(const locale&);
|
||||
|
||||
template
|
||||
const __timepunct<wchar_t>&
|
||||
use_facet<__timepunct<wchar_t> >(const locale&);
|
||||
#endif
|
||||
|
||||
// has_facet
|
||||
|
@ -114,9 +114,11 @@ namespace std
|
||||
const locale::id* const
|
||||
locale::_Impl::_S_id_time[] =
|
||||
{
|
||||
&__timepunct<char>::id,
|
||||
&time_get<char>::id,
|
||||
&time_put<char>::id,
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
&__timepunct<wchar_t>::id,
|
||||
&time_get<wchar_t>::id,
|
||||
&time_put<wchar_t>::id,
|
||||
#endif
|
||||
|
@ -90,8 +90,7 @@ namespace std
|
||||
_M_names[i] = __str;
|
||||
|
||||
// Construct all standard facets and add them to _M_facets.
|
||||
// XXX Eventually, all should use __clocale ctor like numpunct
|
||||
// XXX how to deal cleanly, consistently with null ("C") __cloc?
|
||||
// XXX How to deal cleanly, consistently with null ("C") __cloc?
|
||||
_M_init_facet(new std::collate<char>(__cloc));
|
||||
_M_init_facet(new std::ctype<char>);
|
||||
_M_init_facet(new codecvt<char, char, mbstate_t>);
|
||||
@ -102,6 +101,7 @@ namespace std
|
||||
_M_init_facet(new numpunct<char>(__cloc));
|
||||
_M_init_facet(new num_get<char>);
|
||||
_M_init_facet(new num_put<char>);
|
||||
_M_init_facet(new __timepunct<char>(__cloc, __str.c_str()));
|
||||
_M_init_facet(new time_get<char>);
|
||||
_M_init_facet(new time_put<char>);
|
||||
_M_init_facet(new std::messages<char>(__cloc, __str.c_str()));
|
||||
@ -117,6 +117,7 @@ namespace std
|
||||
_M_init_facet(new numpunct<wchar_t>(__cloc));
|
||||
_M_init_facet(new num_get<wchar_t>);
|
||||
_M_init_facet(new num_put<wchar_t>);
|
||||
_M_init_facet(new __timepunct<wchar_t>(__cloc, __str.c_str()));
|
||||
_M_init_facet(new time_get<wchar_t>);
|
||||
_M_init_facet(new time_put<wchar_t>);
|
||||
_M_init_facet(new std::messages<wchar_t>(__cloc, __str.c_str()));
|
||||
|
52
libstdc++-v3/testsuite/22_locale/time_put.cc
Normal file
52
libstdc++-v3/testsuite/22_locale/time_put.cc
Normal file
@ -0,0 +1,52 @@
|
||||
// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, 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 General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// 22.2.5.3 Template class time_put
|
||||
|
||||
#include <locale>
|
||||
|
||||
void test01()
|
||||
{
|
||||
// Check for required base class.
|
||||
typedef std::time_put<char> test_type;
|
||||
typedef std::locale::facet base_type;
|
||||
const test_type& obj = std::use_facet<test_type>(std::locale());
|
||||
const base_type* base = &obj;
|
||||
|
||||
// Check for required typedefs
|
||||
typedef test_type::char_type char_type;
|
||||
typedef test_type::iter_type iter_type;
|
||||
}
|
||||
|
||||
// Should be able to instantiate this for other types besides char, wchar_t
|
||||
class gnu_time_put: public std::time_put<unsigned char>
|
||||
{ };
|
||||
|
||||
void test02()
|
||||
{
|
||||
gnu_time_put facet01;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
141
libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
Normal file
141
libstdc++-v3/testsuite/22_locale/time_put_members_char.cc
Normal file
@ -0,0 +1,141 @@
|
||||
// 2001-09-17 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
// Copyright (C) 2001 Free Software Foundation
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, 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 General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// 22.2.5.3.1 time_put members
|
||||
|
||||
#include <locale>
|
||||
#include <sstream>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
// test string version
|
||||
void test01()
|
||||
{
|
||||
using namespace std;
|
||||
typedef ostreambuf_iterator<char> iterator_type;
|
||||
|
||||
bool test = true;
|
||||
|
||||
// basic construction and sanity checks.
|
||||
locale loc_c = locale::classic();
|
||||
locale loc_hk("en_HK");
|
||||
locale loc_fr("fr_FR@euro");
|
||||
locale loc_de("de_DE");
|
||||
VERIFY( loc_hk != loc_c );
|
||||
VERIFY( loc_hk != loc_fr );
|
||||
VERIFY( loc_hk != loc_de );
|
||||
VERIFY( loc_de != loc_fr );
|
||||
|
||||
// cache the moneypunct facets, for quicker gdb inspection
|
||||
const time_put<char>& timp_c = use_facet<time_put<char> >(loc_c);
|
||||
const time_put<char>& timp_de = use_facet<time_put<char> >(loc_de);
|
||||
const time_put<char>& timp_hk = use_facet<time_put<char> >(loc_hk);
|
||||
const time_put<char>& timp_fr = use_facet<time_put<char> >(loc_fr);
|
||||
|
||||
// create an ostream-derived object, cache the time_put facet
|
||||
const string empty;
|
||||
ostringstream oss;
|
||||
const time_put<char>& tim_put = use_facet<time_put<char> >(oss.getloc());
|
||||
|
||||
// create "C" time objects
|
||||
tm time1 = { 0, 0, 12, 4, 3, 71 };
|
||||
const char* all = "%a %A %b %B %c %d %H %I %j %m %M %p %s %U "
|
||||
"%w %W %x %X %y %Y %Z %%";
|
||||
const char* date = "%A, the second of %B";
|
||||
const char* date_ex = "%Ex";
|
||||
|
||||
// 1
|
||||
// iter_type
|
||||
// put(iter_type s, ios_base& str, char_type fill, const tm* t,
|
||||
// char format, char modifier = 0) const;
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_c);
|
||||
iterator_type os_it01 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
|
||||
string result1 = oss.str();
|
||||
VERIFY( result1 == "Sun" );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_de);
|
||||
iterator_type os_it02 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
|
||||
string result2 = oss.str();
|
||||
VERIFY( result2 == "Son" );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_hk);
|
||||
iterator_type os_it03 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
|
||||
string result3 = oss.str();
|
||||
VERIFY( result3 == "Sun" );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_fr);
|
||||
iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a');
|
||||
string result4 = oss.str();
|
||||
VERIFY( result4 == "dim" );
|
||||
|
||||
// 2
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_c);
|
||||
iterator_type os_it05 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date, date + strlen(date));
|
||||
string result5 = oss.str();
|
||||
VERIFY( result5 == "Sunday, the second of April");
|
||||
iterator_type os_it06 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date_ex, date_ex + strlen(date));
|
||||
string result6 = oss.str();
|
||||
VERIFY( result6 != result5 );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_de);
|
||||
iterator_type os_it07 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date, date + strlen(date));
|
||||
string result7 = oss.str();
|
||||
VERIFY( result7 == "Sonntag, the second of April");
|
||||
iterator_type os_it08 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date_ex, date_ex + strlen(date));
|
||||
string result8 = oss.str();
|
||||
VERIFY( result8 != result7 );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_hk);
|
||||
iterator_type os_it09 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date, date + strlen(date));
|
||||
string result9 = oss.str();
|
||||
VERIFY( result9 == "Sunday, the second of April");
|
||||
iterator_type os_it10 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date_ex, date_ex + strlen(date));
|
||||
string result10 = oss.str();
|
||||
VERIFY( result10 != result9 );
|
||||
|
||||
oss.str(empty);
|
||||
oss.imbue(loc_fr);
|
||||
iterator_type os_it11 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date, date + strlen(date));
|
||||
string result11 = oss.str();
|
||||
VERIFY( result11 == "dimanche, the second of avril");
|
||||
iterator_type os_it12 = tim_put.put(oss.rdbuf(), oss, '*', &time1,
|
||||
date_ex, date_ex + strlen(date));
|
||||
string result12 = oss.str();
|
||||
VERIFY( result12 != result11 );
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
||||
|
||||
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -67,6 +67,7 @@ AR = @AR@
|
||||
AS = @AS@
|
||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||
BASIC_FILE_H = @BASIC_FILE_H@
|
||||
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||
CATALOGS = @CATALOGS@
|
||||
CATOBJEXT = @CATOBJEXT@
|
||||
CC = @CC@
|
||||
@ -77,6 +78,7 @@ CMESSAGES_H = @CMESSAGES_H@
|
||||
CPP = @CPP@
|
||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||
CSTDIO_H = @CSTDIO_H@
|
||||
CTIME_H = @CTIME_H@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||
@ -88,17 +90,17 @@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||
GCJ = @GCJ@
|
||||
GCJFLAGS = @GCJFLAGS@
|
||||
GENCAT = @GENCAT@
|
||||
GLIBC21 = @GLIBC21@
|
||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||
GMOFILES = @GMOFILES@
|
||||
GMSGFMT = @GMSGFMT@
|
||||
GT_NO = @GT_NO@
|
||||
GT_YES = @GT_YES@
|
||||
INCLUDE_LOCALE_H = @INCLUDE_LOCALE_H@
|
||||
INSTOBJEXT = @INSTOBJEXT@
|
||||
INTLDEPS = @INTLDEPS@
|
||||
INTLBISON = @INTLBISON@
|
||||
INTLLIBS = @INTLLIBS@
|
||||
INTLOBJS = @INTLOBJS@
|
||||
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||
LIBMATHOBJS = @LIBMATHOBJS@
|
||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||
@ -145,7 +147,6 @@ glibcpp_toolexecdir = @glibcpp_toolexecdir@
|
||||
glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
|
||||
gxx_include_dir = @gxx_include_dir@
|
||||
ifGNUmake = @ifGNUmake@
|
||||
l = @l@
|
||||
libio_la = @libio_la@
|
||||
libtool_VERSION = @libtool_VERSION@
|
||||
release_VERSION = @release_VERSION@
|
||||
@ -155,10 +156,14 @@ AUTOMAKE_OPTIONS = foreign dejagnu
|
||||
|
||||
DEJATOOL = libstdc++-v3
|
||||
|
||||
EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then echo @glibcpp_builddir@/../../expect/expect ; else echo expect ; fi`
|
||||
EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then \
|
||||
echo @glibcpp_builddir@/../../expect/expect ; \
|
||||
else echo expect ; fi`
|
||||
|
||||
|
||||
RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then echo @glibcpp_srcdir@/../dejagnu/runtest ; else echo runtest; fi`
|
||||
RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then \
|
||||
echo @glibcpp_srcdir@/../dejagnu/runtest ; \
|
||||
else echo runtest; fi`
|
||||
|
||||
|
||||
RUNTESTFLAGS =
|
||||
|
Loading…
x
Reference in New Issue
Block a user