diff options
Diffstat (limited to 'src/store.hh')
-rw-r--r-- | src/store.hh | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/store.hh b/src/store.hh index faac760099bf..b2cdc41f166e 100644 --- a/src/store.hh +++ b/src/store.hh @@ -10,6 +10,8 @@ using namespace std; typedef Hash FSId; +typedef set<FSId> FSIdSet; + /* Copy a path recursively. */ void copyPath(string src, string dst); @@ -26,9 +28,14 @@ bool queryPathId(const string & path, FSId & id); /* Return a path whose contents have the given hash. If target is not empty, ensure that such a path is realised in target (if necessary by copying from another location). If prefix is not - empty, only return a path that is an descendent of prefix. */ + empty, only return a path that is an descendent of prefix. + + The list of pending ids are those that already being expanded. + This prevents infinite recursion for ids realised through a + substitute (since when we build the substitute, we would first try + to expand the id... kaboom!). */ string expandId(const FSId & id, const string & target = "", - const string & prefix = "/"); + const string & prefix = "/", FSIdSet pending = FSIdSet()); /* Copy a file to the nixStore directory and register it in dbRefs. Return the hash code of the value. */ |