Commit 7942afdc by Benjamin Kosnik Committed by Benjamin Kosnik

locale_facets.h (__num_base::_S_atoms_in): Add -+xX.


2003-07-16  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (__num_base::_S_atoms_in): Add -+xX.
	(num_get::_M_convert_int): To _M_insert_int.
	(num_get::_M_convert_float): To _M_insert_float.
	* include/bits/locale_facets.tcc (num_get::_M_extract_float):
	Use caches for ctype, num_get.
	(num_get::_M_extract_int): Same.
	(num_get::get(bool)): Same.
	(__verify_grouping): Use size_t.
	* src/locale-inst.cc: Update.
	* src/locale.cc: Adjust _S_atoms_in.

From-SVN: r69491
parent 03988cac
2003-07-16 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (__num_base::_S_atoms_in): Add -+xX.
(num_get::_M_convert_int): To _M_insert_int.
(num_get::_M_convert_float): To _M_insert_float.
* include/bits/locale_facets.tcc (num_get::_M_extract_float):
Use caches for ctype, num_get.
(num_get::_M_extract_int): Same.
(num_get::get(bool)): Same.
(__verify_grouping): Use size_t.
* src/locale-inst.cc: Update.
* src/locale.cc: Adjust _S_atoms_in.
2003-07-16 Phil Edwards <pme@gcc.gnu.org>
* docs/doxygen/mainpage.html: Move building/writing instructions...
......
......@@ -557,15 +557,19 @@ namespace std
static const char* _S_atoms_out;
// String literal of acceptable (narrow) input, for num_get.
// "0123456789eEabcdfABCDF"
// "-+xX0123456789eEabcdfABCDF"
static const char* _S_atoms_in;
enum
{
_S_iminus,
_S_iplus,
_S_ix,
_S_iX,
_S_izero,
_S_ie = _S_izero + 10,
_S_iE = _S_izero + 11,
_S_iend = 21 + 1
_S_iend = 26
};
// num_put
......@@ -590,8 +594,8 @@ namespace std
// through the current locale's ctype<_CharT>.widen().
_CharT _M_atoms_out[__num_base::_S_oend + 1];
// A list of valid numeric literals for output: in the standard
// "C" locale, this is "0123456789eEabcdfABCDF"
// A list of valid numeric literals for input: in the standard
// "C" locale, this is "-+xX0123456789eEabcdfABCDF"
// This array contains the chars after having been passed
// through the current locale's ctype<_CharT>.widen().
_CharT _M_atoms_in[__num_base::_S_iend + 1];
......@@ -983,8 +987,8 @@ namespace std
protected:
template<typename _ValueT>
iter_type
_M_convert_float(iter_type, ios_base& __io, char_type __fill,
char __mod, _ValueT __v) const;
_M_insert_float(iter_type, ios_base& __io, char_type __fill,
char __mod, _ValueT __v) const;
void
_M_group_float(const string& __grouping, char_type __sep,
......@@ -993,8 +997,8 @@ namespace std
template<typename _ValueT>
iter_type
_M_convert_int(iter_type, ios_base& __io, char_type __fill,
_ValueT __v) const;
_M_insert_int(iter_type, ios_base& __io, char_type __fill,
_ValueT __v) const;
void
_M_group_int(const string& __grouping, char_type __sep,
......
......@@ -64,40 +64,40 @@ namespace std
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long) const;
_M_insert_int(ostreambuf_iterator<char>, ios_base&, char,
long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long) const;
_M_insert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long) const;
#ifdef _GLIBCXX_USE_LONG_LONG
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
long long) const;
_M_insert_int(ostreambuf_iterator<char>, ios_base&, char,
long long) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long long) const;
_M_insert_int(ostreambuf_iterator<char>, ios_base&, char,
unsigned long long) const;
#endif
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
double) const;
_M_insert_float(ostreambuf_iterator<char>, ios_base&, char, char,
double) const;
template
ostreambuf_iterator<char>
num_put<char, ostreambuf_iterator<char> >::
_M_convert_float(ostreambuf_iterator<char>, ios_base&, char, char,
long double) const;
_M_insert_float(ostreambuf_iterator<char>, ios_base&, char, char,
long double) const;
#ifdef _GLIBCXX_USE_WCHAR_T
template class numpunct<wchar_t>;
......@@ -109,40 +109,40 @@ namespace std
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
long) const;
_M_insert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
unsigned long) const;
_M_insert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
unsigned long) const;
#ifdef _GLIBCXX_USE_LONG_LONG
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
long long) const;
_M_insert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
long long) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
unsigned long long) const;
_M_insert_int(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t,
unsigned long long) const;
#endif
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
double) const;
_M_insert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
double) const;
template
ostreambuf_iterator<wchar_t>
num_put<wchar_t, ostreambuf_iterator<wchar_t> >::
_M_convert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
long double) const;
_M_insert_float(ostreambuf_iterator<wchar_t>, ios_base&, wchar_t, char,
long double) const;
#endif
// time_get and time_put
......
......@@ -475,7 +475,7 @@ namespace std
const money_base::pattern
money_base::_S_default_pattern = { {symbol, sign, none, value} };
const char* __num_base::_S_atoms_in = "0123456789eEabcdfABCDF";
const char* __num_base::_S_atoms_in = "-+xX0123456789eEabcdfABCDF";
const char* __num_base::_S_atoms_out ="-+xX0123456789abcdef0123456789ABCDEF";
// _GLIBCXX_RESOLVE_LIB_DEFECTS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment