+nth_string () {
+ case "$1" in
+ *1[0-9]|*[04-9]) echo "$1"th;;
+ *1) echo "$1"st;;
+ *2) echo "$1"nd;;
+ *3) echo "$1"rd;;
+ esac
+}
+
+make_squash_message () {
+ if [ -f "$SQUASH_MSG" ]; then
+ COUNT=$(($(sed -n "s/^# This is [^0-9]*\([0-9]\+\).*/\1/p" \
+ < "$SQUASH_MSG" | tail -n 1)+1))
+ echo "# This is a combination of $COUNT commits."
+ sed -n "2,\$p" < "$SQUASH_MSG"
+ else
+ COUNT=2
+ echo "# This is a combination of two commits."
+ echo "# The first commit's message is:"
+ echo
+ git cat-file commit HEAD | sed -e '1,/^$/d'
+ echo
+ fi
+ echo "# This is the $(nth_string $COUNT) commit message:"
+ echo
+ git cat-file commit $1 | sed -e '1,/^$/d'
+}
+
+peek_next_command () {
+ sed -n "1s/ .*$//p" < "$TODO"
+}
+