From: Junio C Hamano Date: Thu, 22 May 2014 18:36:37 GMT Subject: Re: [PATCH 2/9] strbuf: add strbuf_tolower function Message-ID: In-Reply-To: <20140522055852.GA16587@sigill.intra.peff.net> Jeff King writes: > On Wed, May 21, 2014 at 05:07:36PM -0700, Kyle J. McKay wrote: > >> >+void strbuf_tolower(struct strbuf *sb) >> >+{ >> >+ size_t i; >> >+ for (i = 0; i < sb->len; i++) >> >+ sb->buf[i] = tolower(sb->buf[i]); >> >+} >> >+ >> >> Wouldn't a direct transfer of the lowercase function be something more like: >> >> >> void strbuf_tolower(struct strbuf *sb) >> { >> char *p = sb->buf; >> for (; *p; p++) >> *p = tolower(*p); >> } >> >> That seems to me to be a bit more efficient. According to the comments in >> strbuf.c, "people can always assume buf is non NULL and ->buf is NUL >> terminated even for a freshly initialized strbuf." > > Yes, and that would be fine with me (I actually wrote strbuf_tolower for > my own use, and _then_ realized that we already had such a thing that > could be replaced). Do we forbid that sb->buf[x] for some x < sb->len to be NUL, and if there is such a byte we stop running tolower() on the remainder?