How about the following instead... It is far cleaner and easier to
understand.
int buf_size = 100;
while (1)
{
buf = (char *) xmalloc (buf_size);
if (getcwd (buf, buf_size) == buf)
break;
if (errno != ERANGE)
{
free (buf);
fatal ("`getcwd' failed: %s\n", strerror (errno));
}
size *= 2;
}
and leaks memory. If the path is 400, you do 3 mallocs, but the
first two are never freed.
Jan D.
_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel