Low level string manipulation functions in C
condense_buffer is equivalent to strcpy. If you still wish to implement it, use an idiomatic C construct:

    while ((*p1++ = *p2++) != 0)
        {}

begins_with is equivalent to strncmp(text, key, strlen(key)). It might be argued though that strncmp approach requires a call to strlen and thus incurs performance penalty.
Do put the loop body on a separate line. Do not omit curly braces even for one-liners:

   for (char *end = p + strlen(p); end &gt;= p; end--) {
       *(end + content_len) = *end;
   }