summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2016-10-31 12:14:23 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2016-10-31 12:14:23 -0700
commit59dbab4f1c0898f9a354d85051b1d5a5e776d984 (patch)
tree355f23e14151650bcb23af41a64373614ddd2775 /Completion
parent74aa45910b3711622e9eb5ccf8adef9566db6f62 (diff)
downloadzsh-59dbab4f1c0898f9a354d85051b1d5a5e776d984.tar.gz
zsh-59dbab4f1c0898f9a354d85051b1d5a5e776d984.tar.xz
zsh-59dbab4f1c0898f9a354d85051b1d5a5e776d984.zip
39792: improve handling of relative paths in _canonical_paths_add_paths
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Type/_canonical_paths5
1 files changed, 4 insertions, 1 deletions
diff --git a/Completion/Unix/Type/_canonical_paths b/Completion/Unix/Type/_canonical_paths
index 9bccc7f86..6482602ac 100644
--- a/Completion/Unix/Type/_canonical_paths
+++ b/Completion/Unix/Type/_canonical_paths
@@ -69,7 +69,10 @@ _canonical_paths_add_paths () {
   expref=${~origpref} 2>/dev/null
   [[ $origpref == (|*/). ]] && rltrim=.
   curpref=${${expref%$rltrim}:-./}
-  if zstat $curpref >&/dev/null; then
+  if [[ $expref:h == (.|..) ]]; then
+    _canonical_paths_pwd $expref:h
+    canpref=$REPLY/$expref:t
+  elif zstat $curpref >&/dev/null; then
     _canonical_paths_get_canonical_path $curpref
     canpref=$REPLY
   else