--- 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 Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel