/* getcwd --- get path name of current working directory */ char *getcwd (buf, size) char *buf; int size; { char *malloc(); char *cp; auto int used_malloc = FALSE; if (follow ("", 0) == ERR) return (NULL); if (buf == NULL) if (size <= 1) return NULL; else if ((cp = malloc (size)) == NULL) /* error */ return NULL; else used_malloc = TRUE; else cp = buf; if (gcdir$ (cp) == ERR) { if (used_malloc) free (cp); return NULL; } else return cp; }