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}" ;;