paulk-asert opened a new pull request, #2865: URL: https://github.com/apache/groovy/pull/2865
… fix /ls wrote file names and symlink targets into styled terminal output as they came off disk. A name is data supplied by whoever created it, not text the user asked to render, so an escape sequence embedded in one is executed by the terminal - hiding output, spoofing what is displayed, or reaching an emulator bug. coreutils and BSD ls quote such characters for this reason. JLine fixed this upstream in 4.4.1 (jline#2200) and Groovy does not receive it: GroovyPosixCommands is a fork, and Main.posixCommand dispatches /ls, /wc, /head, /tail and /grep to it, registering JLine's implementations only so their --help text can be read. Bumping the dependency upgrades code these commands never run. The helper and its ten call sites are therefore ported here, matching upstream one for one. Ported rather than improved on, deliberately. Upstream strips the control characters; coreutils quotes them, which preserves the distinction between two names that differ only by what was stripped. Quoting may well be better, but rewriting it here is how this file drifted far enough to miss the fix in the first place - that argument belongs upstream, where everyone would get the result. Stripping removes the ESC that makes a sequence a command and leaves the printable remainder, which is inert; the tests assert exactly that, since the surrounding output legitimately carries escapes of its own for colour. jline#2052, which restricts getSources to local jar: archives, is not ported: this fork has no jar: branch to restrict. The lasting fix for both is to stop forking - see the register's note on teaching upstream getSources to read a variable, which would let this file be deleted and take this patch with it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
