Bug 994659
| Summary: | presetting environment variable inhibits tab-completion of command | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Steve Tyler <stephent98> |
| Component: | bash | Assignee: | Ondrej Oprala <ooprala> |
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 19 | CC: | admiller, ooprala, ovasik, sheltren, stephent98, tsmetana, ville.skytta |
| Target Milestone: | --- | Keywords: | FutureFeature, Reopened |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Enhancement | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-04-01 10:29:31 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
AFAIK there's nothing that can be done about this in bash-completion, it's a bash thing -- our completion functions simply aren't invoked in those kinds of command lines:
$ foo() { echo ; echo "in foo"; }
$ complete -F foo foo
$ foo <TAB>
in foo
$ foo=bar foo <TAB>
# filename completion occurs
I'm not much familiar with bash completion, but this looks like missing feature. I will take a look on it. Thanks, Roman. The journalctl completions are in the systemd package, not the bash-completion package: $ rpm -ql systemd | grep completions/journalctl /usr/share/bash-completion/completions/journalctl Steve BTW this has nothing to do with the bash-completion or journalctl packages or completions, see comment 1. FYI, Comment 3 was an FYI. :-) Presumably some completions will need to be installed to test the bash fixes. Or am I mistaken? Can completions be tested without completions? Comment 1 contains a completion for command foo, no need to install anything besides entering those two lines and start testing. Thanks for your clarification. That's very interesting. bash has a lot of features I don't know anything about ...
$ fo[tab]
fold font2c fonttosfnt foo foomatic-rip foo.sh for formail
$ foo[tab]
foo foomatic-rip foo.sh
$ foo [tab]
in foo
[tab]
in foo
[enter]
in foo
$
$ complete | grep foo
complete -F foo foo
$
$ typeset -f foo
foo ()
{
echo;
echo "in foo"
}
$
In this case the bash is trying filename completion. It could be somehow doable to learn bash (readline) to perform command completion. I'm testing bash-4.3-beta from upstream testing branch and this feature is working. It will appear in next release of bash. What test case are you using?
$ foo() { echo ; echo "in foo"; }
$ complete -F foo foo
$ TZ=UTC fo[tab] # completion does not occur here
$ fo[tab] # this works as expected
fold font2c fonttosfnt foo foomatic-rip foo.sh for formail
$ echo $BASH_VERSION
4.3.0(1)-beta
bash-4.3-beta.tar.gz downloaded from here:
http://git.savannah.gnu.org/cgit/bash.git/
$ TZ=UTC foo[tab] # this appears to work in foo [enter] in foo $ You're right. Even worse, it only completes using programmable completions - it doesn't complete for binary files in PATH. This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component. Hi and thanks for the report. This issue is now fixed in bash-4.3, which can be found in rawhide. |
Description of problem: Presetting an environment variable on the command-line inhibits tab-completion of the command: Tab-completion does not occur: $ TZ=UTC journalct[tab] Tab-completion occurs: $ journalct[tab] Version-Release number of selected component (if applicable): bash-completion-2.1-2.fc19.noarch bash-4.2.45-1.fc19.x86_64 How reproducible: Always. Steps to Reproduce: 1. $ TZ=UTC journalct[tab] Actual results: Tab-completion does not occur. Pressing tab has no effect. Expected results: The command is completed: $ TZ=UTC journalctl ^ Additional info: The use-case is setting the time zone for the timestamps in journalctl output: Bug 991678, Comment 21.