mirror of https://github.com/pkg/sftp.git
				
				
				
			
		
			
	
	
		
			28 lines
		
	
	
		
			459 B
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			459 B
		
	
	
	
		
			Go
		
	
	
	
|  | package sftp | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"path" | ||
|  | 	"path/filepath" | ||
|  | ) | ||
|  | 
 | ||
|  | func (s *Server) toLocalPath(p string) string { | ||
|  | 	if s.workDir != "" && !path.IsAbs(p) { | ||
|  | 		p = path.Join(s.workDir, p) | ||
|  | 	} | ||
|  | 
 | ||
|  | 	lp := filepath.FromSlash(p) | ||
|  | 
 | ||
|  | 	if path.IsAbs(p) { | ||
|  | 		tmp := lp[1:] | ||
|  | 
 | ||
|  | 		if filepath.IsAbs(tmp) { | ||
|  | 			// If the FromSlash without any starting slashes is absolute,
 | ||
|  | 			// then we have a filepath encoded with a prefix '/'.
 | ||
|  | 			// e.g. "/#s/boot" to "#s/boot"
 | ||
|  | 			return tmp | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return lp | ||
|  | } |