mirror of
https://github.com/boostorg/regex.git
synced 2025-07-14 21:06:38 +02:00
Changed POSIX API functions to use the global C locale.
Fixes #1446. [SVN r46170]
This commit is contained in:
@ -62,6 +62,8 @@ const char* names[] = {
|
|||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
typedef boost::basic_regex<char, c_regex_traits<char> > c_regex_type;
|
||||||
|
|
||||||
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompA(regex_tA* expression, const char* ptr, int f)
|
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompA(regex_tA* expression, const char* ptr, int f)
|
||||||
{
|
{
|
||||||
if(expression->re_magic != magic_value)
|
if(expression->re_magic != magic_value)
|
||||||
@ -70,7 +72,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompA(regex_tA* expression, const char
|
|||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->guts = new regex();
|
expression->guts = new c_regex_type();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
} catch(...)
|
} catch(...)
|
||||||
{
|
{
|
||||||
@ -120,9 +122,9 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompA(regex_tA* expression, const char
|
|||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->re_magic = magic_value;
|
expression->re_magic = magic_value;
|
||||||
static_cast<regex*>(expression->guts)->set_expression(ptr, p2, flags);
|
static_cast<c_regex_type*>(expression->guts)->set_expression(ptr, p2, flags);
|
||||||
expression->re_nsub = static_cast<regex*>(expression->guts)->mark_count() - 1;
|
expression->re_nsub = static_cast<c_regex_type*>(expression->guts)->mark_count() - 1;
|
||||||
result = static_cast<regex*>(expression->guts)->error_code();
|
result = static_cast<c_regex_type*>(expression->guts)->error_code();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
}
|
}
|
||||||
catch(const boost::regex_error& be)
|
catch(const boost::regex_error& be)
|
||||||
@ -187,7 +189,7 @@ BOOST_REGEX_DECL regsize_t BOOST_REGEX_CCALL regerrorA(int code, const regex_tA*
|
|||||||
{
|
{
|
||||||
std::string p;
|
std::string p;
|
||||||
if((e) && (e->re_magic == magic_value))
|
if((e) && (e->re_magic == magic_value))
|
||||||
p = static_cast<regex*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = static_cast<c_regex_type*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
@ -236,7 +238,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regexecA(const regex_tA* expression, cons
|
|||||||
#endif
|
#endif
|
||||||
if(expression->re_magic == magic_value)
|
if(expression->re_magic == magic_value)
|
||||||
{
|
{
|
||||||
result = regex_search(start, end, m, *static_cast<regex*>(expression->guts), flags);
|
result = regex_search(start, end, m, *static_cast<c_regex_type*>(expression->guts), flags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return result;
|
return result;
|
||||||
@ -274,7 +276,7 @@ BOOST_REGEX_DECL void BOOST_REGEX_CCALL regfreeA(regex_tA* expression)
|
|||||||
{
|
{
|
||||||
if(expression->re_magic == magic_value)
|
if(expression->re_magic == magic_value)
|
||||||
{
|
{
|
||||||
delete static_cast<regex*>(expression->guts);
|
delete static_cast<c_regex_type*>(expression->guts);
|
||||||
}
|
}
|
||||||
expression->re_magic = 0;
|
expression->re_magic = 0;
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,8 @@ const wchar_t* wnames[] = {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
typedef boost::basic_regex<wchar_t, c_regex_traits<wchar_t> > c_regex_type;
|
||||||
|
|
||||||
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wchar_t* ptr, int f)
|
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wchar_t* ptr, int f)
|
||||||
{
|
{
|
||||||
if(expression->re_magic != wmagic_value)
|
if(expression->re_magic != wmagic_value)
|
||||||
@ -77,7 +79,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wcha
|
|||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->guts = new wregex();
|
expression->guts = new c_regex_type();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
} catch(...)
|
} catch(...)
|
||||||
{
|
{
|
||||||
@ -127,9 +129,9 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wcha
|
|||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->re_magic = wmagic_value;
|
expression->re_magic = wmagic_value;
|
||||||
static_cast<wregex*>(expression->guts)->set_expression(ptr, p2, flags);
|
static_cast<c_regex_type*>(expression->guts)->set_expression(ptr, p2, flags);
|
||||||
expression->re_nsub = static_cast<wregex*>(expression->guts)->mark_count() - 1;
|
expression->re_nsub = static_cast<c_regex_type*>(expression->guts)->mark_count() - 1;
|
||||||
result = static_cast<wregex*>(expression->guts)->error_code();
|
result = static_cast<c_regex_type*>(expression->guts)->error_code();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
}
|
}
|
||||||
catch(const boost::regex_error& be)
|
catch(const boost::regex_error& be)
|
||||||
@ -208,7 +210,7 @@ BOOST_REGEX_DECL regsize_t BOOST_REGEX_CCALL regerrorW(int code, const regex_tW*
|
|||||||
{
|
{
|
||||||
std::string p;
|
std::string p;
|
||||||
if((e) && (e->re_magic == wmagic_value))
|
if((e) && (e->re_magic == wmagic_value))
|
||||||
p = static_cast<wregex*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = static_cast<c_regex_type*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
@ -257,7 +259,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regexecW(const regex_tW* expression, cons
|
|||||||
#endif
|
#endif
|
||||||
if(expression->re_magic == wmagic_value)
|
if(expression->re_magic == wmagic_value)
|
||||||
{
|
{
|
||||||
result = regex_search(start, end, m, *static_cast<wregex*>(expression->guts), flags);
|
result = regex_search(start, end, m, *static_cast<c_regex_type*>(expression->guts), flags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return result;
|
return result;
|
||||||
@ -294,7 +296,7 @@ BOOST_REGEX_DECL void BOOST_REGEX_CCALL regfreeW(regex_tW* expression)
|
|||||||
{
|
{
|
||||||
if(expression->re_magic == wmagic_value)
|
if(expression->re_magic == wmagic_value)
|
||||||
{
|
{
|
||||||
delete static_cast<wregex*>(expression->guts);
|
delete static_cast<c_regex_type*>(expression->guts);
|
||||||
}
|
}
|
||||||
expression->re_magic = 0;
|
expression->re_magic = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user