Merge pull request #685 from vizanto/master
POSIX compliant directory access (fixes build on Solaris)
This commit is contained in:
		
						commit
						6298afc047
					
				
					 3 changed files with 8 additions and 1 deletions
				
			
		|  | @ -48,6 +48,7 @@ test "$localstatedir" = '${prefix}/var' && localstatedir=/nix/var | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Solaris-specific stuff. | # Solaris-specific stuff. | ||||||
|  | AC_STRUCT_DIRENT_D_TYPE | ||||||
| if test "$sys_name" = sunos; then | if test "$sys_name" = sunos; then | ||||||
|     # Solaris requires -lsocket -lnsl for network functions |     # Solaris requires -lsocket -lnsl for network functions | ||||||
|     LIBS="-lsocket -lnsl $LIBS" |     LIBS="-lsocket -lnsl $LIBS" | ||||||
|  |  | ||||||
|  | @ -232,7 +232,7 @@ DirEntries readDirectory(const Path & path) | ||||||
|         checkInterrupt(); |         checkInterrupt(); | ||||||
|         string name = dirent->d_name; |         string name = dirent->d_name; | ||||||
|         if (name == "." || name == "..") continue; |         if (name == "." || name == "..") continue; | ||||||
|         entries.emplace_back(name, dirent->d_ino, dirent->d_type); |         entries.emplace_back(name, dirent->d_ino, #ifdef HAVE_STRUCT_DIRENT_D_TYPE dirent->d_type #else DT_UNKNOWN #endif); | ||||||
|     } |     } | ||||||
|     if (errno) throw SysError(format("reading directory ‘%1%’") % path); |     if (errno) throw SysError(format("reading directory ‘%1%’") % path); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -11,6 +11,12 @@ | ||||||
| 
 | 
 | ||||||
| #include <cstdio> | #include <cstdio> | ||||||
| 
 | 
 | ||||||
|  | #ifndef HAVE_STRUCT_DIRENT_D_TYPE | ||||||
|  | #define DT_UNKNOWN 0 | ||||||
|  | #define DT_REG 1 | ||||||
|  | #define DT_LNK 2 | ||||||
|  | #define DT_DIR 3 | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
| namespace nix { | namespace nix { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue