Boost logo

Boost :

From: John Maddock (john_at_[hidden])
Date: 2005-12-05 13:22:43


> We observe a regression in the regex library compared to 1.32.0.
> The following program:

> prints "testE.idlE.idl" when compiled and linked against 1.33.x
> and "testE.idl" against previous versions.

I'm afraid it's not a regression, it's a fix!

The expression you're using can match a zero-length string, so after it's
matched the ".cidl" suffix, it then finds a second match of zero-length
immediately afterwards, hense the two copies of "E.idl" in the output
string.

I'm afraid this dark corner was/is under-documented in the docs, but the TR1
text (with which this version is intended to conform) is quite clear that
this is the required behaviour.

As a workaround, you could specify format_first_only in the format flags
(assuming you're replacing the suffix on a single filename), or you could
use an expression like:

(.)(\\.(idl|cidl|cdl))?$

and replace with:

$1E.idl

HTH,

John.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk