You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
E003 checks only the IF condition, so a valid line such as if "%1"=="" set X=1 or if ... echo a = b is no longer a fatal error
--format json keeps skipped-file details in the JSON report. When every file is skipped, stdout is still JSON
S028 leaves parentheses in place when the group chains commands with & or |
P022 and P023 apply only inside a FOR block, including a one-line for ... do
W004 allows the usual shift loop that exits when the next argument is empty
P006 no longer requires ENDLOCAL before a top-level exit /b. Ending the batch file ends SETLOCAL
A UTF-16 BOM is decoded as UTF-16. NUL bytes that are not valid UTF-8, UTF-16, or UTF-32 raise one encoding error instead of being read as cp1252
Directory scans accept .BAT and .CMD on case-sensitive filesystems
Piping output to a program that closes the pipe exits quietly
The installer treats a PATH entry as present only when the segment matches exactly
Changed
CALL and GOTO checks remember the first line that targets each label, and sort label definitions once per file
The performance gate uses the current synthetic timing and a second file with 2000 labels and unique CALL targets. A case fails when it takes more than twice that median
Source distributions omit the tests/ tree. Tests run from a git checkout
GitHub Actions are pinned to commit SHAs, and PyPI publishing pins Twine 7.0.0