[Libreoffice] [PUSHED] Re: [PATCH 02/12] RTL_CONSTASCII_USTRINGPARAM in components cui options

Kevin Hunter hunteke at earlham.edu
Sun Nov 21 20:48:54 PST 2010

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!


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.

More information about the LibreOffice mailing list