Subject: Re: bug#56443: 28.1; Mac segmentation fault with ffap

From: Eli Zaretskii <[email-masked]>
Date: Fri, 08 Jul 2022 13:47:31 +0300

> From: Stephen Eglen <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked]
> Date: Fri, 08 Jul 2022 11:02:20 +0100
> 
> Thanks everyone for help debugging this.
>  
> > BTW, I don't really understand the semantics of
> > file-name-case-insensitive-p.  The docstring says that it returns nil if
> > the file is not found, but these calls return t on my system:
> >
> > (file-name-case-insensitive-p "")
> > (file-name-case-insensitive-p "FileThatDoesNotExist")
> 
> I also find that those two expressions return t on my mac, and nil on my
> linux machine.  This seems to be consistent with the doc string:
> 
> 
>   Return t if file FILENAME is on a case-insensitive filesystem.  Return
>   nil if FILENAME does not exist or is not on a case-insensitive
>   filesystem, or if there was trouble determining whether the filesystem
>   is case-insensitive.
> 
> It returns t on mac as it is case-insensitive by default, presumbly
> irrespective of whether the file exists.
> 
> One small suggestion for the docstring might be to remove the double
> negative in the second sentence:
> 
> "is not on a case-insensitive filesystem"
> 
> could be
> 
> "is on a case-sensitive filesystem"

No, that's not accurate either.  What we need to say that if the file
doesn't exist, we _might_ return nil, unless it's known in advance
that _all_ filesystems are case-insensitive.