Context
PR #1959 added org.jline.terminal.softwareSignals (default true) to restore terminal.handle(Signal.INT, ...) behavior after #1912 cleared ISIG in enterRawMode().
The default is true for backward compatibility in 4.1.x, but the long-term goal is to align with native terminal behavior where the application handles raw bytes itself.
Proposed changes for 5.0.0
- Change the default of
org.jline.terminal.softwareSignals from true to false
- Deprecate the property — in pure native mode, signal byte interception should not be needed; applications should use the LineReader INTERRUPT widget or handle raw bytes directly
- Document the migration in release notes — users relying on
terminal.handle(Signal.INT, ...) in raw mode will need to either:
- Set
-Dorg.jline.terminal.softwareSignals=true explicitly
- Switch to LineReader's INTERRUPT widget
- Handle byte
0x03 (Ctrl+C) in their own input processing loop
Context
PR #1959 added
org.jline.terminal.softwareSignals(defaulttrue) to restoreterminal.handle(Signal.INT, ...)behavior after #1912 cleared ISIG inenterRawMode().The default is
truefor backward compatibility in 4.1.x, but the long-term goal is to align with native terminal behavior where the application handles raw bytes itself.Proposed changes for 5.0.0
org.jline.terminal.softwareSignalsfromtruetofalseterminal.handle(Signal.INT, ...)in raw mode will need to either:-Dorg.jline.terminal.softwareSignals=trueexplicitly0x03(Ctrl+C) in their own input processing loop