Subject: bug#65685: 29.1; Inconsistent behavior of quoted file name "/:~" across platforms

From: Michael Albinus <[email-masked]>
Date: Sat, 14 Oct 2023 12:56:07 +0200

Eli Zaretskii <[email-masked]> writes:

Hi Eli,

>> So with the patch you merged to Tramp, plus your other one for
>> "lisp/files.el", I think this is all working consistently now.
>
> The added test fails on MS-Windows:
>
>   Test files-tests-file-name-non-special-expand-file-name-tilde condition:
>       (ert-test-failed
>        ((should
> 	 (equal
> 	  (expand-file-name nospecial)
> 	  (expand-file-name ...)))
> 	:form
> 	(equal "/:c:/Documents and Settings/Zaretzky/Local Settings/Temp/files-testsvIKNPk/files-testse2cUFY" "c:/Documents and Settings/Zaretzky/Local Settings/Temp/files-testsvIKNPk/files-testse2cUFY")
> 	:value nil :explanation
> 	(arrays-of-different-length 92 90 "/:c:/Documents and Settings/Zaretzky/Local Settings/Temp/files-testsvIKNPk/files-testse2cUFY" "c:/Documents and Settings/Zaretzky/Local Settings/Temp/files-testsvIKNPk/files-testse2cUFY" first-mismatch-at 0)))
>
> I tried to understand the idea of the change, or even the actual root
> cause of the problem, but couldn't find that in the discussion or the
> code.  It doesn't help that file-name-non-special has no doc string
> and no documentation I could find about what it's supposed to do.
>
> Let's please discuss this now, because I tend just to revert the
> change on the emacs-29 branch, as it's too late there for untested
> ideas for obscure problems.

I cannot reproduce the problem. My environment:

- MS Windows 10 VM
- MSYS2 MinGW 64-bit
- A fresh git checkout of the master branch, at commit
  548bc3e3d18ea6776032ca83dafbc89e3ddb5a5a
- Emacs recompiled, it reports "GNU Emacs 30.0.50 (build 13,
  x86_64-w64-mingw32) of 2023-10-14"
- Running "$ make -C test files-tests" yields

--8<---------------cut here---------------start------------->8---
Ran 113 tests, 111 results as expected, 0 unexpected, 2 skipped (2023-10-14 12:49:06+0200, 7.219525 sec)

2 skipped results:
  SKIPPED  files-tests-file-name-non-special--subprocess
  SKIPPED  files-tests-file-name-non-special-dired-compress-handler
--8<---------------cut here---------------end--------------->8---

What is the difference to your setup?

Best regards, Michael.