From 9913362b38a01b3a59290f209645028f41b66f65 Mon Sep 17 00:00:00 2001 From: ianmacd <> Date: Thu, 10 Oct 2002 06:38:05 +0000 Subject: [PATCH] =?UTF-8?q?-=20add=20option=20completion=20to=20Python=20-?= =?UTF-8?q?=20make=20Python=20completion=20append=20a=20'/'=20at=20the=20e?= =?UTF-8?q?nd=20of=20directories=20=20=20(use=20-o=20filenames=20rather=20?= =?UTF-8?q?than=20-o=20default=20to=20compgen)=20=20=20(patch=20by=20Rafae?= =?UTF-8?q?l=20Sep=C3=BAlveda=20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bash_completion | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/bash_completion b/bash_completion index f866fd17..ea9b9f0a 100644 --- a/bash_completion +++ b/bash_completion @@ -1,6 +1,6 @@ # bash_completion - some programmable completion functions for bash 2.05b # -# $Id: bash_completion,v 1.434 2002/10/09 07:29:14 ianmacd Exp $ +# $Id: bash_completion,v 1.435 2002/10/10 08:38:05 ianmacd Exp $ # # Copyright (C) Ian Macdonald # @@ -3650,19 +3650,51 @@ _update_alternatives() have python && _python() { - local cur + local prev cur COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} - # first parameter on line a Python script? - if [ $COMP_CWORD -eq 1 ] && [[ "$cur" != -* ]]; then + case "$prev" in + -Q) + COMPREPLY=( $( compgen -W "old new warn warnall" -- $cur ) ) + return 0 + ;; + -W) + COMPREPLY=( $( compgen -W "ignore default all module once error" -- $cur ) ) + return 0 + ;; + -c) _filedir '@(py|pyc|pyo)' + return 0 + ;; + !(python|-?)) + [[ ${COMP_WORDS[COMP_CWORD-2]} != -@(Q|W)) ]] && _filedir + ;; + esac + + + # if '-c' is already given, complete all kind of files. + for (( i=0; i < ${#COMP_WORDS}-1; i++ )); do + if [[ ${COMP_WORDS[i]} == -c ]]; then + _filedir + fi + done + + + if [[ "$cur" != -* ]]; then + _filedir '@(py|pyc|pyo)' + else + COMPREPLY=( $( compgen -W "- -d -E -h -i -O -Q -S -t -u \ + -U -v -V -W -x -c" -- $cur ) ) fi + + return 0 } -[ "$have" ] && complete -F _python $default python +[ "$have" ] && complete -F _python $filenames python # Perl completion #