// Copyright (C) 1997-2004 Alias Systems Corp.
// 
// The information in this file is provided for the exclusive use of the
// licensees of Alias.  Such users have the right to use, modify,
// and incorporate this code into other products for purposes authorized
// by the Alias license agreement, without fee.
// 
// ALIAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
// INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
// EVENT SHALL ALIAS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
// CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.

// Description:  This procedure is called to substitute all the
//      substring in the $originalString which matches the $pattern,
//      and replace them using the $replaceString.
//
// NOTE: This is not a perfect "substituteAll" procedure.  Currently,
//       it assumes that the $replaceString does not match the
//       given $pattern.
//
global proc string substituteAll(
    string $pattern, string $originalString, string $replaceString)
{
    int $done = false;
    string $intermediateString = $originalString;
    string $newString = $originalString;
    while (!$done)
    {
        $intermediateString = 
            `substitute $pattern $newString $replaceString`;

        if ($intermediateString == $newString)
        {
            $done = true;
        }
        $newString = $intermediateString;
    }
    return $newString;
}
