/*
// File: substr.c
// This is a simul_efun module.
// Original author: Sulam@TMI
// This file is a part of the TMI distribution mudlib.
// Please retain this header if you use it.
// This function recursively replaces a key with a string.
// Variables:
// str The text that needs formatting
// match The key that is getting replaced
// replace What to replace match with
// Returns:
// The string we end up with.
// Note: this is very similar to replace_string(). As they are
// both slightly different, they are both here until a suitable
// solution can be found.
*/
string
substr(string str, string match, string replace)
{
string foo, fii;
string reg;
/*
// Do some checking first.
*/
if( !str || !match ) return "";
if( !stringp(str) || !stringp(match) || !stringp(replace) )
return "";
if( !replace ) replace = "";
/*
// The loop to replace the text
*/
reg = "";
while( sscanf(str, "%s"+match+"%s", foo, fii) )
{
if( !foo ) foo = "";
if( !fii ) fii = "";
reg +=foo + replace;
str =str[strlen(foo)+strlen(match)..strlen(str)];
}
reg += fii;
return reg;
}