12 Commits

Author SHA1 Message Date
Ville Skyttä
b8267d131e Add *.Z support to man completion. 2010-03-30 22:04:07 +03:00
Ville Skyttä
d6068483d2 Add *.xz support to man completion. 2010-03-30 22:02:30 +03:00
Ville Skyttä
885e6dd6b6 Drop internal uses of $default, $filenames and friends.
Definitions are still present though, tentatively scheduled for
removal as of 2.0.
2009-10-22 12:04:29 +03:00
Guillaume Rousse
506e1cb3eb new indentation policy 2009-10-04 19:42:50 +02:00
Ville Skyttä
369980bf93 Tell *Emacs to indent comments (sh-indent-comment: t).
Also move indentation settings to end of files and expand *Emacs ones to
local variables block to avoid overflowing 80 char lines.
2009-10-01 20:54:51 +03:00
Freddy Vulto
cfcf9fae8f Quote unquoted $cur to prevent globbing.
Closes Alioth #311614

Globbing might occur if $cur contains one of these globbing characters: * ? [ ]

The bug becomes apparent:

On Cygwin if the glob-string contains backslashes as well, causing a warning (Cygwin >= 1.7):

    MS-DOS style path detected: ...
    Preferred POSIX equivalent is: ...
    CYGWIN environment variable option "nodosfilewarning" turns off this warning.
    Consult the user's guide for more details about POSIX paths:
      http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

On Linux, using strace, you can see bash-completion doing an unnecessary `open' system call.

Steps to reproduce on Linux using `strace':

Environment:  Linux, bash-completion-1.0

1.  Start bash with bash-completion loaded and find out PID ($$):

    $ echo $$
    MYPID

2.  In a second bash shell, `strace' the above PID:

    $ strace -e trace=open -f -o strace.log -p MYPID

3.  Within the first bash shell, type:

    $ cur="?"; _kernel_versions

4.  In the second bash shell, type ^C to quick `strace'.

5.  Check `strace.log', here you can see bash accessing
    something it shouldn't:

    ...
    open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
    ...

6.  The above call to `open' disappears if $cur in _kernel_versions gets
    quoted, and you repeat the steps above:

    _kernel_versions()
    {
        COMPREPLY=( $( compgen -W '$( command ls /lib/modules )' -- "$cur" ) )
    }
2009-09-25 09:36:29 +02:00
David Paleino
7bc1813148 Revert "Support "man cmd subcmd" completion in contrib/man (Debian: #545411)"
This reverts commit 584bc520dfbc0e6a7e949b885bb9b949f99a1ff9.

This commit broke "general" man completion, trying to give "pages"
(from man-pages(7)) after $ man |. This would've been ok only if
$ man man | (man man pages indeed works). Trying to look for a fix :)
2009-09-17 18:25:25 +02:00
David Paleino
584bc520df Support "man cmd subcmd" completion in contrib/man (Debian: #545411) 2009-09-17 18:06:24 +02:00
Ville Skyttä
c6360dde51 Trim trailing whitespace (cosmetic, no functional changes). 2009-07-25 13:38:42 +03:00
Freddy Vulto
6966cad8cf Fix leaking $i from `man' completion 2009-07-24 09:07:32 +02:00
Ville Skyttä
4ad2698236 Add indentation settings. 2009-06-06 00:48:22 +03:00
David Paleino
e6b7e5ec64 Split man completion to contrib/man 2009-06-05 08:43:11 +02:00