return NULL;
}
+
+/**
+ * mutt_str_inline_replace - Replace the beginning of a string
+ * @param buf Buffer to modify
+ * @param buflen Length of buffer
+ * @param xlen Length of string to overwrite
+ * @param rstr Replacement string
+ * @retval true Success
+ *
+ * String (`XX<OOOOOO>......`, 16, 2, `RRRR`) becomes `RRRR<OOOOOO>....`
+ */
+bool mutt_str_inline_replace(char *buf, size_t buflen, size_t xlen, const char *rstr)
+{
+ if (!buf || !rstr || (xlen >= buflen))
+ return false;
+
+ size_t slen = mutt_str_strlen(buf + xlen);
+ size_t rlen = mutt_str_strlen(rstr);
+
+ memmove(buf + rlen, buf + xlen, slen + 1);
+ memmove(buf, rstr, rlen);
+
+ return true;
+}
void mutt_str_dequote_comment(char *s);
const char *mutt_str_find_word(const char *src);
const char *mutt_str_getenv(const char *name);
+bool mutt_str_inline_replace(char *buf, size_t buflen, size_t xlen, const char *rstr);
bool mutt_str_is_ascii(const char *p, size_t len);
bool mutt_str_is_email_wsp(char c);
size_t mutt_str_lws_len(const char *s, size_t n);