Lines Matching refs:xp

48 	char	*xp = Xstring(*xsp, xp);  in make_path()  local
81 XcheckN(*xsp, xp, len); in make_path()
82 memcpy(xp, cwd, len); in make_path()
83 xp += len; in make_path()
85 Xput(*xsp, xp, '/'); in make_path()
87 *phys_pathp = Xlength(*xsp, xp); in make_path()
89 XcheckN(*xsp, xp, plen); in make_path()
90 memcpy(xp, plist, plen); in make_path()
91 xp += plen; in make_path()
93 Xput(*xsp, xp, '/'); in make_path()
99 XcheckN(*xsp, xp, len); in make_path()
100 memcpy(xp, file, len); in make_path()
201 char *xp; in get_phys_path() local
203 Xinit(xs, xp, strlen(path) + 1, ATEMP); in get_phys_path()
205 xp = do_phys_path(&xs, xp, path); in get_phys_path()
207 if (!xp) in get_phys_path()
210 if (Xlength(xs, xp) == 0) in get_phys_path()
211 Xput(xs, xp, '/'); in get_phys_path()
212 Xput(xs, xp, '\0'); in get_phys_path()
214 return Xclose(xs, xp); in get_phys_path()
218 do_phys_path(XString *xsp, char *xp, const char *path) in do_phys_path() argument
225 Xcheck(*xsp, xp); in do_phys_path()
235 while (xp > Xstring(*xsp, xp)) { in do_phys_path()
236 xp--; in do_phys_path()
237 if (*xp == '/') in do_phys_path()
243 savepos = Xsavepos(*xsp, xp); in do_phys_path()
244 Xput(*xsp, xp, '/'); in do_phys_path()
245 XcheckN(*xsp, xp, len + 1); in do_phys_path()
246 memcpy(xp, p, len); in do_phys_path()
247 xp += len; in do_phys_path()
248 *xp = '\0'; in do_phys_path()
250 llen = readlink(Xstring(*xsp, xp), lbuf, sizeof(lbuf) - 1); in do_phys_path()
260 xp = lbuf[0] == '/' ? Xstring(*xsp, xp) : in do_phys_path()
261 Xrestpos(*xsp, xp, savepos); in do_phys_path()
262 if (!(xp = do_phys_path(xsp, xp, lbuf))) in do_phys_path()
265 return xp; in do_phys_path()