70 memset(dp, 0,
sizeof(*dp));
83 Id parent, i, *dirtraverse;
88 for (parent = 0, i = 0; i < dp->
ndirs; i++)
92 parent = -dp->
dirs[i];
93 dirtraverse[i] = dirtraverse[parent];
94 dirtraverse[parent] = i + 1;
102 Id did, d, ds, *dirtraverse;
113 if (parent == 0 && comp == 1)
120 ds = dirtraverse[parent];
125 for (d = ds--; d < dp->
ndirs; d++)
127 if (dp->
dirs[d] == comp)
129 if (dp->
dirs[d] <= 0)
138 for (did = dp->
ndirs - 1; did > 0; did--)
139 if (dp->
dirs[did] <= 0)
141 if (dp->
dirs[did] != -parent)