From 2071df126c88adf0119bd74d46e69ca30ccf778e Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Sat, 17 May 2025 07:30:33 +0200 Subject: [PATCH] Idiomatic type for reader_readline nchars argument --- src/builtins/read.rs | 3 ++- src/reader.rs | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/builtins/read.rs b/src/builtins/read.rs index b386cc8f4..b706a5e5b 100644 --- a/src/builtins/read.rs +++ b/src/builtins/read.rs @@ -28,6 +28,7 @@ use crate::wutil::encoding::zero_mbstate; use crate::wutil::perror; use libc::SEEK_CUR; +use std::num::NonZeroUsize; use std::os::fd::RawFd; use std::sync::atomic::Ordering; @@ -244,7 +245,7 @@ fn read_interactive( let mline = { let _interactive = parser.push_scope(|s| s.is_interactive = true); - reader_readline(parser, nchars) + reader_readline(parser, NonZeroUsize::try_from(nchars).ok()) }; terminal_protocols_disable_ifn(); if let Some(line) = mline { diff --git a/src/reader.rs b/src/reader.rs index 07cf68358..2d96c4c8d 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1060,12 +1060,11 @@ pub fn reader_reading_interrupted(data: &mut ReaderData) -> i32 { } /// Read one line of input. Before calling this function, reader_push() must have been called in -/// order to set up a valid reader environment. If nchars > 0, return after reading that many +/// order to set up a valid reader environment. If nchars is given, return after reading that many /// characters even if a full line has not yet been read. Note: the returned value may be longer /// than nchars if a single keypress resulted in multiple characters being inserted into the /// commandline. -pub fn reader_readline(parser: &Parser, nchars: usize) -> Option { - let nchars = NonZeroUsize::try_from(nchars).ok(); +pub fn reader_readline(parser: &Parser, nchars: Option) -> Option { let data = current_data().unwrap(); let mut reader = Reader { parser, data }; reader.readline(nchars)