Ok, so just to round this up and to help others who may struggle about the bash completion. Using 'have' as a guard is probably a good idea in a environment like ubuntu or debian, where all completions are loaded by default (Although, the script would probably not be in its place if ptxdist is not installed). In Gentoo the user may choose the completion scripts he wants - making sure he only loads completions for installed tools. On the other hand gentoo loads the completions quite early in the login process - far before ~/.{profile,bashrc} So the scripts do not see paths added by the user. Thus the solution for gentoo (and probably other distributions with early loaded completions) is to simply remove the guard or reload the completions after setting user specific paths. Regards, Daniel Am 14.12.2012 um 11:18 schrieb Michael Olbrich: > Hi, > > On Thu, Dec 13, 2012 at 01:10:33PM +0100, Daniel Kriesten wrote: >> may be you can once more lend my a hand … >> >> As my Mac has Bash version 3, which is AFAIK deprecated for bash completion, >> I changed the script just to fit my needs. >> >> On my linux box (recent Gentoo, bash 4.2.37) the issue is an other. If I log >> in, the completion is not loaded. If I start a new shell, the completion >> works. This seems to be related to the line >> >> if have ptxdist >> >> and the way Gentoo handles bash completion and the way I installed ptxdist. >> As far as I can see, ptxdist is not in the path when the completion scripts >> are executed at login as this is done by the global /etc/profile early in >> session startup. Simply removing the if statement solves this for me. But I >> guess there is a reason to check for ptxdist? > > The ptxdist bash_completion script should not be sourced directly. 'have' > is defined by bash_completion before it sources the application specific > scripts and later undefined. At least that's how it works on Debian. I have > a .bash_completion like this: > -------------------------------------- > . /path/to/ptxdist/scripts/bash_completion > > complete -F _ptxdist_completion p > -------------------------------------- > > Note: for this to work 'ptxdist' must be found in PATH when this is loaded. > I suppose you could also define 'have' in a way that it is always > successful before sourcing scripts/bash_completion > > Michael > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > > -- > ptxdist mailing list > ptxdist@pengutronix.de -- Daniel Kriesten Professur Schaltkreis- und Systementwurf Technische Universität Chemnitz, Reichenhainer Str. 31-33, 09126 Chemnitz Tel: +49 371 531 33058 Fax: +49 371 531 833058 http://www.tu-chemnitz.de/etit/sse