updated jamfile, fixed Windows XP problems

[SVN r10840]
This commit is contained in:
John Maddock
2001-08-11 11:47:12 +00:00
parent a06c964cab
commit e1492c79ce
3 changed files with 27 additions and 4 deletions

View File

@ -4,4 +4,23 @@ SOURCES = c_regex_traits c_regex_traits_common cpp_regex_traits
cregex fileiter posix_api regex regex_debug cregex fileiter posix_api regex regex_debug
regex_synch w32_regex_traits wide_posix_api ; regex_synch w32_regex_traits wide_posix_api ;
lib libboost_regex : ../src/$(SOURCES).cpp : <include>$(BOOST_ROOT) ; lib libboost_regex$(SUFLIB) : ../src/$(SOURCES).cpp
:
<include>$(BOOST_ROOT)
<define>BOOST_RE_NO_LIB=1
:
debug release
<runtime-link>dynamic
;
dll libboost_regex$(SUFDLL[1]) : ../src/$(SOURCES).cpp
:
<include>$(BOOST_ROOT)
<define>BOOST_RE_BUILD_DLL=1
:
debug release
<runtime-link>dynamic
;

View File

@ -117,9 +117,9 @@ int main()
std::copy(s1.begin(), s1.end(), string_out_iterator<std::wstring>(ws1)); std::copy(s1.begin(), s1.end(), string_out_iterator<std::wstring>(ws1));
#endif #endif
try{ try{
ex.assign(s1.begin(), s1.end()); ex.assign(s1);
#ifndef BOOST_RE_NO_WCSTRING #ifndef BOOST_RE_NO_WCSTRING
wex.assign(ws1.begin(), ws1.end()); wex.assign(ws1);
#endif #endif
} }
catch(std::exception& e) catch(std::exception& e)

View File

@ -272,6 +272,10 @@ void BOOST_RE_CALL w32_traits_base::do_init()
} }
buf[map_size] = (char)0; buf[map_size] = (char)0;
GetStringTypeA(GetUserDefaultLCID(), CT_CTYPE1, buf, map_size, class_map); GetStringTypeA(GetUserDefaultLCID(), CT_CTYPE1, buf, map_size, class_map);
for(i = 0; i < map_size; ++i)
{
class_map[i] &= char_class_win;
}
class_map['_'] |= char_class_underscore; class_map['_'] |= char_class_underscore;
LCMapStringA(GetUserDefaultLCID(), LCMAP_LOWERCASE, buf, map_size, lower_case_map, map_size); LCMapStringA(GetUserDefaultLCID(), LCMAP_LOWERCASE, buf, map_size, lower_case_map, map_size);
// //
@ -654,7 +658,7 @@ bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, boost::uint
if(f & char_class_unicode) if(f & char_class_unicode)
return true; return true;
else if(isPlatformNT && GetStringTypeW(CT_CTYPE1, &c, 1, &mask)) else if(isPlatformNT && GetStringTypeW(CT_CTYPE1, &c, 1, &mask))
return BOOST_RE_MAKE_BOOL(mask & f); return BOOST_RE_MAKE_BOOL(mask & f &char_class_win);
else if((f & char_class_graph) == char_class_graph) else if((f & char_class_graph) == char_class_graph)
return true; // all wide characters are considered "graphics" return true; // all wide characters are considered "graphics"
return false; return false;