[all-commits] [llvm/llvm-project] 362273: [clang-format] Fix path expansion inside git-clang...

Nagy-Egri Máté Ferenc via All-commits all-commits at lists.llvm.org
Wed Oct 30 00:51:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 362273d1435c0cc104418f88b0140d0388e9ee22
      https://github.com/llvm/llvm-project/commit/362273d1435c0cc104418f88b0140d0388e9ee22
  Author: Nagy-Egri Máté Ferenc <beiktatas+github at outlook.hu>
  Date:   2024-10-30 (Wed, 30 Oct 2024)

  Changed paths:
    M clang/tools/clang-format/git-clang-format.bat

  Log Message:
  -----------
  [clang-format] Fix path expansion inside git-clang-format.bat (#114078)

The trampoline script used on Windows (due to the absence of shebang
support) doesn't properly expand the path to the Python script, as it
leaves out the drive letter.

Functionally equivalent reproducer in action
```
PS C:\Users\mate> gc (gcm git-clang-formatish.bat).Source
@ECHO OFF
echo "%~pn0" %*
PS C:\Users\mate> git-clang-formatish
"\Users\mate\git-clang-formatish"
```

Adding `d` to the variable modifiers [as per the
docs](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/for)
the drive letter is added. Even in the magical cases when it works.

(I couldn't reproduce, but I suspect it's only tested from some
bash/cygwin variant, where the path becomes `/c/Program Files/...`, but
the drive letter is needed. Without it, I also observed cases when used
via `git clang-format` (without the inital dash) it tries to infer the
drive letter based on the current working directory. In that case it
fails to find `D:\Program Files\LLVM\bin\clang-format.exe`, which
naturally fails, because `Program Files` is on `C:`)



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list