From a4caa5214058ad7e2bc7b74e989d6b3ffb47bec3 Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Sat, 19 Nov 2005 02:54:07 -0800
Subject: [PATCH] git-count-objects: dc replacement

Johannes suggested this earlier but I did not take it so
seriously because this command is not that important.  But this
probably matters on Cygwin which does not seem to come with
precompiled dc.  It is a mystery for me that anything that
mimics UNIX does not offer a dc, though.

I did the detection for the lack of dc command a bit differently
from the verison Johannes did.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git-count-objects.sh | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/git-count-objects.sh b/git-count-objects.sh
index 843d2fd9f2e..fc61a1a987d 100755
--- a/git-count-objects.sh
+++ b/git-count-objects.sh
@@ -1,6 +1,24 @@
 #!/bin/sh
+#
+# Copyright (c) 2005 Junio C Hamano
+#
 
-. git-sh-setup
+. git-sh-setup || die "Not a git repository"
+
+dc </dev/null 2>/dev/null || {
+	# This is not a real DC at all -- it just knows how
+	# this script feeds DC and does the computation itself.
+	dc () {
+		while read a b
+		do
+			case $a,$b in
+			0,)	acc=0 ;;
+			*,+)	acc=$(($acc + $a)) ;;
+			p,)	echo "$acc" ;;
+			esac
+		done
+	}
+}
 
 echo $(find "$GIT_DIR/objects"/?? -type f -print 2>/dev/null | wc -l) objects, \
 $({