Comparing 4.1.1...4.1.2 · jline/jline3 (original) (raw)
Commits on May 23, 2026
- fix: echo preserves backslash before unrecognised escape sequences (fixes #1863)
The default case in processEscapeSequences was dropping the backslash
for unrecognised \X sequences like ". Now preserves the backslash,
matching POSIX echo behavior. - test: add tests for multiple and mixed unrecognized echo escapes
Cover additional edge cases for the backslash-preservation fix:
consecutive unrecognized escapes (\x\y\z) and a mix of recognized
(\n, \t) and unrecognized (") escapes in the same string.
Configuration menu
Browse the repository at this point in the history
- fix: DefaultParser preserves backslashes inside quotes (fixes #1877)
In bash, backslash is literal inside single quotes and only escapes
special characters ($, `, ", ) inside double quotes. DefaultParser
was stripping backslashes unconditionally regardless of quoting context,
which broke Windows paths like "C:\windows\path". - fix: handle edge cases in isLiteralEscapeInQuote
Allow ' to escape the quote char inside single quotes,
and treat <newline> as an escape sequence inside double quotes.
Configuration menu
Browse the repository at this point in the history
- fix: NonBlockingInputStream keeps thread alive after EOF (fixes #1879) (
#1903)
NonBlockingInputStreamImpl was exiting its reading thread permanently
when the underlying stream returned -1. On terminal fds, a -1 from
FileInputStream.read() (native read() returning 0 bytes) is not
permanent EOF and can occur when VMIN=0. The thread now stays alive
and can service subsequent reads, matching NonBlockingReaderImpl
behavior.
Configuration menu
Browse the repository at this point in the history - fix: ensure cursor position after alternate screen init (#1883) (#1904)
On Windows terminals, entering alternate screen mode via enter_ca_mode
may not reliably reset the cursor to (0,0). This caused the initial
Less render to appear blank or displaced, as Display's cursor tracking
diverged from the actual terminal cursor position.
Send cursor_home explicitly after entering alternate screen in Less,
and add cursor_address(0,0) after clear_screen in Display's reset path
to guarantee the cursor is at the expected position. Also call
display.reset() in Less to clear stale display state, matching Nano's
initialization pattern.
Configuration menu
Browse the repository at this point in the history - Configuration menu
Browse the repository at this point in the history - fix: use parser for command argument splitting (#1907)
- fix: use parser for command argument splitting (#1876)
Previously command arguments were split on whitespace, causing
quoted arguments like "part1 part2" to be parsed incorrectly.
Use Parser.parse() instead to properly handle quotes and escapes. - fix: escape backslashes in script path for parser-based argument splitting
On Windows, the parser treats backslashes in unquoted paths as escape
characters. Quote the path and escape backslashes in the test.
Co-authored-by: Elec332 6115944+Elec332@users.noreply.github.com
Configuration menu
Browse the repository at this point in the history