[Bug 778627] Re: bash completion now quotes shell variable references rather than expanding them

thava thavamuni at gmail.com
Fri Sep 13 15:43:57 UTC 2013


If the proposed fix requires setting direxpand variable, then that is
not a fix, it is a workaround fix. (something is better than nothing
though). Historical behaviour should not be changed and users must not
be expected to set this new variable. This is affecting so many people
and this is real pity.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/778627

Title:
  bash completion now quotes shell variable references rather than
  expanding them

Status in “bash” package in Ubuntu:
  Fix Released
Status in “bash” source package in Precise:
  Fix Released
Status in “bash” source package in Quantal:
  Fix Released
Status in “bash” source package in Raring:
  Fix Released
Status in “bash” package in Debian:
  Fix Released
Status in “bash” package in Fedora:
  New

Bug description:
  Binary package hint: bash

  NB! NB! NB!

  After applying the update to resolve this problem one _also_ must
  enable direxpand option by issuing:

  shopt -s direxpand

  If you do not do this, the variable expansion will not happen.

  NB! NB! NB!

  [Impact]
  Bash-4.2 tries to leave completed directory names as the user typed them,
  without expanding them to a full pathname.  One effect of this is that
  shell variables used in pathnames being completed (e.g., $HOME) are left
  unchanged, but the `$' is quoted by readline because it is a special
  character to the shell.

  [Test Case]
  - [Current test case showing expected behavior]

  Items to address so far:
    - that $ is escaped less
    - that direxpand does not expand as expected
    - that direxpand option is available and if enabled, expands directories with variable names.

  zef:~/Projects/precise-amd64$ mkdir -p /tmp/testd/finger/toe
  zef:~/Projects/precise-amd64$ cd /tmp/testd/
  zef:/tmp/testd$ td=`pwd`
  zef:/tmp/testd$ cd ../
  zef:/tmp$ ls \$td/finger

  zef:/tmp$ shopt -s direxpand
  zef:/tmp$ ls $td/fing<TAB>
  zef:/tmp$ ls /tmp/testd/finger/
  toe

  - [Previous Test Case showing non-working bash installation]
  ~$ mkdir -p /tmp/testd/finger/toe
  /tmp$ cd /tmp/testd
  /tmp/testd$ td=`pwd`
  /tmp/testd$ cd ../
  /tmp$ ls $td/fing

  Type a TAB character at this point, and bash completion makes the line:
  /tmp$ ls \$td/finger

  Note that while 'fing' has been expanded to 'finger ' (with a space at the end), the $td variable reference has had the
  $ character quoted with a backslash.  This prevents further extension of the pathname, and in fact makes
  the command invalid; if I type a newline at this point, I get:
  ls: cannot access $td/finger: No such file or directory

  This is not useful behavior.  I believe that in Ubuntu 10.10, the $td variable would have been expanded
  to  '/tmp/testd', and subsequent completions starting from '/tmp/testd/finger' would have worked.

  [The version of /etc/bash_completion.d/acroread.sh that is installed
  starts with:

  # _filedir : to handle file and directories with spaces in their names.
  if ! type _filedir &> /dev/null ; then

  so I don't think that file is overriding /etc/bash_completion's
  _filedir ...]

  [Regression Potential]
  - (#32) low potential for regressions since this bug is related to the interactive command line and would not influence any scripts.

  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: bash 4.2-0ubuntu3
  ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
  Uname: Linux 2.6.38-8-generic x86_64
  Architecture: amd64
  Date: Fri May  6 09:48:29 2011
  InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release amd64 (20091027)
  ProcEnviron:
   SHELL=/bin/bash
   PATH=(custom, user)
   LANG=en_US.UTF-8
   LANGUAGE=en_US:en
  SourcePackage: bash
  UpgradeStatus: Upgraded to natty on 2011-04-30 (6 days ago)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/778627/+subscriptions




More information about the foundations-bugs mailing list