Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On Monday 09 of July 2012, David Tardon wrote:
Hi,

On Sun, Jul 08, 2012 at 02:37:49PM +0200, Christophe JAILLET wrote:
Hi,
At line 60 of
/framework/source/lomenubar/MenuItemStatusListener.cxx, we can find


    if ((Event.State >>= oULabel) &&
        !oULabel.matchAsciiL ("private:", 8, 0) &&
        !oULabel.matchAsciiL (".uno:", 5, 0)    &&
        !oULabel.matchAsciiL ("slot:", 5, 0)    &&
        !oULabel.matchAsciiL ("service:", 8, 0) &&
        !oULabel.matchAsciiL (".cmd:", 5, 0)    &&
        !oULabel.matchAsciiL ("macro:///", 5, 0))

Q1)  Why "macro:///" and 5 ? Shouldn't it be 9 ???

Copy-and-paste bug, I guess?

Q2)  In other places, matchAscii is used in conjunction of
RTL_CONSTASCII_STRINGPARAM. This way, the length of the string is
computed by the compiler.

Is it the preferred way to do, in order to avoid hard coded constant ?

Yes, it is.

 No, not anymore. The AsciiL variants and RTL_CONSTASCII_(U)STRINGPARAM macros 
are obsolete, with string literals it is now possible to use the "normal" 
version of the function. IOW,

 oULabel.matchAsciiL ("private:", 8, 0)

is now best written simply as

 oULabel.match("private:", 0)
.

-- 
 Lubos Lunak
 l.lunak@suse.cz

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.