diffstat: made test case work with POSIX sh and printf
* arithmetic expression ((...)), without $, is bashism.
* printf '\xXX' seems non-standard. '\0' is okay.
http://www.opengroup.org/onlinepubs/
009695399/utilities/printf.html
tested with bash 4.0 and dash 0.5.5.1
% should fail
abort: path contains illegal component: .hg/00changelog.i
adding a/a
% should fail
abort: path 'b/b' traverses symbolic link 'b'
% should succeed
% should still fail - maybe
abort: path 'b/b' traverses symbolic link 'b'
% unbundle tampered bundle
adding changesets
adding manifests
adding file changes
added 5 changesets with 6 changes to 6 files (+4 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
% attack .hg/test
.hg/test
abort: path contains illegal component: .hg/test
% attack foo/.hg/test
foo/.hg/test
abort: path 'foo/.hg/test' is inside repo 'foo'
% attack back/test where back symlinks to ..
back
back/test
abort: path 'back/test' traverses symbolic link 'back'
% attack ../test
../test
abort: path contains illegal component: ../test
% attack /tmp/test
/tmp/test
abort: No such file or directory: [HGTMP]/test-audit-path/target//tmp/test