about summary refs log tree commit diff
path: root/src/libexpr/parser.y
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-10-04T17·55+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-10-04T17·55+0000
commit705868a8a96a10f70e629433cfffc2d5cd2703eb (patch)
treef5d17323d9719ea3d0e4b00533a7c23df508f216 /src/libexpr/parser.y
parent95f4f2cf6102f95abf6948d74907c44c3540eddd (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.y10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index 7236bab19c..b0c54339b0 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");