Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor upgrade to crossterm 0.28 #898

Merged
merged 6 commits into from
Jul 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/crossterm_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
23 changes: 21 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 2 additions & 0 deletions src/event.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
//! Blocking read:
//!
//! ```no_run
//! #![cfg(feature = "bracketed-paste")]
//! use crossterm::{
//! event::{
//! read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture, EnableBracketedPaste,
Expand Down Expand Up @@ -68,6 +69,7 @@
//! Non-blocking read:
//!
//! ```no_run
//! #![cfg(feature = "bracketed-paste")]
//! use std::{time::Duration, io};
//!
//! use crossterm::{
Expand Down
4 changes: 2 additions & 2 deletions src/terminal/sys/windows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down
Loading