Mercurial > hg > xemacs-beta
diff src/buffer.c @ 4733:a5210e70ffbe
No need to fatal () on startup if $PWD doesn't exist; chdir to "/" instead.
src/ChangeLog addition:
2009-11-08 Aidan Kehoe <kehoea@parhasard.net>
* sysfile.h (DEFAULT_DIRECTORY_FALLBACK):
New #define, "/" on Unix and "C:\\" on Win32 native, a directory
that should "always" be available.
* fileio.c (Fexpand_file_name): Use DEFAULT_DIRECTORY_FALLBACK
here, instead of conditionalising on WIN32_NATIVE.
* editfns.c (get_home_directory):
Use DEFAULT_DIRECTORY_FALLBACK if looking up the home directory
fails, on both Windows and Unix.
* buffer.c (init_initial_directory):
Don't give a fatal error if the current directory doesn't exist,
chdir to DEFAULT_DIRECTORY_FALLBACK instead.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 08 Nov 2009 17:27:26 +0000 |
parents | 77138fc618a9 |
children | d261888e5069 |
line wrap: on
line diff
--- a/src/buffer.c Mon Nov 02 14:00:49 2009 +0900 +++ b/src/buffer.c Sun Nov 08 17:27:26 2009 +0000 @@ -2926,7 +2926,19 @@ { Ibyte *errmess; GET_STRERROR (errmess, errno); - fatal ("`getcwd' failed: %s\n", errmess); + stderr_out ("`getcwd' failed: %s: changing default directory to %s\n", + errmess, DEFAULT_DIRECTORY_FALLBACK); + + if (qxe_chdir (DEFAULT_DIRECTORY_FALLBACK) < 0) + { + GET_STRERROR (errmess, errno); + + fatal ("could not `chdir' to `%s': %s\n", + DEFAULT_DIRECTORY_FALLBACK, errmess); + } + + initial_directory = qxe_allocating_getcwd(); + assert (initial_directory != NULL); } /* Make sure pwd is DIRECTORY_SEP-terminated.