diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-01-13 14:48:41 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-01-13 14:48:41 +0000 |
commit | 792878af911bd1913706a1a8ee5a18f7230352ef (patch) | |
tree | 7321ebf3b755dd3878bba56a15f8aa1ef0bab4ae /src | |
parent | 11158028be348ed9eb58bf78f4cc9711e8bfe664 (diff) |
* Make printing an expression as XML interruptible.
Diffstat (limited to 'src')
-rw-r--r-- | src/libexpr/eval.cc | 4 | ||||
-rw-r--r-- | src/libexpr/expr-to-xml.cc | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 8665edcfa..e6ea73efc 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -685,6 +685,9 @@ Expr strictEvalExpr(EvalState & state, Expr e, bool canonicalise) as2 = ATinsert(as2, makeBind(name, strictEvalExpr(state, e, canonicalise), canonicalise ? makeNoPos() : pos)); } + if (canonicalise) { + + } /* !!! sort attributes if canonicalise == true */ return makeAttrs(ATreverse(as2)); } @@ -716,6 +719,7 @@ Expr strictEvalExpr(EvalState & state, Expr e, bool canonicalise) formals2 = ATinsert(formals2, makeFormal(name, valids, dummy)); } + return makeFunction(ATreverse(formals2), body, canonicalise ? makeNoPos() : pos); } diff --git a/src/libexpr/expr-to-xml.cc b/src/libexpr/expr-to-xml.cc index 5c5b81b23..1a7302df1 100644 --- a/src/libexpr/expr-to-xml.cc +++ b/src/libexpr/expr-to-xml.cc @@ -2,6 +2,7 @@ #include "xml-writer.hh" #include "nixexpr-ast.hh" #include "aterm.hh" +#include "util.hh" namespace nix { @@ -24,6 +25,8 @@ static void printTermAsXML(Expr e, XMLWriter & doc, PathSet & context) ATermList as, es, formals; ATerm body, pos; + checkInterrupt(); + if (matchStr(e, s, context)) /* !!! show the context? */ doc.writeEmptyElement("string", singletonAttrs("value", s)); |