[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 1.3-114-ga0afe09
Ville Skyttä
ville.skytta at iki.fi
Sun Apr 24 17:23:41 UTC 2011
The following commit has been merged in the master branch:
commit 0042c062046f381d9a0b81bae6cc194db2be2796
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun Apr 24 20:02:34 2011 +0300
Code cleanups.
diff --git a/bash_completion b/bash_completion
index 4ddae7c..5ed95dd 100644
--- a/bash_completion
+++ b/bash_completion
@@ -214,7 +214,8 @@ dequote()
# use multiple '_upvar' calls, since one '_upvar' call might
# reassign a variable to be used by another '_upvar' call.
# See: http://fvue.nl/wiki/Bash:_Passing_variables_by_reference
-_upvar() {
+_upvar()
+{
if unset -v "$1"; then # Unset & validate varname
if (( $# == 2 )); then
eval $1=\"\$2\" # Return single value
@@ -233,7 +234,8 @@ _upvar() {
# -v Assign single value to varname
# Return: 1 if error occurs
# See: http://fvue.nl/wiki/Bash:_Passing_variables_by_reference
-_upvars() {
+_upvars()
+{
if ! (( $# )); then
echo "${FUNCNAME[0]}: usage: ${FUNCNAME[0]} [-v varname"\
"value] | [-aN varname [value ...]] ..." 1>&2
@@ -276,7 +278,8 @@ _upvars() {
# @param $2 words Name of variable to return words to
# @param $3 cword Name of variable to return cword to
#
-__reassemble_comp_words_by_ref() {
+__reassemble_comp_words_by_ref()
+{
local exclude i j line ref
# Exclude word separator characters?
if [[ $1 ]]; then
@@ -342,7 +345,8 @@ __reassemble_comp_words_by_ref() {
# @param $3 cword Name of variable to return cword to
# @param $4 cur Name of variable to return current word to complete to
# @see ___get_cword_at_cursor_by_ref()
-__get_cword_at_cursor_by_ref() {
+__get_cword_at_cursor_by_ref()
+{
local cword words=()
__reassemble_comp_words_by_ref "$1" words cword
@@ -553,7 +557,8 @@ _get_pword()
# @param $1 current word to complete (cur)
# @modifies global array $COMPREPLY
#
-__ltrim_colon_completions() {
+__ltrim_colon_completions()
+{
if [[ "$1" == *:* && "$COMP_WORDBREAKS" == *:* ]]; then
# Remove colon-word prefix from COMPREPLY items
local colon_word=${1%${1##*:}}
@@ -738,7 +743,8 @@ _init_completion()
# @param $1 command
# @param $2 command options (default: --help)
#
-_parse_help() {
+_parse_help()
+{
$1 ${2:---help} 2>&1 | sed -e '/^[[:space:]]*-/!d' -e 's|[,/]| |g' | \
awk '{ print $1; if ($2 ~ /^-/) { print $2 } }' | sed -e 's|[<=].*||'
}
@@ -842,12 +848,12 @@ _available_interfaces()
# @return True (0) if completion needs further processing,
# False (> 0) if tilde is followed by a valid username, completions
# are put in COMPREPLY and no further processing is necessary.
-_tilde() {
+_tilde()
+{
local result=0
- # Does $1 start with tilde (~) and doesn't contain slash (/)?
- if [[ ${1:0:1} == "~" && $1 == ${1//\/} ]]; then
+ if [[ $1 == ~* && $1 != */* ]]; then
compopt -o filenames 2>/dev/null
- # Try generate username completions
+ # Try generate ~username completions
COMPREPLY=( $( compgen -P '~' -u "${1#\~}" ) )
result=${#COMPREPLY[@]}
fi
@@ -877,7 +883,8 @@ _tilde() {
# ~foo/* /home/foo/*
#
# @param $1 Name of variable (not the value of the variable) to expand
-__expand_tilde_by_ref() {
+__expand_tilde_by_ref()
+{
# Does $1 start with tilde (~)?
if [ "${!1:0:1}" = "~" ]; then
# Does $1 contain slash (/)?
@@ -1602,13 +1609,13 @@ _longopt()
local split=false
_split_longopt && split=true
- case "$prev" in
- --*[Dd][Ii][Rr]*)
+ case "${prev,,}" in
+ --*dir*)
compopt +o default
_filedir -d
return 0
;;
- --*[Ff][Ii][Ll][Ee]*|--*[Pp][Aa][Tt][Hh]*)
+ --*file*|--*path*)
_filedir
return 0
;;
--
bash-completion
More information about the Bash-completion-commits
mailing list