Mercurial > hg > xemacs-beta
changeset 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 | 2491a837112c |
children | 74a5eaa67982 |
files | src/ChangeLog src/buffer.c src/editfns.c src/fileio.c src/sysfile.h |
diffstat | 5 files changed, 37 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Mon Nov 02 14:00:49 2009 +0900 +++ b/src/ChangeLog Sun Nov 08 17:27:26 2009 +0000 @@ -1,3 +1,17 @@ +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. + 2009-11-02 Stephen Turnbull <stephen@xemacs.org> Fix issue145.
--- 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.
--- a/src/editfns.c Mon Nov 02 14:00:49 2009 +0900 +++ b/src/editfns.c Sun Nov 08 17:27:26 2009 +0000 @@ -862,20 +862,15 @@ homepath); } else +#endif /* !WIN32_NATIVE */ { - cached_home_directory = qxestrdup ((Ibyte *) "C:\\"); + /* Unix, typically. + Using "/" isn't quite right, but what should we do? + We probably should try to extract pw_dir from /etc/passwd, + before falling back to this. */ + cached_home_directory = qxestrdup (DEFAULT_DIRECTORY_FALLBACK); output_home_warning = 1; } -#else /* !WIN32_NATIVE */ - /* - * Unix, typically. - * Using "/" isn't quite right, but what should we do? - * We probably should try to extract pw_dir from /etc/passwd, - * before falling back to this. - */ - cached_home_directory = qxestrdup ((Ibyte *) "/"); - output_home_warning = 1; -#endif /* !WIN32_NATIVE */ } if (initialized && output_home_warning) {
--- a/src/fileio.c Mon Nov 02 14:00:49 2009 +0900 +++ b/src/fileio.c Sun Nov 08 17:27:26 2009 +0000 @@ -790,11 +790,7 @@ if (NILP (default_directory)) default_directory = current_buffer->directory; if (! STRINGP (default_directory)) -#ifdef WIN32_NATIVE - default_directory = build_string ("C:\\"); -#else - default_directory = build_string ("/"); -#endif + default_directory = build_string (DEFAULT_DIRECTORY_FALLBACK); if (!NILP (default_directory)) {
--- a/src/sysfile.h Mon Nov 02 14:00:49 2009 +0900 +++ b/src/sysfile.h Sun Nov 08 17:27:26 2009 +0000 @@ -490,6 +490,8 @@ /* The above Lisp variables are not available to make-docfile, etc. */ #define DIRECTORY_SEP DEFAULT_DIRECTORY_SEP +#define DEFAULT_DIRECTORY_FALLBACK ((Ibyte *)"C:\\") + #endif /* emacs */ #else /* not WIN32_NATIVE */ @@ -497,6 +499,7 @@ #define SEPCHAR ':' #define DEFAULT_DIRECTORY_SEP '/' #define DIRECTORY_SEP '/' +#define DEFAULT_DIRECTORY_FALLBACK ((Ibyte *)"/") #endif /* WIN32_NATIVE */