--- src/buffer.c.old 2005-07-28 19:14:42.000000000 +0200
+++ src/buffer.c 2005-07-30 03:20:36.000000000 +0200
...
+ {
+ int buf_size = 2;
+ buf = xmalloc (buf_size);
+ for(;;)
+ {
+ if(getcwd (buf, buf_size) == 0)
+ {
+ if(errno == ERANGE)
+ {
+ buf_size *= 2;
+ buf = xrealloc (buf, buf_size);
+ }
+ else
+ fatal ("`getcwd' failed: %s\n", strerror (errno));
+ }
+ else
+ break;
+ }
+
+ }
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;
}
_______________________________________________
Emacs-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-devel