Skip to content

Conversation

@cspotcode
Copy link
Contributor

@cspotcode cspotcode commented Nov 18, 2025

On Windows, the path to mise.exe will contain backslashes.
Both busybox.exe bash and Git-for-Windows' "Git Bash" can understand these backslash paths.
But bash syntax rules dictate that unquoted backslashes are interpreted as escapes. We must wrap the path in single-quotes to avoid this.

# In "Git Bash" or "busybox.exe bash"
# Backslash paths are accepted
$ 'G:\dev\@jdx\mise\target\debug\mise.exe' --version
...
2025.11.5-DEBUG windows-x64 (2025-11-18)

# But unqouted is broken
# because bash's syntax rules will interpret any unquoted backslashes as escapes
$ G:\dev\@jdx\mise\target\debug\mise.exe --version
bash: G:[email protected]: not found

Quoting is technically more correct on Linux, too, even though the issues it avoids -- splitting on spaces -- are largely hypothetical.1

I can't think of any way that this code change would break someone's legitimate setup on Linux or Mac.

Footnotes

  1. To be pedantic, if the path to mise includes a single-quote -- if the name of a parent directory has a single-quote in it -- then this will be broken on Linux, but it would already be broken before this code change, so we are not making it worse.

…otes

On Windows, the path will contain backslashes.
Both `busybox.exe bash` and Git Bash on Windows can understand backslash paths.
But bash syntax requires wrapping in single-quotes to avoid interpreting backslashes as escapes.
@cspotcode
Copy link
Contributor Author

Related: #6993

@jdx jdx merged commit 4a9ec4e into jdx:main Nov 18, 2025
26 checks passed
jdx pushed a commit that referenced this pull request Nov 18, 2025
### 📦 Registry

- add tbls by @artemklevtsov in
[#6987](#6987)

### 🐛 Bug Fixes

- **(nushell)** add missing `| parse env | update-env` for deactivation
operations by @jokeyrhyme in
[#6994](#6994)
- **(pwsh)** wrap the executable path with double quotes by @leosuncin
in [#6993](#6993)
- in `activate bash` output, wrap mise executable path in single-quotes
by @cspotcode in [#7002](#7002)

### 📚 Documentation

- simplify apt instructions by @scop in
[#6986](#6986)
- update idiomatic version files enablement info by @scop in
[#6985](#6985)

### 🧪 Testing

- **(aqua)** remove biome test due to version incompatibility by @jdx in
[#7000](#7000)

### 📦️ Dependency Updates

- lock file maintenance by @renovate[bot] in
[#6997](#6997)

### New Contributors

- @jokeyrhyme made their first contribution in
[#6994](#6994)
- @cspotcode made their first contribution in
[#7002](#7002)
- @artemklevtsov made their first contribution in
[#6987](#6987)
- @leosuncin made their first contribution in
[#6993](#6993)

## 📦 Aqua Registry Updates

#### New Packages (1)

-
[`houseabsolute/omegasort`](https://github.com/houseabsolute/omegasort)

#### Updated Packages (5)

- [`apache/maven`](https://github.com/apache/maven)
- [`chaqchase/lla`](https://github.com/chaqchase/lla)
- [`leoafarias/fvm`](https://github.com/leoafarias/fvm)
- [`rustic-rs/rustic`](https://github.com/rustic-rs/rustic)
- [`sigstore/rekor`](https://github.com/sigstore/rekor)
agriffis added a commit to agriffis/mise that referenced this pull request Nov 26, 2025
Blindly wrapping an interpolated value in quotes is an anti-pattern.
Properly quote the value prior to interpolation, instead.

Replaces commit 4a9ec4e from jdx#7002
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants