Hello Eike,<br><br><div class="gmail_quote">2011/8/27 Eike Rathke <span dir="ltr">&lt;<a href="mailto:ooo@erack.de">ooo@erack.de</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Markus,<br>
<br>
On Saturday, 2011-08-27 15:24:31 +0200, Markus Mohrhard wrote:<br>
<br>
&gt; -                    if (     (!pOUTextContent &amp;&amp; !pOUText &amp;&amp; !pOUTextValue)<br>
&gt; -                        &amp;&amp; ( (pOUTextContent &amp;&amp; !pOUTextContent-&gt;getLength()) || !pOUTextContent )<br>
&gt; -                        &amp;&amp; ( (pOUText &amp;&amp; !pOUText-&gt;getLength()) || !pOUText )<br>
&gt; -                        &amp;&amp; ( (pOUTextValue &amp;&amp; !pOUTextValue-&gt;getLength()) || !pOUTextValue ))<br>
&gt; +                    if (!pOUTextContent &amp;&amp; !pOUText &amp;&amp; !pOUTextValue)<br>
<br>
Might it be that the original intention was<br>
<br>
                       if (     (!pOUTextContent &amp;&amp; !pOUText &amp;&amp; !pOUTextValue)<br>
                           || ( (pOUTextContent &amp;&amp; !pOUTextContent-&gt;getLength()) || !pOUTextContent )<br>
                           || ( (pOUText &amp;&amp; !pOUText-&gt;getLength()) || !pOUText )<br>
                           || ( (pOUTextValue &amp;&amp; !pOUTextValue-&gt;getLength()) || !pOUTextValue ))<br>
<br>
instead? Just from looking at it, without having seen the context<br>
around..<br></blockquote><div><br>No that makes even less sense. The only other solution that would make sense if we were not using boost::optional would be:(I added a bit more space to make the change clear)<br></div></div>
<br>                    if (     (!pOUTextContent &amp;&amp; !pOUText &amp;&amp; !pOUTextValue)<br>
                       &amp;&amp;     (      ( (pOUTextContent &amp;&amp; !pOUTextContent-&gt;getLength()) || !pOUTextContent )<br>
                       &amp;&amp; ( (pOUText &amp;&amp; !pOUText-&gt;getLength()) || !pOUText )<br>
                       &amp;&amp; ( (pOUTextValue &amp;&amp; !pOUTextValue-&gt;getLength()) || !pOUTextValue ))         )<br><br>But even this makes the first line obsolete and does not fit into the context here. We use boost::optional and for empty values we don&#39;t use empty strings but call boost::optional::reset() (accordingly to the boost documentation this method is deprecated and should be replaced). And I think if this would have been the right solution our cell import would have been broken for at least two years without any notice. This check should check for empty cells and skipt the import for them so I think that my first idea is correct. Maybe this is the result of some old code that did not use boost::optional but used empty strings for empty values.<br>
<br>Regards,<br>Markus<br>