-char * searchAndReplace2(char* orig, char* search, char*value)
-{
- char *p;
- size_t total_len = strlen(orig);
- size_t token_len = strlen(search);
- size_t value_len = strlen(value);
-
- int inx_start = 0;
- char * tmp = NULL;
- int tmp_offset = 0;
- int total_bytes_allocated = 0;
- int from = 0;
- p = strstr(orig, search);
- if(p==NULL)
- {
- os_strdup(orig,tmp);
-
- return tmp;
- }
- if (value==NULL)
- {
- value="";
- }
- inx_start = p - orig;
-
- while (p != NULL)
- {
- if (inx_start > 0)
- {
- if (tmp == NULL)
- {
- int len_to_add = (inx_start);
-
- tmp = (char*) malloc(sizeof(char) * len_to_add);
- total_bytes_allocated += len_to_add;
-
- strncpy(tmp, orig + tmp_offset, inx_start);
- tmp_offset = inx_start;
- }
-
- total_bytes_allocated += value_len;
- tmp = (char*) realloc(tmp, total_bytes_allocated);
-
- strncpy(tmp + tmp_offset, value, value_len);
- tmp_offset += value_len;
-