Commit 0e6f906
authored
fix(interpreter): expand parameter operators inside arithmetic base# expressions (#1039)
## Summary
- Add `expand_param_op_in_arithmetic` to handle `${var%%-*}`,
`${var##prefix}`, etc. inside arithmetic
- Detect parameter operators in `expand_brace_expr_in_arithmetic` and
delegate to new handler
- Fixes `$(( 10#${var%%-*} ))` returning 0 instead of the correct
base-10 value
## Test plan
- [x] Spec tests: 4 cases (suffix removal, prefix removal, arithmetic,
plain var)
- [x] Full test suite passes
Closes #9441 parent 7259df4 commit 0e6f906
File tree
2 files changed
+88
-0
lines changed- crates/bashkit
- src/interpreter
- tests/spec_cases/bash
2 files changed
+88
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7610 | 7610 | | |
7611 | 7611 | | |
7612 | 7612 | | |
| 7613 | + | |
| 7614 | + | |
| 7615 | + | |
| 7616 | + | |
| 7617 | + | |
| 7618 | + | |
| 7619 | + | |
| 7620 | + | |
| 7621 | + | |
| 7622 | + | |
7613 | 7623 | | |
7614 | 7624 | | |
7615 | 7625 | | |
7616 | 7626 | | |
| 7627 | + | |
| 7628 | + | |
| 7629 | + | |
| 7630 | + | |
| 7631 | + | |
| 7632 | + | |
| 7633 | + | |
| 7634 | + | |
| 7635 | + | |
| 7636 | + | |
| 7637 | + | |
| 7638 | + | |
| 7639 | + | |
| 7640 | + | |
| 7641 | + | |
| 7642 | + | |
| 7643 | + | |
| 7644 | + | |
| 7645 | + | |
| 7646 | + | |
| 7647 | + | |
| 7648 | + | |
| 7649 | + | |
| 7650 | + | |
| 7651 | + | |
| 7652 | + | |
| 7653 | + | |
| 7654 | + | |
| 7655 | + | |
| 7656 | + | |
| 7657 | + | |
| 7658 | + | |
| 7659 | + | |
| 7660 | + | |
| 7661 | + | |
| 7662 | + | |
| 7663 | + | |
| 7664 | + | |
| 7665 | + | |
| 7666 | + | |
| 7667 | + | |
| 7668 | + | |
| 7669 | + | |
| 7670 | + | |
| 7671 | + | |
| 7672 | + | |
| 7673 | + | |
7617 | 7674 | | |
7618 | 7675 | | |
7619 | 7676 | | |
| |||
Lines changed: 31 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
0 commit comments