Junio C Hamano <gitster@xxxxxxxxx> writes: >> diff --git a/strbuf.c b/strbuf.c >> index 0d929e4e19..cefea6b75f 100644 >> --- a/strbuf.c >> +++ b/strbuf.c >> @@ -591,6 +591,7 @@ int strbuf_getcwd(struct strbuf *sb) >> for (;; guessed_len *= 2) { >> strbuf_grow(sb, guessed_len); >> if (getcwd(sb->buf, sb->alloc)) { >> + precompse_strbuf_if_needed(sb); >> strbuf_setlen(sb, strlen(sb->buf)); > > The need for strbuf_setlen() stems from the use of getcwd() that may > and will place a string that is much shorter than sb->alloc, so they > logically belong together. It will make more sense to call the > precompose _after_ arranging the members of strbuf in a consistent > state with the call to strbuf_setlen(). Of course, we need to make sure precompose_string_if_needed() will leave the strbuf in an consistent state. I think the implementation of that helper function in this patch already does so, so strbuf_grow(sb, guessed_len); if (getcwd(sb->buf, sb->alloc)) { strbuf_setlen(sb, strlen(sb->buf)); precompse_strbuf_if_needed(sb); would be what we would want. Thanks.