From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lars Stoltenow Subject: [PATCH] git-daemon: Worked around uclibc buffer problem Date: Fri, 10 Oct 2008 00:51:52 +0200 Message-ID: <20081009225152.GB14957@derf.homelinux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: git@vger.kernel.org X-From: git-owner@vger.kernel.org Fri Oct 10 00:53:21 2008 Return-path: Envelope-to: gcvg-git-2@gmane.org Received: from vger.kernel.org ([209.132.176.167]) by lo.gmane.org with esmtp (Exim 4.50) id 1Ko4NW-0003Bt-N2 for gcvg-git-2@gmane.org; Fri, 10 Oct 2008 00:53:07 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756596AbYJIWv4 (ORCPT ); Thu, 9 Oct 2008 18:51:56 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750754AbYJIWv4 (ORCPT ); Thu, 9 Oct 2008 18:51:56 -0400 Received: from p508BE19A.dip.t-dialin.net ([80.139.225.154]:50353 "EHLO aneurysm.local" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756596AbYJIWvz (ORCPT ); Thu, 9 Oct 2008 18:51:55 -0400 Received: from penma by aneurysm.local with local (Exim 4.69) (envelope-from ) id 1Ko4MK-0003tu-Fv for git@vger.kernel.org; Fri, 10 Oct 2008 00:51:52 +0200 Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: uclibc immediately write()s every string argument to fprintf, which causes superfluous 'remote: ' strings to appear when cloning repos. This patch makes it write the message in one shot. Signed-off-by: Lars Stoltenow --- builtin-pack-objects.c | 7 +++++-- progress.c | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 1158e42..94f7404 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -2232,9 +2232,12 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) if (nr_result) prepare_pack(window, depth); write_pack_file(); - if (progress) - fprintf(stderr, "Total %"PRIu32" (delta %"PRIu32")," + if (progress) { + char message[128]; + snprintf(message, sizeof(message), "Total %"PRIu32" (delta %"PRIu32")," " reused %"PRIu32" (delta %"PRIu32")\n", written, written_delta, reused, reused_delta); + fputs(message, stderr); + } return 0; } diff --git a/progress.c b/progress.c index 55a8687..56c9134 100644 --- a/progress.c +++ b/progress.c @@ -94,16 +94,20 @@ static int display(struct progress *progress, unsigned n, const char *done) if (progress->total) { unsigned percent = n * 100 / progress->total; if (percent != progress->last_percent || progress_update) { + char message[128]; progress->last_percent = percent; - fprintf(stderr, "%s: %3u%% (%u/%u)%s%s", + snprintf(message, sizeof(message), "%s: %3u%% (%u/%u)%s%s", progress->title, percent, n, progress->total, tp, eol); + fputs(message, stderr); fflush(stderr); progress_update = 0; return 1; } } else if (progress_update) { - fprintf(stderr, "%s: %u%s%s", progress->title, n, tp, eol); + char message[128]; + snprintf(message, sizeof(message), "%s: %u%s%s", progress->title, n, tp, eol); + fputs(message, stderr); fflush(stderr); progress_update = 0; return 1; -- 1.6.0.2.GIT