Subject: Re: bug#48902: 28.0.50;Directory names containing apostrophes and backticks cause problems

From: [email-masked] <[email-masked]>
Date: Tue, 08 Jun 2021 21:13:13 +0200

On Tuesday, June 08, 2021 20:18 CEST, Eli Zaretskii <[email-masked]> wrote: 
 
> > From: Mattias Engdegård <[email-masked]>
> > Date: Tue, 8 Jun 2021 19:45:22 +0200
> > Cc: [email-masked], Alan Third <[email-masked]>,
> >  Rudolf Adamkovič <[email-masked]>, [email-masked]
> > 
> > The quick fix of reverting to stringWithUTF8String: will work, but the real problem is that we have no control of the encodedness of lisp strings being passed around.
> 
> The usual technique in these cases is to keep Lisp strings unencoded,
> encode them when passing to the low-level C functions, and pass to
> those functions only the pointer to the string's data.
> 
> In those rare cases when you really need to pass a Lisp string that is
> an encoded file name, call the argument "encoded_file" or somesuch.
> But these cases should be rare exceptions.
> 
> 

I agree that [NSString stringWithLispString:] is working as expected,
and it is not the real problem.

For example, another patch using STRING_SET_MULTIBYTE() is here.
This looks still just a quick fix and bit weired, though..

attachments:
0001-Fix-to-show-images-with-non-ascii-filename-STRING_SET_MULTIBYTE.patch
image-non-ascii-filename-STRING_SET_MULTIBYTE-macos.png
image-non-ascii-filename-STRING_SET_MULTIBYTE-linux.png

On the other hand, I cannot find out that non-UTF-8 filename coding is
really needed on macOS.  It might be over-engineered thing, and just an overhead.

Regards,
--Naofumi