Lines Matching refs:buf
51 int index; /* index from end of buf */
104 * return value is placed in buf of len chars
105 * if buf is 0 then space is allocated via malloc() with
111 getcwd(char* buf, size_t len)
144 if (buf && !len) ERROR(EINVAL);
150 if (buf)
154 else if (!(buf = newof(0, char, namlen, len))) ERROR(ENOMEM);
155 return (char*)memcpy(buf, p, namlen);
174 if (!buf)
178 if (!(buf = newof(0, char, len, extra))) ERROR(ENOMEM);
181 p = buf + len - 1;
191 if (!(dirstk = pushdir(dirstk, dots, p, buf + len - 1))) ERROR(ERANGE);
211 if (p != buf)
213 d = buf;
215 len = d - buf;
216 if (extra >= 0 && !(buf = newof(buf, char, len, extra))) ERROR(ENOMEM);
218 if (dirstk && popdir(dirstk, buf + len - 1))
225 env[0].path = strdup(buf);
226 return buf;
250 if (namlen >= PATH_MAX || !(dirstk = pushdir(dirstk, dots + 3, p, buf + len - 1))) ERROR(ERANGE);
257 while ((p -= namlen) <= (buf + 1))
259 x = (buf + len - 1) - (p += namlen);
260 s = buf + len;
261 if (extra < 0 || !(buf = newof(buf, char, len += PATH_MAX, extra))) ERROR(ERANGE);
262 p = buf + len;
263 while (p > buf + len - 1 - x) *--p = *--s;
281 if (buf)
283 if (dirstk) popdir(dirstk, buf + len - 1);
284 if (extra >= 0) free(buf);