about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libexpr/primops.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index a752b9a5963e..d5e1ce7be918 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -974,7 +974,14 @@ static void prim_unsafeDiscardOutputDependency(EvalState & state, Value * * args
     PathSet context2;
     foreach (PathSet::iterator, i, context) {
         Path p = *i;
-        if (p.at(0) == '=') p = "~" + string(p, 1);
+        if (p.at(0) == '=')
+        {
+            size_t index;
+            p = "~" + string(p, 1);
+            index = p.find("=");
+            if (index < p.find("/"))
+                p = "~" + string(p, index + 1);
+        }
         context2.insert(p);
     }