45 if (!tosearch || !searchfor || !replacewith)
50 size_t tosearchlen = strlen(tosearch);
51 size_t replacewithlen = strlen(replacewith);
52 size_t templen = tosearchlen * replacewithlen;
54 if (tosearchlen == 0 || strlen(searchfor) == 0 || replacewithlen == 0)
59 bool is_potential_integer_overflow = (templen == SIZE_MAX) || (templen / tosearchlen != replacewithlen);
61 if (is_potential_integer_overflow)
68 const char *searching = tosearch;
74 scratch = strstr(searching, searchfor);
77 return strdup(tosearch);
82 strncat(temp, searching, 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.