<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style id="owaParaStyle" type="text/css">P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">In 6.0 class-&gt;text is a true expressionObj, not a string as in previous versions so at least via SWIG setText() calls msLoadExpressionString(). I think there could be a bug in that
 function at line 2169 (in trunk). Older versions of that function treat the input string as a the expression if parsing doesn't detect a delimited type. So does this version but in a different way:<br>
<br>
// trunk<br>
&nbsp;&nbsp;&nbsp; exp-&gt;type = MS_STRING;<br>
&nbsp;&nbsp;&nbsp; exp-&gt;string = msStrdup(msyystring_buffer);<br>
<br>
// 5.6 branch<br>
&nbsp;&nbsp;&nbsp; exp-&gt;type = MS_STRING;<br>
&nbsp;&nbsp;&nbsp; if((strlen(value) - strlen(msyytext)) == 2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exp-&gt;string = strdup(msyytext); /* value was quoted */<br>
&nbsp;&nbsp;&nbsp; else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exp-&gt;string = strdup(value); /* use the whole value */<br>
<br>
I've got a feeling this has to do with escaping quotes where msyystring_buffer contains the escaped text. Perhaps we could do something like:<br>
<br>
&nbsp;&nbsp;&nbsp; exp-&gt;type = MS_STRING;<br>
&nbsp;&nbsp;&nbsp; if(... if first char in value is not a single or double quote ...)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exp-&gt;string = strdup(value);&nbsp; /* use the whole value */<br>
&nbsp;&nbsp;&nbsp; else<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exp-&gt;string = msStrdup(msyystring_buffer);<br>
<br>
Alan, does this make sense or is there another way to know that escaping was processed?<br>
<br>
Steve<br>
<br>
<div style="font-family: Times New Roman; color: rgb(0, 0, 0); font-size: 16px;">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF340322"><font color="#000000" face="Tahoma" size="2"><b>From:</b> mapserver-dev-bounces@lists.osgeo.org [mapserver-dev-bounces@lists.osgeo.org] on behalf of Tamas Szekeres [szekerest@gmail.com]<br>
<b>Sent:</b> Tuesday, February 21, 2012 4:09 PM<br>
<b>To:</b> mapserver-dev@lists.osgeo.org<br>
<b>Subject:</b> [mapserver-dev] classObj.setText, text must be quoted<br>
</font><br>
</div>
<div></div>
<div>Hi Devs,
<div><br>
</div>
<div>By using the following mapscript example:</div>
<div><br>
</div>
<div>
<div>&nbsp; &nbsp; &nbsp;<i>// creating a new map from scratch</i></div>
<div><i>&nbsp; &nbsp; &nbsp; mapObj map = new mapObj(null);</i></div>
<div><i>&nbsp; &nbsp; &nbsp; // adding a layer</i></div>
<div><i>&nbsp; &nbsp; &nbsp; layerObj layer = new layerObj(map);</i></div>
<div><i>&nbsp; &nbsp; &nbsp; // define the class</i></div>
<div><i>&nbsp; &nbsp; &nbsp; classObj classobj = new classObj(layer);</i></div>
<div><i><span class="Apple-tab-span" style="white-space: pre;"></span>&nbsp;classobj.setText(&quot;Sample Text&quot;);</i></div>
<div><i>&nbsp; &nbsp; &nbsp; Console.WriteLine(&quot;Sample Text -&gt; &quot; &#43; classobj.getTextString());</i></div>
<div><i><span class="Apple-tab-span" style="white-space: pre;"></span>&nbsp;classobj.setText(&quot;Sample T&quot;);</i></div>
<div><i>&nbsp; &nbsp; &nbsp; Console.WriteLine(&quot;Sample T -&gt; &quot; &#43; classobj.getTextString());</i></div>
<div><i><span class="Apple-tab-span" style="white-space: pre;"></span>&nbsp;classobj.setText(&quot;\&quot;Sample T\&quot;&quot;);</i></div>
<div><i>&nbsp; &nbsp; &nbsp; Console.WriteLine(&quot;\&quot;Sample T\&quot; -&gt; &quot; &#43; classobj.getTextString());</i></div>
</div>
<div><br>
</div>
<div>I got the following output (from trunk):</div>
<div><br>
</div>
<div>
<div>Sample Text -&gt; &quot;Sample Text&quot;</div>
<div>Sample T -&gt; &quot;Sample&quot;</div>
<div>&quot;Sample T&quot; -&gt; &quot;Sample T&quot;</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>6.0 branch produces this:</div>
<div><br>
</div>
<div>
<div>Sample Text -&gt; &quot;Sample&quot;</div>
<div>Sample T -&gt; &quot;Sample&quot;</div>
<div>&quot;Sample T&quot; -&gt; &quot;Sample T&quot;</div>
</div>
<div><br>
</div>
<div>Do we have a requirement that the texts must be quoted which is passed to&nbsp;<i>classobj.setText?</i></div>
<div><br>
</div>
<div>Best regards,</div>
<div><br>
</div>
<div>Tamas</div>
<div><br>
</div>
</div>
</div>
</div>
</body>
</html>