keymanapp / keymanapp/keyman

bug(developer): Keyman Developer 17 fails to build when installed in a path with an ampersand

Open
#11,971 1 comment 0 reactions 0 assignees View on GitHub
bug developer/ low-priority wontfix
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

### Describe the bug

Keyman Developer 17 uses this ancient joke of a shell called command prompt, which fails at simple things like symbols in paths (ironic for a keyboard project heavy on symbols), so if you install it in a path containing `&` then building a keyboard invokes `kmc.cmd`, which uses command prompt and fails with a very helpful message of `The system cannot find the path specified.` without even indicating that its `kmc.cmd` that's at fault

### Reproduce the bug

1. Install Keyman Developer app on Windows in a path with `&`
2. Build any project

### Expected behavior

Just call node directly from the app, why do you need to shell out?

- No error
- More informative message

### Related issues

_No response_

### Keyman apps

- [ ] Keyman for Android
- [ ] Keyman for iPhone and iPad
- [ ] Keyman for Linux
- [ ] Keyman for macOS
- [ ] Keyman for Windows
- [X] Keyman Developer
- [ ] KeymanWeb
- [ ] Other - give details at bottom of form

### Keyman version

17.0.326

### Operating system

Windows 10

### Device

Any

### Target application

Any

### Browser

Any

### Keyboard name

Any

### Keyboard version

Any

### Language name

Any

### Additional context

Quick googling on how to escape `&` lead to nothing, tried variable substitution with `set "escapedRoot=%root:&=^&%"` etc

But symlinking to a path without `&` and launching from there works

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.