From 36e848a9460dcdb21eff464d22ce5d9ebbad0e3f Mon Sep 17 00:00:00 2001 From: Guillaume Rousse Date: Sun, 17 May 2009 22:05:54 +0200 Subject: [PATCH] split gdb completion --- bash_completion | 37 ------------------------------------- contrib/gdb | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 37 deletions(-) create mode 100644 contrib/gdb diff --git a/bash_completion b/bash_completion index 49c79419..d3c9ceb0 100644 --- a/bash_completion +++ b/bash_completion @@ -3969,43 +3969,6 @@ _openssl() complete -F _openssl $default openssl } -# gdb(1) completion -# -have gdb && -_gdb() -{ - local cur prev - - COMPREPLY=() - cur=`_get_cword` - prev=${COMP_WORDS[COMP_CWORD-1]} - - if [ $COMP_CWORD -eq 1 ]; then - local IFS - if [[ "$cur" == */* ]]; then - # compgen -c works as expected if $cur contains any slashes. - IFS=$'\n' - COMPREPLY=( $( PATH="$PATH:." compgen -d -c -- "$cur" ) ) - else - # otherwise compgen -c contains Bash's built-in commands, - # functions and aliases. Thus we need to retrieve the program - # names manually. - IFS=":" - local path_array=( $(echo "$PATH" | sed 's/::\+/:/g;s/^:\|:$//g') ) - IFS=$'\n' - COMPREPLY=( $( compgen -d -W '$(find "${path_array[@]}" . \ - -mindepth 1 -maxdepth 1 -not -type d -executable -printf "%f\\n" 2>/dev/null)' \ - -- "$cur" ) ) - fi - elif [ $COMP_CWORD -eq 2 ]; then - prev=${prev##*/} - COMPREPLY=( $( compgen -fW "$( command ps axo comm,pid | \ - awk '{if ($1 ~ /^'"$prev"'/) print $2}' ) )" \ - -- "$cur" ) ) - fi -} && -complete -F _gdb $default gdb - # Postgresql completion # have psql && { diff --git a/contrib/gdb b/contrib/gdb new file mode 100644 index 00000000..7849f4f7 --- /dev/null +++ b/contrib/gdb @@ -0,0 +1,39 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# bash completion for gdb + +have gdb && +_gdb() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + if [ $COMP_CWORD -eq 1 ]; then + local IFS + if [[ "$cur" == */* ]]; then + # compgen -c works as expected if $cur contains any slashes. + IFS=$'\n' + COMPREPLY=( $( PATH="$PATH:." compgen -d -c -- "$cur" ) ) + else + # otherwise compgen -c contains Bash's built-in commands, + # functions and aliases. Thus we need to retrieve the program + # names manually. + IFS=":" + local path_array=( $(echo "$PATH" | sed 's/::\+/:/g;s/^:\|:$//g') ) + IFS=$'\n' + COMPREPLY=( $( compgen -d -W '$(find "${path_array[@]}" . \ + -mindepth 1 -maxdepth 1 -not -type d -executable -printf "%f\\n" 2>/dev/null)' \ + -- "$cur" ) ) + fi + elif [ $COMP_CWORD -eq 2 ]; then + prev=${prev##*/} + COMPREPLY=( $( compgen -fW "$( command ps axo comm,pid | \ + awk '{if ($1 ~ /^'"$prev"'/) print $2}' ) )" \ + -- "$cur" ) ) + fi +} && +complete -F _gdb $default gdb