Skip to content

Change default of org.jline.terminal.softwareSignals to false #1960

Description

@gnodet

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

  1. Change the default of org.jline.terminal.softwareSignals from true to false
  2. 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
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions