From b3bf1e263e363da24bc6309a768bb6021ac92f5f Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Thu, 3 Oct 2019 15:09:56 +0200 Subject: [PATCH] gio: Always include mounts in the results Mounts are currently completed only if the prefix looks like scheme, however, this doesn't work well if the mounts have also path component. Let's always include them to fix this issue. The mounts are cached by the volume monitors, so it should not significantly affect the performance. --- gio/completion/gio | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/gio/completion/gio b/gio/completion/gio index 33c0f5bdd..63d3a1279 100644 --- a/gio/completion/gio +++ b/gio/completion/gio @@ -47,17 +47,15 @@ __gio_location() { dir=${cur%$(basename "$cur")} fi - # List mounts and volumes, just if dir is not specified, or looks like scheme - local mounts=() - if [[ $dir == "" ]] || [[ $dir =~ ":"$ && ! $dir =~ "/" ]]; then - while IFS=$'\n' read mount; do - # Do not care about local mounts - [[ "$mount" =~ ^"file:" ]] && continue + # List volumes and mounts + local mounts=( ) + while IFS=$'\n' read mount; do + # Do not care about local mounts + [[ "$mount" =~ ^"file:" ]] && continue - # Use only matching mounts - [[ "$mount" =~ ^"$cur" && "$mount" != "$cur" ]] && mounts+=("$mount") - done < <(gio mount -li | sed -n -r 's/^ *(default_location|activation_root)=(.*)$/\2/p' | sort -u) - fi + # Use only matching mounts + [[ "$mount" =~ ^"$cur" && "$mount" != "$cur" ]] && mounts+=("$mount") + done < <(gio mount -li | sed -n -r 's/^ *(default_location|activation_root)=(.*)$/\2/p' | sort -u) # Workaround to unescape dir name (e.g. "\ " -> " ") declare -a tmp="( ${dir} )"