mksh R50e is out
** Changed in: mksh
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of mksh
Mailing List, which is subscribed to mksh.
Matching subscriptions: mkshlist-to-mksh-bugmail
https://bugs.launchpad.net/bugs/1381993
Title:
more fun with $*
Status in The MirBSD Korn Shell:
Fix Released
Bug description:
From: Stephane Chazelas <[email protected]>
>BTW, it looks like there's a bug in mksh:
tglase@tglase:~ $ bash -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b | sed
-n l
<abc>$
tglase@tglase:~ $ ./dash -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b |
sed -n l
<c>$
tglase@tglase:~ $ ksh93 -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b | sed
-n l
<c>$
tglase@tglase:~ $ lksh -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b | sed
-n l
<\a\300a>$
<abc>$
tglase@tglase:~ $ mksh -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b | sed
-n l
<\a\300a>$
<abc>$
tglase@tglase:~ $ pdksh-5.2.14 -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a
b | sed -n l
<abc>$
tglase@tglase:~ $ mksh -o sh -c 'IFS=; x=abc; printf "<%s>\n" ${x#$*}' x a b
| sed -n l
<a>$
<abc>$
>The dash versions I have access to give the expected output
>(same as your ksh93).
>bash and pdksh join the arguments with spaces. And there's
>nothing in POSIX that allows them to do that.
But:
>ksh93 has some other interesting bugs:
tglase@tglase:~ $ bash -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*" ${a##"$*"}'
sh '' c
<*c>
<abcd>
tglase@tglase:~ $ ./dash -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*"
${a##"$*"}' sh '' c
<*c>
<abcd>
tglase@tglase:~ $ ksh93 -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*" ${a##"$*"}'
sh '' c
<*c>
<d>
tglase@tglase:~ $ lksh -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*" ${a##"$*"}'
sh '' c
<*c>
<abcd>
tglase@tglase:~ $ mksh -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*" ${a##"$*"}'
sh '' c
<*c>
<abcd>
tglase@tglase:~ $ pdksh-5.2.14 -c 'IFS="*"; a=abcd; printf "<%s>\n" "$*"
${a##"$*"}' sh '' c
<*c>
<abcd>
tl;dr: Fix the first and keep the second as-is.
>And they don't say how those "arrays" are to be cast to scalars
>when not in list context since they don't specify arrays in the
>first place.
>
>The non-list contexts include
>
>a=$*
>${a#$*}
>
>case x in
> $a) ...;;
> "$a") ...
>esac
>${a#"$*"} # beware quotes also serve to cancel globs there
>
>$(( $* ))
>...
Interesting use for the asn subst.
To manage notifications about this bug go to:
https://bugs.launchpad.net/mksh/+bug/1381993/+subscriptions