Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Eduardo A . Bustamante López
On Mon, Aug 13, 2018 at 10:52:20PM -0400, Bize Ma wrote:
(...)
> That version is not even beta, it is still alpha, are you asking that
> everyone should use
> non-released (and not yet tested as beta) alpha release ?
(...)

I didn't say that. My point is that, in the context of bug reports, it's
important that you always test against the *unreleased* version of the code,
since that's where most bug fixes are queued up (or at least the ones that break
backwards compatibility).

> So? It is not solved in that thread, it is even said that:
> 
>  > This is a bug in bash and it should be fixed, not excused.
> 
> To which I agree. After a year, nothing else have been said about it.
> 

For some reason the threading broke in the archive browser. Here's the response
from Chet:

http://lists.nongnu.org/archive/html/bug-bash/2017-10/msg00023.html

The fix for this issue is already in the Git repository (devel branch) and in
Bash 5.0. 

I cannot answer for Chet, but please consider this:

The fix for this bug breaks backwards compatibility, so that means it cannot be
a patch-level fix for 4.4. It should either be a minor version increase (4.5) or
go into the next major release, which is 5.0 (which was already declared alpha
state, and includes the fix).

> It seems about time to get it solved. Or say that it won't be.

Again, it's fixed already and the fix is scheduled to go out in the next
release (5.0).

Given that, do you think this bug is severe enough to have to issue a new minor
version just for it? (4.5),

