<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/1219/">https://reviewboard.asterisk.org/r/1219/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">1. The reason why we generally operate on variable names instead of variable values are the various exceptions.  What happens if the input string contains commas?  Or quotation marks?  How do you ensure that the input string does not interfere with argument parsing?  When dealing with input coming from the opposite end of a VOIP connection, you have a great number of issues with ensuring the input doesn&#39;t mess with the way the function works.
2. You need to look up what the Echo application actually does, because I don&#39;t think it&#39;s doing what you think it&#39;s doing.  The NoOp (or Verbose) applications are more appropriate.</pre>
 <br />







<p>- Tilghman</p>


<br />
<p>On May 17th, 2011, 10:40 a.m., jrose wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers, Russell Bryant and David Vossel.</div>
<div>By jrose.</div>


<p style="color: grey;"><i>Updated 2011-05-17 10:40:28</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Adds a string replace function to func_strings.c as well as a test for said function.
This is a bit different from the requested patch, but should work to accomplish the same ends.

It doesn&#39;t use a variable name as one of the variables (unlike the user-submitted patch), so if you want to search from a variable, you have to specify it as one instead.  I personally feel this is more flexible since this way you can get the searched on string in all kinds of ways.

I did discover that spaces in dialplan mess with stuff like this though.  Just something to be aware of, if it&#39;d be a good thing to add to documentation, let me know.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">As you&#39;ll see, there is an included test with a number of comment-described test scenarios.

Also, this is the dialplan I used for manual testing:

;strreplace test

exten =&gt; 3201,1,Answer()
exten =&gt; 3201,n,Echo(${STRREPLACE(,&quot;dog&quot;,&quot;cat&quot;)})

exten =&gt; 3200,1,Answer()
exten =&gt; 3200,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, &quot;cat&quot;, 4)})

exten =&gt; 3202,1,Answer()
exten =&gt; 3202,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, &quot;cat&quot;, 2)})

exten =&gt; 3203,1,Answer()
exten =&gt; 3203,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, &quot;cat&quot;, 10)})

exten =&gt; 3204,1,Answer()
exten =&gt; 3204,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, &quot;elephant&quot;, 4)})

exten =&gt; 3205,1,Answer()
exten =&gt; 3205,n,Echo(${STRREPLACE(&quot;I once knew a elephant who owned a pet elephant who had a pet elephant which ate an elephant and cooked a corn elephant.&quot;, &quot;elephant&quot;, &quot;cat&quot;, 4)})

exten =&gt; 3206,1,Answer()
exten =&gt; 3206,n,Echo(${STRREPLACE(&quot;&quot;, &quot;&quot;, &quot;&quot;)});

exten =&gt; 3207,1,Answer()
exten =&gt; 3207,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, &quot;cat&quot;)})

exten =&gt; 3208,1,Answer()
exten =&gt; 3208,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;, &quot;dog&quot;, ,4)})

exten =&gt; 3209,1,Answer()
exten =&gt; 3209,n,Echo(${STRREPLACE(&quot;I once knew a dog who owned a pet dog who had a pet dog which ate a dog and cooked a corn dog.&quot;,, &quot;cat&quot;, 4)})

exten =&gt; 3210,1,Answer()
exten =&gt; 3210,n,Set( Cheese= BlahblHDFJK)

exten =&gt; 3211,1,Answer()
exten =&gt; 3211,n,Set(teststring=&quot;do re mi fa sa la ti do do mi fa re fa sal la ti do do do&quot;
exten =&gt; 3211,n,Set(Chowder=${STRREPLACE(${teststring},&quot;do&quot;,&quot;dodo&quot;)})
exten =&gt; 3211,n,Echo(Chowder = ${Chowder})

exten =&gt; 3212,1,Answer()
exten =&gt; 3212,n,Echo(${STRREPLACE(&quot;elephants have eaten my phone system.&quot;,&quot;elephants&quot;,&quot;Weasels&quot;)})

exten =&gt; 3213,1,Answer()
exten =&gt; 3213,n,Echo(${STRREPLACE(&quot;Wizards did it! They killed everyone!&quot;)})

exten =&gt; 3214,1,Answer()
exten =&gt; 3214,n,Echo(${STRREPLACE(&quot;This string needs something removed.&quot;,&quot; removed&quot;)})


So you&#39;ll see I tested it somewhat extensively.</pre>
  </td>
 </tr>
</table>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/view.php?id=18023">18023</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/trunk/funcs/func_strings.c <span style="color: grey">(319115)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/1219/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>