diff --git a/examples/large_lines.rs b/examples/large_lines.rs index 7fdc509..aa0aa2b 100644 --- a/examples/large_lines.rs +++ b/examples/large_lines.rs @@ -2,6 +2,9 @@ use minus::error::MinusError; fn main() -> Result<(), MinusError> { let output = minus::Pager::new(); + output.horizontal_scroll(true)?; + output.set_run_no_overflow(true)?; + // output.set_line_numbers(minus::LineNumbers::AlwaysOn)?; for i in 0..30 { for _ in 0..=10 { diff --git a/src/core/init.rs b/src/core/init.rs index 520fbf4..831458f 100644 --- a/src/core/init.rs +++ b/src/core/init.rs @@ -287,8 +287,7 @@ fn start_reactor( // Cleanup the screen // // This is not needed in dynamic paging because this is already handled by handle_event - let p = ps.lock(); - term::cleanup(&mut out_lock, &p.exit_strategy, true)?; + term::cleanup(&mut out_lock, &ps.lock().exit_strategy, true)?; let mut rm = RUNMODE.lock(); *rm = RunMode::Uninitialized; diff --git a/src/core/mod.rs b/src/core/mod.rs index a97446b..19097e7 100644 --- a/src/core/mod.rs +++ b/src/core/mod.rs @@ -88,6 +88,6 @@ impl RunMode { } /// Return the number of digits in `num` -pub fn digits(num: usize) -> usize { +pub const fn digits(num: usize) -> usize { (if num == 0 { 0 } else { num.ilog10() as usize }) + 1 } diff --git a/src/state.rs b/src/state.rs index 4e58500..13dd3a8 100644 --- a/src/state.rs +++ b/src/state.rs @@ -23,7 +23,6 @@ use std::collections::BTreeSet; use std::{ collections::hash_map::RandomState, collections::HashMap, - convert::TryInto, io::stdout, io::Stdout, sync::{atomic::AtomicBool, Arc}, @@ -397,7 +396,7 @@ impl PagerState { text, attachment, line_numbers: self.line_numbers, - len_line_number: new_lc_dgts.try_into().unwrap(), + len_line_number: new_lc_dgts, formatted_lines_count: self.screen.formatted_lines.len(), lines_count: old_lc, prev_unterminated: self.unterminated,