/* pathcode/fget_gsub.c. Generated from gsub.c.in by configure. */
/*
** Copyright 1998-2002 University of Illinois Board of Trustees
** Copyright 1998-2002 Mark D. Roth
** All rights reserved.
**
** fget_gsub.c - substring replacement function
**
** Mark D. Roth <roth@uiuc.edu>
** Campus Information Technologies and Educational Services
** University of Illinois at Urbana-Champaign
*/
#include <fget_pathcode.h>
#include <stdio.h>
#include <sys/types.h>
#ifdef STDC_HEADERS
# include <string.h>
#endif
/*
** fget_gsub() - replace all instances of a substring in a
** given string with a different substring
*/
void
fget_gsub(char *string, char *find, char *replace,
char *buf, size_t buflen)
{
char *cp;
register int in_idx = 0, out_idx = 0;
buf[0] = '\0';
while ((cp = strstr(string + in_idx, find)) != NULL)
{
out_idx += snprintf(buf + out_idx, buflen - out_idx, "%.*s%s",
cp - (string + in_idx), string + in_idx,
replace);
in_idx += (cp - (string + in_idx)) + strlen(find);
}
strlcat(buf, string + in_idx, buflen);
}
syntax highlighted by Code2HTML, v. 0.9.1