| 6556 | // Call f for all linked documents. |
| 6557 | function linkedDocs(doc, f, sharedHistOnly) { |
| 6558 | function propagate(doc, skip, sharedHist) { |
| 6559 | if (doc.linked) { |
| 6560 | for (var i = 0; i < doc.linked.length; ++i) { |
| 6561 | var rel = doc.linked[i] |
| 6562 | if (rel.doc == skip) { |
| 6563 | continue |
| 6564 | } |
| 6565 | var shared = sharedHist && rel.sharedHist |
| 6566 | if (sharedHistOnly && !shared) { |
| 6567 | continue |
| 6568 | } |
| 6569 | f(rel.doc, shared) |
| 6570 | propagate(rel.doc, doc, shared) |
| 6571 | } |
| 6572 | } |
| 6573 | } |
| 6574 | propagate(doc, null, true) |
| 6575 | } |
| 6576 | |