aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xvis-complete19
1 files changed, 7 insertions, 12 deletions
diff --git a/vis-complete b/vis-complete
index 398244f..255958d 100755
--- a/vis-complete
+++ b/vis-complete
@@ -28,32 +28,27 @@ while [ $# -gt 0 ]; do
esac
done
-if [ $COMPLETE_WORD = 0 ]; then
+if [ $COMPLETE_WORD = 1 ]; then
+ tr -cs '[:alnum:]_' '\n' |
+ grep "^$(basic_regex_quote "$PATTERN")." |
+ sort -u
+else
+ # Expand to absolute path because of the -path option below.
case $PATTERN in
/*)
- # An absolute path. This is fine.
;;
'~'|'~/'*)
- # Expand tilde to $HOME
PATTERN=$HOME$(echo $PATTERN | tail -c +2)
;;
*)
- # A relaive path. Let's make it absolute.
PATTERN=$PWD/$PATTERN
;;
esac
-fi
-if [ $COMPLETE_WORD = 1 ]; then
- tr -cs '[:alnum:]_' '\n' |
- grep "^$(basic_regex_quote "$PATTERN")." |
- sort -u
-else
- START=$(dirname "$PATTERN")
# The first path condition rules out paths that start with "." unless
# they start with "..". That way, hidden paths should stay hidden, but
# non-normalised paths should still show up.
- find "$START" \
+ find $(dirname "$PATTERN") \
-name '.*' -prune \
-o \( \
! -name '.*' \