[Surfraw-devel] Re: Bug#269982: /etc/bash_completion.d/surfraw breaks bashes pwd command
Moritz Muehlenhoff
jmm@inutil.org
Sun, 5 Sep 2004 10:43:12 +0200
Brian McDonald wrote:
> Package: surfraw
> Version: 2.0.2-1
> Severity: critical
> Tags: patch
> Justification: breaks unrelated software
>
> brian@4[brian]$ bash
> brian@4[brian]$ pwd
> /home/brian
> bash: pwd: write error: No such file or directory
> brian@4[brian]$
This is a bash bug that is fixed upstream. Unfortunately the fixed
version 3 didn't make it into sarge in time before the base freeze.
:-(
See 243872 for the complete history of the bug that I filed against
bash.
It's not really surfraw specific, but the surfraw bash completion
code seems one of the rare cornercases which trigger the bug.
> I take this to mean that stdout is being copied to stdout and then stdout is
> closed. I think closing stdout is the problem.
> I also think testing for a condition after the function has already been
> loaded into the enviroment may unnesessarily bloat the enviroment, so my
> modification to the file wraps the function in the test.
> Note my scripting abilities are poor but the following works for me:
>
> diff surfraw surfraw.new
>
> 1a2
> > if [ `type -p surfraw` ] ; then
> 26c27,28
> < type -p surfraw >&- && complete -F _surfraw surfraw sr
> ---
> > complete -F _surfraw surfraw sr
> > fi
This workaround seems valid. Unfortunately I won't have access to a sarge
system until tuesday.
Cheers,
Moritz