Lines Matching refs:dp

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