Jeff King <[email protected]> writes:
> +# The message, filename, and contents strings are evaluated by the shell
> inside
> +# double-quotes, with $n set to the current commit number. So you can do:
> +#
> +# test_commit_bulk --filename=file --contents='modification $n'
> +#
> +# to have every commit touch the same file, but with unique content. Spaces
> are
> +# OK, but you must escape any metacharacters (like backslashes or
> +# double-quotes) you do not want expanded.
Nice.
> +test_commit_bulk () {
> + indir=
> + ...
> + while test $# -gt 0
> + do
> + case "$1" in
> + -C)
> + indir=$2
> + shift
> + ;;
> + ...
> + esac
> + shift
> + done
> + total=$1
> +
> + in_dir=${indir:+-C "$indir"}
I thought that this assignment to $in_dir would be unnecessary if we
parsed -C directly into it, i.e.
...
-C)
in_dir="-C $indir"
shift
;;
...
but you probably could pass -C '' to defeat an $in_dir that was set
earlier by using a separate variable?
Messages and other stuff are made `eval`-safe, but this one does not
care much about quoting, which made me curious.
Reading further, though, I do not seem to see where this variable is
referred to, and that is the answer to my puzzlement. This must be
a leftover that was written once before but no longer is used. We
can remove $in_dir while keeping the initialization and assignment
to $indir as-is, I think.
All uses of $indir in the remainder of the function look $IFS-safe,
which is good.