Commit 45ea773
authored
fix(awk): evaluate regex literals against $0 in boolean context (#827)
## Summary
- Fix awk compound patterns like `flag && /^id:/` which were ignoring
the regex
- Add `eval_expr_as_bool()` method that handles `AwkExpr::Regex` by
matching against `$0`
- Applied to `&&`, `||`, and `!` operators
## Test plan
- [x] `awk_compound_pattern_and_regex` — `flag && /^id:/` correctly
filters lines
- [x] `test_awk_gsub_with_print` — regex args to gsub still work as
pattern strings
- [x] Full test suite passes
Closes #8081 parent b357e37 commit 45ea773
File tree
2 files changed
+67
-10
lines changed- crates/bashkit
- src/builtins
- tests
2 files changed
+67
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2057 | 2057 | | |
2058 | 2058 | | |
2059 | 2059 | | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
2060 | 2073 | | |
2061 | 2074 | | |
2062 | 2075 | | |
| |||
2112 | 2125 | | |
2113 | 2126 | | |
2114 | 2127 | | |
2115 | | - | |
2116 | | - | |
| 2128 | + | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
2117 | 2138 | | |
2118 | 2139 | | |
2119 | 2140 | | |
| |||
2143 | 2164 | | |
2144 | 2165 | | |
2145 | 2166 | | |
2146 | | - | |
2147 | | - | |
2148 | | - | |
2149 | | - | |
2150 | | - | |
2151 | | - | |
| 2167 | + | |
| 2168 | + | |
| 2169 | + | |
| 2170 | + | |
2152 | 2171 | | |
2153 | | - | |
| 2172 | + | |
| 2173 | + | |
| 2174 | + | |
| 2175 | + | |
| 2176 | + | |
| 2177 | + | |
2154 | 2178 | | |
2155 | 2179 | | |
2156 | 2180 | | |
| |||
2231 | 2255 | | |
2232 | 2256 | | |
2233 | 2257 | | |
2234 | | - | |
| 2258 | + | |
| 2259 | + | |
| 2260 | + | |
| 2261 | + | |
| 2262 | + | |
| 2263 | + | |
2235 | 2264 | | |
2236 | 2265 | | |
2237 | 2266 | | |
| |||
| 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 | + | |
0 commit comments