mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-30 05:40:58 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			827 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			827 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| ## vim:ft=zsh
 | |
| ## Written by Frank Terbeck <ft@bewatermyfriend.org>
 | |
| ## Distributed under the same BSD-ish license as zsh itself.
 | |
| 
 | |
| setopt localoptions NO_shwordsplit
 | |
| local dirname=$1
 | |
| local basedir="." realbasedir file
 | |
| 
 | |
| realbasedir="$(VCS_INFO_realpath ${basedir})"
 | |
| while [[ ${realbasedir} != '/' ]]; do
 | |
|     [[ -r ${realbasedir} ]] || return 1
 | |
|     if [[ -n ${vcs_comm[detect_need_file]} ]] ; then
 | |
|         [[ -d ${basedir}/${dirname} ]] && {
 | |
|             for file in ${(s: :)${vcs_comm[detect_need_file]}}; do
 | |
|                 [[ -e ${basedir}/${dirname}/${file} ]] && break 2
 | |
|             done
 | |
|         }
 | |
|     else
 | |
|         [[ -d ${basedir}/${dirname} ]] && break
 | |
|     fi
 | |
| 
 | |
|     basedir=${basedir}/..
 | |
|     realbasedir="$(VCS_INFO_realpath ${basedir})"
 | |
| done
 | |
| 
 | |
| [[ ${realbasedir} == "/" ]] && return 1
 | |
| vcs_comm[basedir]=${realbasedir}
 | |
| return 0
 |