* Make printing an expression as XML interruptible.
This commit is contained in:
		
							parent
							
								
									11158028be
								
							
						
					
					
						commit
						792878af91
					
				
					 2 changed files with 7 additions and 0 deletions
				
			
		|  | @ -684,6 +684,9 @@ Expr strictEvalExpr(EvalState & state, Expr e, bool canonicalise) | |||
|             if (!matchBind(*i, name, e, pos)) abort(); /* can't happen */ | ||||
|             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); | ||||
|     } | ||||
|  |  | |||
|  | @ -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)); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue