about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2013-11-29 12:32:36 -0800
committerBarton E. Schaefer <schaefer@zsh.org>2013-11-29 12:32:36 -0800
commit9972fdeead12204192cd40e4331ff8f89434df04 (patch)
tree07e08420bcec63f06a06e226453df11b950d68a9
parent561811602059a9b948be636710b45662174d1a6a (diff)
downloadzsh-9972fdeead12204192cd40e4331ff8f89434df04.tar.gz
zsh-9972fdeead12204192cd40e4331ff8f89434df04.tar.xz
zsh-9972fdeead12204192cd40e4331ff8f89434df04.zip
32066: fix %r and %S in vcs_info formats when a repository subdirectory is accessed via a symlink
31985 Clemens Hammacher and 32064 Hong Xu
-rw-r--r--ChangeLog7
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_get_data_git2
-rw-r--r--Functions/VCS_Info/VCS_INFO_reposub4
3 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f0ff5b109..c2f1df360 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-11-29  Barton E. Schaefer  <schaefer@zsh.org>
+
+	* 32066 (via 31985 Clemens Hammacher and 32064 Hong Xu):
+	Functions/VCS_Info/Backends/VCS_INFO_get_data_git,
+	Functions/VCS_Info/VCS_INFO_reposub: fix %r and %S in vcs_info
+	formats when a repository subdirectory is accessed via a symlink.
+
 2013-11-27  Barton E. Schaefer  <schaefer@zsh.org>
 
 	* 32061: Src/utils.c: Fix "use of uninitialized memory" in metafy
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
index c44be398e..e6791cb7a 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git
@@ -132,7 +132,7 @@ fi
 
 VCS_INFO_adjust
 VCS_INFO_git_getaction ${gitdir}
-gitbase=${PWD%/${$( ${vcs_comm[cmd]} rev-parse --show-prefix )%/##}}
+gitbase=$( ${vcs_comm[cmd]} rev-parse --show-toplevel )
 rrn=${gitbase:t}
 
 local patchdir=${gitdir}/patches/${gitbranch}
diff --git a/Functions/VCS_Info/VCS_INFO_reposub b/Functions/VCS_Info/VCS_INFO_reposub
index 0fab863f1..1c16f0e7b 100644
--- a/Functions/VCS_Info/VCS_INFO_reposub
+++ b/Functions/VCS_Info/VCS_INFO_reposub
@@ -5,9 +5,9 @@
 setopt localoptions extendedglob NO_shwordsplit
 local base=${1%%/##}
 
-[[ ${PWD} == ${base}/* ]] || {
+[[ $(pwd -P) == ${base}/* ]] || {
     printf '.'
     return 1
 }
-printf '%s' ${PWD#$base/}
+printf '%s' ${$(pwd -P)#$base/}
 return 0