readline and bash disagree on $'' quoting

2015-10-05 Thread Daniel Colascione
Consider this command:

  foo $'foo \' bar'

As far as the bash core is concerned, this command has one argument
word. But readline, for completion, splits it up into three words:

  0: foo
  1: $'abc \'
  2: bar'

Shouldn't we be splitting the command line into the same number of words?



signature.asc
Description: OpenPGP digital signature


Re: command substitution is stripping set -e from options

2015-10-05 Thread Christoph Gysin
> The parent shell (the one that enabled -e) should be the one to make the
> decision about whether or not the shell exits.  The exit status of the
> command substitution doesn't make a difference except in one special case,
> so inheriting errexit and exiting (possibly prematurely) doesn't really
> help the parent decide whether or not to exit.

I'm not sure I fully understand.

The parent shell should be the one to decide if the script is supposed
to abort on any unsuccessful exit status. Command substitution should
not change that. The parent shell decided via set -e that it wants to
exit immediately on error.

> Now, of course, it's been more than 20 years, and backwards compatiblity
> is a concern.

I still think this is a bug, I can't imagine why anyone would set "set
-e" and not want to exit on failing commands inside command
substitution. I think posix mode does the right thing in this regard.

If you don't want to fix this for backwards compatibility, is there
anyway we could change that behaviour explicitly? I.e. with another
option? Avoiding command substitution isn't really an option, and this
essentially disables the whole point of set -e.

Chris
-- 
echo mailto: NOSPAM !#$.'<*>'|sed 's. ..'|tr "<*> !#:2" org@fr33z3