44 if (!tosearch || !searchfor || !replacewith)
49 size_t tosearchlen = strlen(tosearch);
50 size_t replacewithlen = strlen(replacewith);
51 size_t templen = tosearchlen * replacewithlen;
53 if (tosearchlen == 0 || strlen(searchfor) == 0 || replacewithlen == 0)
58 bool is_potential_integer_overflow =
59 (templen == SIZE_MAX) || (templen / tosearchlen != replacewithlen);
61 if (is_potential_integer_overflow)
68 const char *searching = tosearch;
71 char temp[templen + 1];
74 scratch = strstr(searching, searchfor);
77 return strdup(tosearch);
82 strncat(temp, searching, (
size_t)(scratch - searching));
83 strcat(temp, replacewith);
85 searching = scratch + strlen(searchfor);
86 scratch = strstr(searching, searchfor);
char * searchandreplace(const char *tosearch, const char *searchfor, const char *replacewith)
Read 'tosearch', replace all occurrences of 'searchfor' with 'replacewith' and return a pointer to th...
const char * get_env(const char *name, const char *envp[])
Given an environmental variable name, search the envp array for its value.