Lines Matching refs:dp

43 	struct directory *dp;  in dinit()  local
65 dp = (struct directory *)xcalloc(sizeof (struct directory), 1); in dinit()
66 dp->di_name = savestr(cp); in dinit()
67 dp->di_count = 0; in dinit()
68 dhead.di_next = dhead.di_prev = dp; in dinit()
69 dp->di_next = dp->di_prev = &dhead; in dinit()
71 dnewcwd(dp); in dinit()
80 struct directory *dp; in dodirs() local
96 dp = dcwd; in dodirs()
98 if (dp == &dhead) in dodirs()
101 dtildepr(hp, dp->di_name); in dodirs()
103 printf("%t", dp->di_name); in dodirs()
105 } while ((dp = dp->di_prev) != dcwd); in dodirs()
129 struct directory *dp; in dochngd() local
141 } else if ((dp = dfind(*v)) != 0) { in dochngd()
143 if (chdir_(dp->di_name) < 0) in dochngd()
144 Perror(dp->di_name); in dochngd()
150 dp = (struct directory *)xcalloc(sizeof (struct directory), 1); in dochngd()
151 dp->di_name = cp; in dochngd()
152 dp->di_count = 0; in dochngd()
153 dp->di_next = dcwd->di_next; in dochngd()
154 dp->di_prev = dcwd->di_prev; in dochngd()
155 dp->di_prev->di_next = dp; in dochngd()
156 dp->di_next->di_prev = dp; in dochngd()
159 dnewcwd(dp); in dochngd()
168 tchar *dp; in dfollow() local
205 for (dp = buf, p = *cdp; *dp++ = *p++; ) in dfollow()
207 dp[-1] = '/'; in dfollow()
208 for (p = cp; *dp++ = *p++; ) in dfollow()
272 for (dp = buf, p = *pv; *dp++ = *p++; ) in dfollow()
274 dp[-1] = '/'; in dfollow()
275 for (p = cp; *dp++ = *p++; ) in dfollow()
293 dp = value(cp); in dfollow()
294 if ((dp[0] == '/' || dp[0] == '.') && chdir_(dp) >= 0) { in dfollow()
296 cp = savestr(dp); in dfollow()
345 dp = (tchar *)xalloc((unsigned)(cwdlen + len + 2) * sizeof (tchar)); in dfollow()
346 for (p = dp, q = dcwd->di_name; *p++ = *q++; ) in dfollow()
355 cp = dp; in dfollow()
356 dp += cwdlen; in dfollow()
358 dp = cp; in dfollow()
359 return dcanon(cp, dp); in dfollow()
370 struct directory *dp; in dopushd() local
377 if ((dp = dcwd->di_prev) == &dhead) in dopushd()
378 dp = dhead.di_prev; in dopushd()
379 if (dp == dcwd) in dopushd()
381 if (chdir_(dp->di_name) < 0) in dopushd()
382 Perror(dp->di_name); in dopushd()
383 dp->di_prev->di_next = dp->di_next; in dopushd()
384 dp->di_next->di_prev = dp->di_prev; in dopushd()
385 dp->di_next = dcwd->di_next; in dopushd()
386 dp->di_prev = dcwd; in dopushd()
387 dcwd->di_next->di_prev = dp; in dopushd()
388 dcwd->di_next = dp; in dopushd()
389 } else if (dp = dfind(*v)) { in dopushd()
390 if (chdir_(dp->di_name) < 0) in dopushd()
391 Perror(dp->di_name); in dopushd()
396 dp = (struct directory *)xcalloc(sizeof (struct directory), 1); in dopushd()
397 dp->di_name = cp; in dopushd()
398 dp->di_count = 0; in dopushd()
399 dp->di_prev = dcwd; in dopushd()
400 dp->di_next = dcwd->di_next; in dopushd()
401 dcwd->di_next = dp; in dopushd()
402 dp->di_next->di_prev = dp; in dopushd()
404 dnewcwd(dp); in dopushd()
413 struct directory *dp; in dfind() local
429 for (dp = dcwd; i != 0; i--) { in dfind()
430 if ((dp = dp->di_prev) == &dhead) in dfind()
431 dp = dp->di_prev; in dfind()
432 if (dp == dcwd) in dfind()
435 return (dp); in dfind()
445 struct directory *dp, *p; in dopopd() local
452 dp = dcwd; in dopopd()
453 else if ((dp = dfind(*v)) == 0) in dopopd()
455 if (dp->di_prev == &dhead && dp->di_next == &dhead) in dopopd()
457 if (dp == dcwd) { in dopopd()
458 if ((p = dp->di_prev) == &dhead) in dopopd()
463 dp->di_prev->di_next = dp->di_next; in dopopd()
464 dp->di_next->di_prev = dp->di_prev; in dopopd()
465 if (dp == dcwd) in dopopd()
469 dfree(dp); in dopopd()
476 dfree(struct directory *dp) in dfree() argument
482 if (dp->di_count != 0) in dfree()
483 dp->di_next = dp->di_prev = 0; in dfree()
485 xfree(dp->di_name), xfree((tchar *)dp); in dfree()
722 dnewcwd(struct directory *dp) in dnewcwd() argument
728 dcwd = dp; in dnewcwd()