Lines Matching defs:dir
72 cdb_advance_fd (struct cd_buf *cdb, char const *dir)
74 int new_fd = openat (cdb->fd, dir,
109 chdir_long (char *dir)
111 int e = chdir (dir);
116 size_t len = strlen (dir);
117 char *dir_end = dir + len;
129 n_leading_slash = strspn (dir, "/");
140 We already know that dir[2] is neither a slash nor '\0'. */
141 char *slash = memchr (dir + 3, '/', dir_end - (dir + 3));
148 err = cdb_advance_fd (&cdb, dir);
152 dir = find_non_slash (slash + 1);
158 dir += n_leading_slash;
161 assert (*dir != '/');
162 assert (dir <= dir_end);
164 while (PATH_MAX <= dir_end - dir)
167 /* Find a slash that is PATH_MAX or fewer bytes away from dir.
170 char *slash = memrchr (dir, '/', PATH_MAX);
178 assert (slash - dir < PATH_MAX);
179 err = cdb_advance_fd (&cdb, dir);
184 dir = find_non_slash (slash + 1);
187 if (dir < dir_end)
189 if (cdb_advance_fd (&cdb, dir) != 0)