Merge develop into main for v0.1.19 release#14
Merged
Merged
Conversation
…th (closes #9) 0.1.17 carved out command-position detection from the Git Bash bake- mode dispatcher so the Ctrl+C fix (#7) could ship as a focused release. As a result, on Git Bash any trailing token matching an abbreviation expanded regardless of context — `echo gst<Space>` expanded `gst` even though the user clearly wanted it as an argument to `echo`. The Linux / WSL exec path has always honoured `is_command_position`, so the trade-off was Git-Bash-only. Fix: bake dispatcher reproduces `domain::hook::is_command_position` in pure bash via `__runex_cyg_is_command_position`: a `case` over the four pipeline operators (`&&`, `||`, `|`, `;`) plus a trailing-`sudo` recursion that defers to the same operator check. The bake path produces the byte-equivalent buffer rewrite as the exec path for every input. Same PR also switches the `__runex_cyg_expand` prefix computation from `${left%$token}` to a substring slice. The old form treated the token as a `%` glob pattern, so a token containing `?` / `*` / `[` would strip an unintended portion of the left side. The new substring form is byte-faithful regardless of token contents. Tests: - 5 new unit tests in bash_static_dispatcher::tests pin the generated helper structure. - 5 new Linux PTY tests in bash_cygwin_bake_pty.rs for argument position (no expand) and each command-position prefix. - 4 new Windows-local smokes drive __runex_expand directly on every cygwin-family bash installed. - 1 new exec-path PTY test mirrors the bake-path counterpart so parity is visible in one diff. - Manual verify on Git Bash 0.1.19: echo gst<Space> no longer expands; sudo gst<Space> still does; gst<Space> still does; Ctrl+C after expansion still clean (#7 regression check). Docs: - docs/setup.{md,ja.md} troubleshooting item 7 (Git Bash 0.1.17 interim trade-off) removed. - Module docstring swaps trade-off section for parity note. Bump 0.1.18 → 0.1.19 + Cargo.lock + CHANGELOG. Closes #9.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release 0.1.19 ships the Issue #9 closeout of the 0.1.17 Git Bash bake-path trade-off.
domain::hook::is_command_positionin pure bash (__runex_cyg_is_command_position) — acaseover the four pipeline operators plus a trailing-sudorecursion. The bake path produces the same buffer rewrite as the exec path for every input.__runex_cyg_expand's prefix computation from${left%$token}to a substring slice so a token containing?/*/[no longer triggers a%glob misinterpretation.Tests
bash_static_dispatcher::testsbash_cygwin_bake_pty.rsbash_gitbash_smoke.rsbash_pty_integration.rsecho gst<Space>no longer expands;sudo gst<Space>still does; Ctrl+C after expansion still works (Git Bash: bind -x line buffer not cleared by Ctrl+C after expansion #7 regression check passes)Test plan
v0.1.19push triggersrelease.ymlrunex-binbumprunexsource bumpCloses #9.