Lines Matching defs:dir
69 cdb_advance_fd (struct cd_buf *cdb, char const *dir)
71 int new_fd = openat (cdb->fd, dir,
106 chdir_long (char *dir)
108 int e = chdir (dir);
113 size_t len = strlen (dir);
114 char *dir_end = dir + len;
126 n_leading_slash = strspn (dir, "/");
137 We already know that dir[2] is neither a slash nor '\0'. */
138 char *slash = memchr (dir + 3, '/', dir_end - (dir + 3));
145 err = cdb_advance_fd (&cdb, dir);
149 dir = find_non_slash (slash + 1);
155 dir += n_leading_slash;
158 assert (*dir != '/');
159 assert (dir <= dir_end);
161 while (PATH_MAX <= dir_end - dir)
164 /* Find a slash that is PATH_MAX or fewer bytes away from dir.
167 char *slash = memrchr (dir, '/', PATH_MAX);
175 assert (slash - dir < PATH_MAX);
176 err = cdb_advance_fd (&cdb, dir);
181 dir = find_non_slash (slash + 1);
184 if (dir < dir_end)
186 if (cdb_advance_fd (&cdb, dir) != 0)