Subject: bug#36502: Fwd: bug#36502: 27.0.50; infinite loop in file-name-case-insensitive-p

From: Ken Brown <[email-masked]>
Date: Sun, 7 Jul 2019 19:30:00 +0000

On 7/7/2019 10:37 AM, Eli Zaretskii wrote:
>> From: Ken Brown <[email-masked]>
>> CC: "[email-masked]" <[email-masked]>, "[email-masked]"
>> 	<[email-masked]>, "[email-masked]" <[email-masked]>
>> Date: Sun, 7 Jul 2019 14:09:03 +0000
>>
>> wouldn't it be better to fix expand-file-name so that it always
>> returns an absolute name, as it's documented to do?
> 
> I think it's better, yes.  Do we have an idea for how to do that?

How's this?

--- a/src/fileio.c
+++ b/src/fileio.c
@@ -804,7 +804,11 @@ DEFUN ("expand-file-name", Fexpand_file_name, 
Sexpand_file_name, 1, 2, 0,

    /* Use the buffer's default-directory if DEFAULT_DIRECTORY is omitted.  */
    if (NILP (default_directory))
-    default_directory = BVAR (current_buffer, directory);
+    {
+      default_directory = BVAR (current_buffer, directory);
+      if (NILP (Ffile_name_absolute_p (default_directory)))
+       default_directory = Qnil;
+    }
    if (! STRINGP (default_directory))
      {
  #ifdef DOS_NT