|
Boost : |
From: John Maddock (john_at_[hidden])
Date: 2007-11-15 04:31:56
Hakuro wrote:
>> Hello Folks.
>> I found an issue of regex_search() with "/b" or "/B" assertion in
>> Win32 and created a patch(attached). Please review it.
>> In the ECMA262 regex spec(15.10.2.6), for "/b" and "/B" assertion
>> only charaters [0-9A-Za-z_] are allowed as a word character and other
>> should be treated as out of word.
>> In the boost:regex inpmenetation for Win32, GetStringTypeEx() with
>> C1_ALPHA | C1_DIGIT flags is used to determine char type.
>> However the API does not differentiate [0-9A-Za-z_] and other
>> characters (e.g. European characters, Kanji) (just linguistic
>> characters and everybody else)
>> which does not meet the spec.
The current behaviour is deliberate: if you really want "C" locale behaviour
then use basic_regex<char, cpp_regex_traits<char> > as you're regular
expression type. Crippling win32 locale support IMO is not the right thing
to do.
Thanks, John Maddock.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk