Currently, the data in a strbuf is modified using add operations. To set the buffer to some data a reset must be performed before an add. strbuf_reset(buf); strbuf_add(buf, cb.buf.buf, cb.buf.len); And this is a common sequence of operations with 70 occurrences found in the current source code. This includes all the different variations (add, addf, addstr, addbuf, addch). FILES=`find ./ -name '*.c'` CNT=$(pcregrep -M "strbuf_reset.*\n.*strbuf_add" $FILES | wc -l) CNT=$(echo "$CNT / 2" | bc) echo $CNT 70 These patches add strbuf_set operations which allow this common sequence to be performed in one line instead of two. strbuf_set(buf, cb.buf.buf, cb.buf.len); Only the first few files have been converted in this preliminary patch set. Jeremiah Mahler (5): add strbuf_set operations add strbuf_set operations documentation sha1_name.c: cleanup using strbuf_set operations fast-import.c: cleanup using strbuf_set operations builtin/remote.c: cleanup using strbuf_set operations Documentation/technical/api-strbuf.txt | 18 ++++++++++++ builtin/remote.c | 51 ++++++++++++---------------------- fast-import.c | 19 ++++--------- sha1_name.c | 15 ++++------ strbuf.c | 21 ++++++++++++++ strbuf.h | 14 ++++++++++ 6 files changed, 81 insertions(+), 57 deletions(-) -- 2.0.0.573.ged771ce.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html