diff --git a/.github/workflows/crossterm_test.yml b/.github/workflows/crossterm_test.yml index 31123080..9088af51 100644 --- a/.github/workflows/crossterm_test.yml +++ b/.github/workflows/crossterm_test.yml @@ -68,7 +68,7 @@ jobs: continue-on-error: ${{ matrix.can-fail }} - name: Test no default features with use-dev-tty feature enabled if: matrix.os != 'windows-2019' - run: cargo test --no-default-features --features "use-dev-tty events" -- --nocapture --test-threads 1 + run: cargo test --no-default-features --features "use-dev-tty events bracketed-paste" -- --nocapture --test-threads 1 continue-on-error: ${{ matrix.can-fail }} - name: Test no default features with windows feature enabled if: matrix.os == 'windows-2019' diff --git a/CHANGELOG.md b/CHANGELOG.md index 41e438b9..f6e5b500 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,26 @@ # Unreleased -- Use Rustix by default instead of libc. Libc can be re-enabled if necessary with the libc feature flag. +# Version 0.28 + +## Added ⭐ + +- Capture double click mouse events on windows (#826) +- (De)serialize Reset color (#824) +- Add functions to allow constructing `Attributes` in a const context (#817) +- Implement `Display` for `KeyCode` and `KeyModifiers` (#862) + +## Changed ⚙️ + +- Use Rustix by default instead of libc. Libc can be re-enabled if necessary with the `libc` feature flag (#892) - `FileDesc` now requires a lifetime annotation. +- Improve available color detection (#885) +- Speed up `SetColors` by ~15-25% (#879) +- Remove unsafe and unnecessary size argument from `FileDesc::read()` (#821) + +## Breaking ⚠️ + +- Fix duplicate bit masks for caps lock and num lock (#863). + This breaks serialization of `KeyEventState` # Version 0.27.1 @@ -18,7 +37,7 @@ - Add `window_size` function to fetch pixel width/height of screen for more sophisticated rendering in terminals. - Add support for deserializing hex color strings to `Color` e.g #fffff. -## Changes +## Changed ⚙️ - Make the events module an optional feature `events` (to make crossterm more lightweight) (#776) diff --git a/Cargo.toml b/Cargo.toml index 690ab1e9..c6c0e8a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "crossterm" -version = "0.27.0" +version = "0.28.0" authors = ["T. Post"] description = "A crossplatform terminal library for manipulating terminals." repository = "https://github.com/crossterm-rs/crossterm" diff --git a/src/event.rs b/src/event.rs index 0777503b..4d28dc15 100644 --- a/src/event.rs +++ b/src/event.rs @@ -28,6 +28,7 @@ //! Blocking read: //! //! ```no_run +//! #![cfg(feature = "bracketed-paste")] //! use crossterm::{ //! event::{ //! read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste, @@ -68,6 +69,7 @@ //! Non-blocking read: //! //! ```no_run +//! #![cfg(feature = "bracketed-paste")] //! use std::{time::Duration, io}; //! //! use crossterm::{ diff --git a/src/terminal/sys/windows.rs b/src/terminal/sys/windows.rs index 2e408b5c..cd71fab8 100644 --- a/src/terminal/sys/windows.rs +++ b/src/terminal/sys/windows.rs @@ -162,7 +162,7 @@ pub(crate) fn set_size(width: u16, height: u16) -> std::io::Result<()> { let width = width as i16; if current_size.width < window.left + width { - if window.left >= i16::max_value() - width { + if window.left >= i16::MAX - width { return Err(io::Error::new( io::ErrorKind::InvalidInput, "terminal width too large", @@ -174,7 +174,7 @@ pub(crate) fn set_size(width: u16, height: u16) -> std::io::Result<()> { } let height = height as i16; if current_size.height < window.top + height { - if window.top >= i16::max_value() - height { + if window.top >= i16::MAX - height { return Err(io::Error::new( io::ErrorKind::InvalidInput, "terminal height too large",