diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-10-04T17·55+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-10-04T17·55+0000 |
commit | 705868a8a96a10f70e629433cfffc2d5cd2703eb (patch) | |
tree | f5d17323d9719ea3d0e4b00533a7c23df508f216 /src/libexpr/parser.y | |
parent | 95f4f2cf6102f95abf6948d74907c44c3540eddd (diff) |
* Make sure that config.h is included before the system headers,
because it defines _FILE_OFFSET_BITS. Without this, on OpenSolaris the system headers define it to be 32, and then the 32-bit stat() ends up being called with a 64-bit "struct stat", or vice versa. This also ensures that we get 64-bit file sizes everywhere. * Remove the redundant call to stat() in parseExprFromFile(). The file cannot be a symlink because that's the exit condition of the loop before.
Diffstat (limited to 'src/libexpr/parser.y')
-rw-r--r-- | src/libexpr/parser.y | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 7236bab19ce5..b0c54339b051 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -15,10 +15,6 @@ stuff. So allow it to be excluded. */ #ifndef BISON_HEADER_HACK #define BISON_HEADER_HACK - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> #include "util.hh" @@ -28,6 +24,10 @@ #include "lexer-tab.hh" #define YYSTYPE YYSTYPE // workaround a bug in Bison 2.4 +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + using namespace nix; @@ -480,8 +480,6 @@ Expr * parseExprFromFile(EvalState & state, Path path) } /* If `path' refers to a directory, append `/default.nix'. */ - if (stat(path.c_str(), &st)) - throw SysError(format("getting status of `%1%'") % path); if (S_ISDIR(st.st_mode)) path = canonPath(path + "/default.nix"); |