From: Johannes Schindelin Date: Tue, 17 Mar 2009 22:27:23 GMT Subject: Re: [PATCH] builtin-tag.c: remove global variable to use the callback data of git-config. Message-ID: In-Reply-To: <1b46aba20903171057r4fb4697eo3b8abc62a45fe858@mail.gmail.com> Hi, On Tue, 17 Mar 2009, Carlos Rica wrote: > On Tue, Mar 17, 2009 at 4:47 PM, Johannes Schindelin > wrote: > > Hi, > > On Tue, 17 Mar 2009, Carlos Rica wrote: > >> @@ -164,11 +162,10 @@ static int do_sign(struct strbuf *buffer) > >> int len; > >> int i, j; > >> > >> - if (!*signingkey) { > >> - if (strlcpy(signingkey, git_committer_info(IDENT_ERROR_ON_NO_NAME), > >> - sizeof(signingkey)) > sizeof(signingkey) - 1) > >> - return error("committer info too long."); > >> - bracket = strchr(signingkey, '>'); > >> + if (!signingkey->buf[0]) { > > > > It is probably better to ask for !signingkey->len (think of trying to > > understand the code in 6 months from now). > > I was in doubt here. By avoiding the use of signingkey->len I was > trying to say that you cannot rely in such field if we touch the > buffer directly, as it happens below: > > bracket = strchr(signingkey->buf, '>'); > if (bracket) > bracket[1] = '\0'; Oh, I missed that. It should read if (bracket) strbuf_setlen(signingkey, bracket + 1 - signingkey->buf); instead. Ciao, Dscho