From: Markus F.X.J. Oberhumer Date: Fri, 27 May 2005 17:42:55 GMT Subject: Re: [PATCH] Fix ptrdiff_t vs. int Message-ID: <42975C1F.8070102@oberhumer.com> In-Reply-To: Linus Torvalds wrote: > > On Fri, 27 May 2005, Linus Torvalds wrote: > >>I can compile a kernel with "-m64", but since I don't have any 64-bit >>libraries installed, user space doesn't work that well ;) > > > Btw, since this was the piece of code that I didn't bother simplifying > last time it was discussed (then it was just "ugly"), I took a different > approach instead, and committed the following.. Many thanks. BTW, this is probably completely irrelevant on all real-world machines and calling conventions, but still, lying on the number of arguments in vararg-functions is not my favourite practice. ~Markus > > Linus > > --- > diff-tree 84c1afd7e7c69c6c3c0677d5ee01925d4c70d318 (from a9c9cef161b26ca610783dd0b180d18956c7b119) > Author: Linus Torvalds > Date: Fri May 27 10:22:09 2005 -0700 > > git-diff-tree: simplify header output with '-z' > > No need to make them multiple lines, in fact we explicitly don't want that. > > This also fixes a 64-bit problem pointed out by Markus F.X.J. Oberhumer, > where we gave "%.*s" a "ptrdiff_t" length argument instead of an "int". > > diff --git a/diff-tree.c b/diff-tree.c > --- a/diff-tree.c > +++ b/diff-tree.c > @@ -269,18 +269,11 @@ static int call_diff_flush(void) > return 0; > } > if (header) { > - if (diff_output_format == DIFF_FORMAT_MACHINE) { > - const char *ep, *cp; > - for (cp = header; *cp; cp = ep) { > - ep = strchr(cp, '\n'); > - if (ep == 0) ep = cp + strlen(cp); > - printf("%.*s%c", ep-cp, cp, 0); > - if (*ep) ep++; > - } > - } > - else { > - printf("%s", header); > - } > + const char *fmt = "%s"; > + if (diff_output_format == DIFF_FORMAT_MACHINE) > + fmt = "%s%c"; > + > + printf(fmt, header, 0); > header = NULL; > } > diff_flush(diff_output_format, 1); > - > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Markus Oberhumer, , http://www.oberhumer.com/