Fix "git-diff-script A B"

When "git-diff-script A..B" notation was introduced, it ended up breaking
the traditional two revisions notation.

[jc: there are other issues with the current "git diff" I would like to
 address, but they would be left to later rounds.  For example, -M and -p flags
 should not be hardcoded default, and it shouldn't be too hard to rewrite
 the script without using shell arrays.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/git-diff-script b/git-diff-script
index 926f594..99ff264 100755
--- a/git-diff-script
+++ b/git-diff-script
@@ -8,8 +8,14 @@
 1)
 	git-diff-cache -M -p "$@";;
 2)
-	begin=$(echo "${rev[1]}" | tr -d '^')
-	end="${rev[0]}"
+	case "${rev[1]}" in
+	^?*)
+		begin=$(echo "${rev[1]}" | tr -d '^')
+		end="${rev[0]}" ;;
+	*)
+		begin="${rev[0]}"
+		end="${rev[1]}"	;;
+	esac
 	git-diff-tree -M -p $flags $begin $end $files;;
 *)
 	echo "I don't understand"