At 4:58pm -0500 Sun, 21 Nov 2010, Wols Lists wrote:
On 18/11/10 13:36, Kevin Hunter wrote:
As I assume you're using a regex, you might consider catching this by
doing the search and replace in series.  Here's an example:

1. Catch the 'OUString +?= ...createFromAscii...' case and replace
with 'OUString var( RTL...)'

search: OUString\s*\w+\s*\+?=\s*\S*createFromAscii\(\s*"([^"]*)"\s*\)
replace: $1 $2( RTL_CONSTASCII_USTRINGPARAM( "$4" ))

2. Then go back for a second pass with something like this:

search: ::createFromAscii\(\s*"([^"]*)"\s*\)
replace: $1 $2( RTL_CONSTASCII_USTRINGPARAM( "$4" ))

The solution isn't perfect, as it still misses certain edge cases, but
should at least help a little bit.

Forgive what might be a stupid question, but I've seen

String::createFromAscii

Will version 2 find those, and should they be replaced?

Not a stupid question at all. Regular expressions aren't the most transparent of creatures.

As I wrote the regex, round 2 /will/ find those. Since I don't know if those should be replaced, I assume that they shouldn't be, making this "an edge case". The correct procedure then would be a "Replace and Find" as opposed to "Replace All". This way one inspects every change rather than blindly updating every occurrence.

Thanks for asking!

Kevin

P.S. As an aside, I'll make a minor plug that learning regular expressions makes possible or less mundane *many* tasks in the programming or text processing world, and many editors have regular expression support built-in. Vim, Emacs, jEdit, and Kate (among others) have them by default, while gEdit (among others) has them available via a plugin. If one doesn't know about them, one might be interested in perusing http://www.regular-expressions.info/, or just generically googling.
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to