keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
386 stars 107 forks source link

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

Open eugenesvk opened 1 month ago

eugenesvk commented 1 month ago

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?

Related issues

No response

Keyman apps

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

mcdurdin commented 1 month ago

Thanks for the feedback. We won't attempt to fix this, as we are investing in a new web-based IDE for the future, and as you noted, a workaround is to not use a folder with symbols in the name. I will leave the issue open though, as documentation of the workaround.