Code

merge-one-file: fix "expr: non-numeric argument"
authorJay Soffian <jaysoffian@gmail.com>
Thu, 6 Oct 2011 18:25:55 +0000 (14:25 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 6 Oct 2011 20:24:59 +0000 (13:24 -0700)
When invoking expr to compare two numbers, don't quote the
variables which are the output of 'wc -c'. On OS X, this output
includes spaces, which expr balks at:

  $ sz0=`wc -c </etc/passwd`
  $ sz1=`wc -c </etc/passwd`
  $ echo "'$sz0'"
  '    3667'

  $ expr "$sz0" \< "$sz1" \* 2
  expr: non-numeric argument

  $ expr $sz0 \< $sz1 \* 2
  1

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-merge-one-file.sh

index d067894bf45fd0a50513e196ea2a5e671d901681..ae97e1dfa682a4a30e818cccadf5d9ed8aa2ecfb 100755 (executable)
@@ -112,7 +112,7 @@ case "${1:-.}${2:-.}${3:-.}" in
 
                # If we do not have enough common material, it is not
                # worth trying two-file merge using common subsections.
-               expr "$sz0" \< "$sz1" \* 2 >/dev/null || : >$orig
+               expr $sz0 \< $sz1 \* 2 >/dev/null || : >$orig
                ;;
        *)
                echo "Auto-merging $4"