Re: [PATCH] Fix ptrdiff_t vs. int
Show 10 quoted lines
>
> 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
Show 47 quoted lines
>
> Linus
>
> ---
> diff-tree 84c1afd7e7c69c6c3c0677d5ee01925d4c70d318 (from a9c9cef161b26ca610783dd0b180d18956c7b119)
> Author: Linus Torvalds <torvalds@ppc970.osdl.org>
> 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, <markus@oberhumer.com>, http://www.oberhumer.com/