about summary refs log tree commit diff
path: root/src/libexpr/primops.cc
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2008-01-20T20·44+0000
committerMichael Raskin <7c6f434c@mail.ru>2008-01-20T20·44+0000
commit5b5a3af98372029f3a870cf18cc1442f1434be85 (patch)
tree94473b9cc98bed5e589713a60db60ff2da306d0c /src/libexpr/primops.cc
parent5eb5c23447b5c2bfa097416aab340d172eb416d3 (diff)
Probably fixed __exprToString
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r--src/libexpr/primops.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 883e99ad0d..864292d4a4 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -6,6 +6,7 @@
 #include "archive.hh"
 #include "expr-to-xml.hh"
 #include "nixexpr-ast.hh"
+#include "parser.hh"
 
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -949,6 +950,8 @@ static Expr prim_unsafeDiscardStringContext(EvalState & state, const ATermVector
     return makeStr(s, PathSet());
 }
 
+/* Expression serialization/deserialization */ 
+
 static Expr prim_ExprToString ( EvalState & state, const ATermVector & args)
 {
 	return makeStr ( atPrint ( evalExpr ( state, args [ 0 ] ) ) );
@@ -961,7 +964,7 @@ static Expr prim_StringToExpr ( EvalState & state, const ATermVector & args)
 	if (! matchStr ( evalExpr ( state, args[0] ), s, l )) {
 		throw EvalError("__stringToExpr needs string argument!");
 	}
-	return toATerm ( s );
+	return ATreadFromString(s.c_str());
 }
 
 /*************************************************************