Commit e3d814c
feat(builtins): implement set -o / set +o option display (#257)
## Summary
- Implement `set -o` human-readable option display (name + on/off)
- Implement `set +o` re-executable option display (`set -/+o name`)
- Format matches real bash exactly (15-char padded name, tab separator)
## Changes
- `crates/bashkit/src/builtins/vars.rs`: Add `SET_O_OPTIONS` list,
`format_set_dash_o()`, `format_set_plus_o()`, handle bare `-o`/`+o` in
Set execute
- `crates/bashkit/tests/spec_cases/bash/variables.test.sh`: 6 new spec
tests
- `specs/009-implementation-status.md`: Update test counts (variables
86→92, Bash 900→906, Total 1318→1324)
## Test plan
- [x] `cargo test --all-features` passes (including bash comparison
tests)
- [x] `cargo fmt --check` clean
- [x] `cargo clippy --all-targets --all-features -- -D warnings` clean
- [x] Output format verified against real bash byte-for-byte
Co-authored-by: Claude <noreply@anthropic.com>1 parent 966071f commit e3d814c
File tree
3 files changed
+97
-7
lines changed- crates/bashkit
- src/builtins
- tests/spec_cases/bash
- specs
3 files changed
+97
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
51 | 85 | | |
52 | 86 | | |
53 | 87 | | |
| |||
69 | 103 | | |
70 | 104 | | |
71 | 105 | | |
72 | | - | |
| 106 | + | |
73 | 107 | | |
74 | | - | |
75 | | - | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
76 | 111 | | |
77 | 112 | | |
78 | 113 | | |
79 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
80 | 123 | | |
81 | 124 | | |
82 | 125 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
672 | 672 | | |
673 | 673 | | |
674 | 674 | | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
106 | | - | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
110 | | - | |
| 110 | + | |
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | 115 | | |
116 | | - | |
| 116 | + | |
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
| 160 | + | |
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
| |||
0 commit comments