From: Richard M. Stallman Date: Mon, 29 Jul 2002 01:29:02 +0000 (+0000) Subject: (Fexpand_file_name) [DOS_NT]: Use the root directory X-Git-Tag: emacs-pretest-21.2.91~143 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b824d934f2fecc7df04d919cdc879503f08be1b0;p=emacs.git (Fexpand_file_name) [DOS_NT]: Use the root directory of the current drive as the fallback for default_directory. --- diff --git a/src/fileio.c b/src/fileio.c index 6326f70ed33..152364a6e82 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -1034,7 +1034,23 @@ See also the function `substitute-in-file-name'.") if (NILP (default_directory)) default_directory = current_buffer->directory; if (! STRINGP (default_directory)) - default_directory = build_string ("/"); + { +#ifdef DOS_NT + /* "/" is not considered a root directory on DOS_NT, so using "/" + here causes an infinite recursion in, e.g., the following: + + (let (default-directory) + (expand-file-name "a")) + + To avoid this, we set default_directory to the root of the + current drive. */ + extern char *emacs_root_dir (void); + + default_directory = build_string (emacs_root_dir ()); +#else + default_directory = build_string ("/"); +#endif + } if (!NILP (default_directory)) {