[Libreoffice] Funny piece of code.

Petr Mladek pmladek at suse.cz
Mon Jan 2 07:51:13 PST 2012


Olivier Hallot píše v Po 02. 01. 2012 v 13:40 -0200:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi
> 
> I stumbled on this piece of code in
> 
> registry/tools/regcompare.cxx
> 
> There must be a finesse in lines 326, 330, and so on that I missed
> miserably...
> 
> Any advise welcome, or I will rip off the ternary operator.
> 
> Thanks
> 
> Olivier
> 
> static OString getFieldAccess(RTFieldAccess fieldAccess)
>     318 {
>     319     OString ret;
>     320     if ( (fieldAccess & RT_ACCESS_INVALID) == RT_ACCESS_INVALID )
>     321     {
>     322         ret += OString("INVALID");
>     323     }
>     324     if ( (fieldAccess & RT_ACCESS_READONLY) == RT_ACCESS_READONLY )
>     325     {
>     326         ret += OString(ret.getLength() > 0 ? ",READONLY" :
> "READONLY");
>     327     }
>     328     if ( (fieldAccess & RT_ACCESS_OPTIONAL) == RT_ACCESS_OPTIONAL )
>     329     {
>     330         ret += OString(ret.getLength() > 0 ? ",OPTIONAL" :
> "OPTIONAL");

IMHO, you missed the comma "," ;-) It is used to delimit the words where
there are more added. The code generates strings like:

            "INVALID"            
            "INVALID,READONLY"     // uses comma ',' before "READONLY"
            "READONLY"             // uses pure "READONLY"
            "READONLY,OPTIONAL"
            

Best Regards,
Petr



More information about the LibreOffice mailing list