hush: fix shift + $0 bug; add testcase

This commit is contained in:
Denis Vlasenko 2007-05-20 22:22:18 +00:00
parent 262d765351
commit 004baba2d6
3 changed files with 9 additions and 1 deletions

View File

@ -952,7 +952,7 @@ static int builtin_shift(char **argv)
n = atoi(argv[1]);
}
if (n >= 0 && n < global_argc) {
/* XXX This probably breaks $0 */
global_argv[n] = global_argv[0];
global_argc -= n;
global_argv += n;
return EXIT_SUCCESS;

View File

@ -0,0 +1,2 @@
./shift.tests abc d e
./shift.tests d e

View File

@ -0,0 +1,6 @@
if test $# = 0; then
exec "$THIS_SH" $0 abc "d e"
fi
echo $0 $1 $2
shift
echo $0 $1 $2