or can we just wait for 5.0 to come out which fixes this and a bunch of other
bugs? (see the CHANGES file, in particular, entry `oo',
http://git.savannah.gnu.org/cgit/bash.git/diff/CHANGES?h=bash-5.0-testing=9a51695bed07d37086c352372ac69d0a30039a6b)



Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Bize Ma
2018-08-13 22:09 GMT-04:00 Eduardo A. Bustamante López :

> On Mon, Aug 13, 2018 at 09:36:23PM -0400, Bize Ma wrote:
> (...)
> > Please, do not waste our time in incorrect claims.
> >
> > Do your homework and test !
> (...)
>
>



> dualbus@ubuntu:~/src/gnu/bash$ bash /tmp/script
> 4.4.19(1)-release
> [foo bar baz quux][  foo bar  baz quux  ]
>
>
So, it is confirmed that the bug exists in the present release, Is it not?

> Did you test Bash 5.0? Because that's where the current bug fixes are
going to.

So, is it a "wont fix" for 4.4 (present release) ?


> I don't see Chet releasing a new version of 4.4 to fix something that's
already
> fixed there.

That version is not even beta, it is still alpha, are you asking that
everyone should use
non-released (and not yet tested as beta) alpha release ?


> dualbus@ubuntu:~/src/gnu/bash$ cat /tmp/script
> echo $BASH_VERSION
> set -- "  foo  ""  bar  baz  "  "  quux  "
> unset IFS
> a=$*
> b="$*"
> printf '[%s]' "$a" "$b"; echo

Thanks for copying the supplied script.



> dualbus@ubuntu:~/src/gnu/bash$ ./bash /tmp/script
> 5.0.0(1)-alpha
> [  foo bar  baz quux  ][  foo bar  baz quux  ]
>
>
Thanks for testing. !!


> Please read this thread:
>
> * http://lists.nongnu.org/archive/html/bug-bash/2017-09/msg00058.html
>

So? It is not solved in that thread, it is even said that:

 > This is a bug in bash and it should be fixed, not excused.

To which I agree. After a year, nothing else have been said about it.

It seems about time to get it solved. Or say that it won't be.


Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Eduardo A . Bustamante López
On Mon, Aug 13, 2018 at 09:36:23PM -0400, Bize Ma wrote:
(...)
> Please, do not waste our time in incorrect claims.
> 
> Do your homework and test !
(...)

Did you test Bash 5.0? Because that's where the current bug fixes are going to.
I don't see Chet releasing a new version of 4.4 to fix something that's already
fixed there.

dualbus@ubuntu:~/src/gnu/bash$ cat /tmp/script 
echo $BASH_VERSION
set -- "  foo  ""  bar  baz  "  "  quux  "
unset IFS
a=$*
b="$*"
printf '[%s]' "$a" "$b"; echo

dualbus@ubuntu:~/src/gnu/bash$ bash /tmp/script 
4.4.19(1)-release
[foo bar baz quux][  foo bar  baz quux  ]

dualbus@ubuntu:~/src/gnu/bash$ ./bash /tmp/script 
5.0.0(1)-alpha
[  foo bar  baz quux  ][  foo bar  baz quux  ]

Please read this thread:

* http://lists.nongnu.org/archive/html/bug-bash/2017-09/msg00058.html



Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Bize Ma
2018-08-13 21:16 GMT-04:00 Eduardo Bustamante :

> On Mon, Aug 13, 2018 at 5:25 PM Robert Elz  wrote:
> [...]
> > What's more, reporting bugs in bash 4.3 is just a waste of everyone's
> time.
> > Upgrade to (at least) the current released version, and use that instead.
>
> Adding to this point:
>
> * bash 4.3 was released 4 years ago (2014-02-26)
> * bash 4.4 is the current release of bash (2016-09-15)
> * bash 5.0 is in alpha state (2018-05-22)
>
>
You both are confused. The original table included

> b43sh   : [foo bar baz quux][  foo bar  baz quux  ]
> b44sh   : [foo bar baz quux][  foo bar  baz quux  ]

That's   4.3.48(2)-release   and4.4.19(2)-release


Both are failing.

Note that 4.4.19 is newer than what is available in
https://www.gnu.org/software/bash/

The report is valid for present releases.
The bug is still present (since 4.3).

Please, do not waste our time in incorrect claims.

Do your homework and test !


> I know that some stable Linux distributions might still be
> distributing 4.3, but that just means that you have to report the bug
> against these distros, not upstream.


That is not the problem, don't jump to conclusions.


Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Eduardo Bustamante
On Mon, Aug 13, 2018 at 5:25 PM Robert Elz  wrote:
[...]
> What's more, reporting bugs in bash 4.3 is just a waste of everyone's time.
> Upgrade to (at least) the current released version, and use that instead.

Adding to this point:

* bash 4.3 was released 4 years ago (2014-02-26)
* bash 4.4 is the current release of bash (2016-09-15)
* bash 5.0 is in alpha state (2018-05-22)

I know that some stable Linux distributions might still be
distributing 4.3, but that just means that you have to report the bug
against these distros, not upstream.



Re: Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Robert Elz
Date:Mon, 13 Aug 2018 11:51:08 -0400
From:Bize Ma 
Message-ID:  


  | Bash since 4.3 fails to follow what the documentation describes as that on
  | an assignment values do not undergo splitting or globing.

This is already fixed.

What's more, reporting bugs in bash 4.3 is just a waste of everyone's time.
Upgrade to (at least) the current released version, and use that instead.

kre




Assignment of $* to a var removes spaces on unset IFS.

2018-08-13 Thread Bize Ma
Executing this code:

set -- "  foo  ""  bar  baz  "  "  quux  "
unset IFS
a=$*
b="$*"
printf '[%s]' "$a" "$b"; echo

Leads to this results in several shells:

ash : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
dash: [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b205sh  : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b30sh   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b32sh   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b41sh   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b42sh   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
b43sh   : [foo bar baz quux][  foo bar  baz quux  ]
b44sh   : [foo bar baz quux][  foo bar  baz quux  ]
bash: [foo bar baz quux][  foo bar  baz quux  ]
posixbash   : [foo bar baz quux][  foo bar  baz quux  ]
lksh: [  foo bar  baz quux  ][  foo bar  baz
quux  ]
mksh: [  foo bar  baz quux  ][  foo bar  baz
quux  ]
ksh93   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
attsh   : [  foo bar  baz quux  ][  foo bar  baz
quux  ]
zsh : [  foo bar  baz quux  ][  foo bar  baz
quux  ]


Bash since 4.3 fails to follow what the documentation describes as that on
an assignment
values do not undergo splitting or globing.


Re: Unexpected delay in using arguments.

2018-08-13 Thread Bize Ma
Yes Greg, Please read the expanded source question, bash 5 with (and
without) bash-malloc has been tested.

https://unix.stackexchange.com/q/462084/265604

The problem with arguments is still present.

2018-08-13 9:37 GMT-04:00 Greg Wooledge :

> On Sun, Aug 12, 2018 at 03:16:34AM -0400, Bize Ma wrote:
> > Which is a thousand times slower.
> > Bash 5 is even worse
>
> Pre-release bash sources use a debugging-friendly (slow) malloc.  Or
> something.  Damn, google is not helping me out here.
>


Re: Unexpected delay in using arguments.

2018-08-13 Thread Greg Wooledge
On Sun, Aug 12, 2018 at 03:16:34AM -0400, Bize Ma wrote:
> Which is a thousand times slower.
> Bash 5 is even worse

Pre-release bash sources use a debugging-friendly (slow) malloc.  Or
something.  Damn, google is not helping me out here.



Re: Extglob *?(a)b matches every string

2018-08-13 Thread Greg Wooledge
On Sat, Aug 11, 2018 at 09:26:56PM -0700, Mark Polyakov wrote:
>Bash Version: 4.3
>Patch Level: 46

>A A A  An extglob pattern such as `*?(anything)something_else` will
>match any string, even though it should only match strings that end
>with something_else.

This appears to be fixed in bash 4.4.



Re: Rational Range Interpretation for bash-5.0?

2018-08-13 Thread Bize Ma
On 08/06/2018 03:07 PM, Chet Ramey wrote:

Hi. I am considering making bash glob expansion implement rational range
interpretation starting with bash-5.0 -- basically making globasciiranges
the default. It looks like glibc is going to do this for version 2.28 (at
least for a-z, A-Z, and 0-9), and other GNU utilities have done it for some
time. What do folks think?


I am in favor of the idea provided there is a way to change back to what is
now the default.

Also, the character order may be extended to use C.utf-8 instead of ASCII
to have an stable order for all UNICODE characters.

Read
https://manpages.debian.org/unstable/open-infrastructure-locales-c.utf-8/locales-c.utf-8.7.en.html