* dirOf: return "/", not "", for paths in the root directory. Fixes NIX-26.
This commit is contained in:
		
							parent
							
								
									04be39734f
								
							
						
					
					
						commit
						5b527901ae
					
				
					 2 changed files with 3 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -65,7 +65,7 @@ void setLogType(string lt)
 | 
			
		|||
void checkStoreNotSymlink(Path path)
 | 
			
		||||
{
 | 
			
		||||
    struct stat st;
 | 
			
		||||
    while (path.size()) {
 | 
			
		||||
    while (path != "/") {
 | 
			
		||||
        if (lstat(path.c_str(), &st))
 | 
			
		||||
            throw SysError(format("getting status of `%1%'") % path);
 | 
			
		||||
        if (S_ISLNK(st.st_mode))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,7 +115,7 @@ Path dirOf(const Path & path)
 | 
			
		|||
    unsigned int pos = path.rfind('/');
 | 
			
		||||
    if (pos == string::npos)
 | 
			
		||||
        throw Error(format("invalid file name: %1%") % path);
 | 
			
		||||
    return Path(path, 0, pos);
 | 
			
		||||
    return pos == 0 ? "/" : Path(path, 0, pos);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -302,7 +302,7 @@ Path createTempDir()
 | 
			
		|||
 | 
			
		||||
void createDirs(const Path & path)
 | 
			
		||||
{
 | 
			
		||||
    if (path == "") return;
 | 
			
		||||
    if (path == "/") return;
 | 
			
		||||
    createDirs(dirOf(path));
 | 
			
		||||
    if (!pathExists(path))
 | 
			
		||||
        if (mkdir(path.c_str(), 0777) == -1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue