Merge pull request #102 from jpschewe/master
Found a bug in the tmux completion
diff --git a/completion/available/tmux.completion.bash b/completion/available/tmux.completion.bash
index 4fd0e0c..e8ee5e7 100644
--- a/completion/available/tmux.completion.bash
+++ b/completion/available/tmux.completion.bash
@@ -5,6 +5,32 @@
# Usage: Put "source bash_completion_tmux.sh" into your .bashrc
# Based upon the example at http://paste-it.appspot.com/Pj4mLycDE
+_tmux_expand ()
+{
+ [ "$cur" != "${cur%\\}" ] && cur="$cur"'\';
+ if [[ "$cur" == \~*/* ]]; then
+ eval cur=$cur;
+ else
+ if [[ "$cur" == \~* ]]; then
+ cur=${cur#\~};
+ COMPREPLY=($( compgen -P '~' -u $cur ));
+ return ${#COMPREPLY[@]};
+ fi;
+ fi
+}
+
+_tmux_filedir ()
+{
+ local IFS='
+';
+ _tmux_expand || return 0;
+ if [ "$1" = -d ]; then
+ COMPREPLY=(${COMPREPLY[@]} $( compgen -d -- $cur ));
+ return 0;
+ fi;
+ COMPREPLY=(${COMPREPLY[@]} $( eval compgen -f -- \"$cur\" ))
+}
+
function _tmux_complete_client() {
local IFS=$'\n'
local cur="${1}"
@@ -40,7 +66,7 @@
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [ ${prev} == -f ]; then
- _filedir
+ _tmux_filedir
else
# Search for the command
local skip_next=0
@@ -123,7 +149,7 @@
-t) _tmux_complete_session "${cur}" ;;
*) options="-t" ;;
esac ;;
- source-file|source) _filedir ;;
+ source-file|source) _tmux_filedir ;;
has-session|has|kill-session)
case "$prev" in
-t) _tmux_complete_session "${cur}" ;;