/**
* mutt_buffer_from - Create Buffer from an existing string
* @param seed String to put in the Buffer
- * @retval ptr New Buffer
+ * @retval ptr New Buffer
+ * @retval NULL Error
+ *
+ * @note The write pointer is positioned at the end of the string
*/
struct Buffer *mutt_buffer_from(const char *seed)
{
struct Buffer *b = mutt_buffer_new();
b->data = mutt_str_strdup(seed);
b->dsize = mutt_str_strlen(seed);
- b->dptr = (char *) b->data + b->dsize;
+ b->dptr = b->data + b->dsize;
return b;
}
{
TEST_CHECK(!mutt_buffer_from(NULL));
}
+
+ {
+ struct Buffer *buf = NULL;
+ const char *str = "";
+
+ TEST_CHECK((buf = mutt_buffer_from(str)) != NULL);
+ TEST_CHECK(buf->data == NULL);
+ TEST_CHECK(buf->dptr == NULL);
+ TEST_CHECK(buf->dsize == 0);
+
+ mutt_buffer_free(&buf);
+ }
+
+ {
+ struct Buffer *buf = NULL;
+ const char *str = "test";
+
+ TEST_CHECK((buf = mutt_buffer_from(str)) != NULL);
+ TEST_CHECK(buf->data != NULL);
+ TEST_CHECK(buf->dptr != NULL);
+ TEST_CHECK(buf->dsize != 0);
+
+ mutt_buffer_free(&buf);
+ }
}