summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorDaniel Friesel <derf@derf.homelinux.org>2009-01-30 21:50:50 +0100
committerDaniel Friesel <derf@derf.homelinux.org>2009-01-30 21:50:50 +0100
commite878c394b2f23b6559c2fa888deb7ae9ce73c4a4 (patch)
treeabcdc35f0530d29f6940866a72706d18af6d79a5 /etc
parentb01d636d4e5ea11a15ebdbc6144a746a4ca80713 (diff)
Almost finished __git_files
Only remaining problem: If the current relative path is shorter than a file's relative path, some ../'s might be missed
Diffstat (limited to 'etc')
-rw-r--r--etc/completions/__git_files9
1 files changed, 7 insertions, 2 deletions
diff --git a/etc/completions/__git_files b/etc/completions/__git_files
index 808fe8e..dd2040d 100644
--- a/etc/completions/__git_files
+++ b/etc/completions/__git_files
@@ -18,7 +18,7 @@ if [[ -z $gitdir ]] {
}
if [[ ! -d .git ]] {
- dirdiff=${PWD#${gitdir%/.git}}
+ dirdiff=${PWD#${gitdir%/.git}/}
for ((i = 1; i <= $#files; i++)) {
prefix=''
item=(${(s:/:)files[$i]})
@@ -30,7 +30,12 @@ if [[ ! -d .git ]] {
prefix+='../'
}
}
- files[$i]=${prefix}${(j:/:)item}
+ files[$i]=${prefix}
+ for j in $item; {
+ [[ -n $j ]] && files[$i]+="$j/"
+ }
+ files[$i]=${files[$i]%/}
+ echo $files[$i] >> /tmp/bar
}
}
_wanted files expl 'index file' _multi_parts $@ - / files