mirror of
https://github.com/sharkdp/hexyl.git
synced 2026-10-26 20:16:34 +00:00
Rename --columns to --panels
This commit is contained in:
1 parent
6b062ba127
commit
12324d615a
2 files changed
+46
-46
No files matched your search
+26
-26
@@ -153,14 +153,14 @@ fn run() -> Result<(), AnyhowError> {
|
||||
),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("columns")
|
||||
.short('w')
|
||||
.long("columns")
|
||||
Arg::new("panels")
|
||||
.short('p')
|
||||
.long("panels")
|
||||
.takes_value(true)
|
||||
.value_name("N")
|
||||
.help(
|
||||
"Sets the number of hex data columns to be displayed. \
|
||||
`--columns=auto` will display the maximum number of hex data columns \
|
||||
"Sets the number of hex data panels to be displayed. \
|
||||
`--panels=auto` will display the maximum number of hex data panels \
|
||||
based on the current terminal width",
|
||||
),
|
||||
)
|
||||
@@ -170,11 +170,11 @@ fn run() -> Result<(), AnyhowError> {
|
||||
.long("terminal-width")
|
||||
.takes_value(true)
|
||||
.value_name("N")
|
||||
.conflicts_with("columns")
|
||||
.conflicts_with("panels")
|
||||
.help(
|
||||
"Sets the number of terminal columns to be displayed.\nSince the terminal \
|
||||
width may not be an evenly divisible by the width per hex data column, this \
|
||||
will use the greatest number of hex data columns that can fit in the requested \
|
||||
will use the greatest number of hex data panels that can fit in the requested \
|
||||
width but still leave some space to the right.\nCannot be used with other \
|
||||
width-setting options.",
|
||||
),
|
||||
@@ -296,7 +296,7 @@ fn run() -> Result<(), AnyhowError> {
|
||||
.transpose()?
|
||||
.unwrap_or(0);
|
||||
|
||||
let max_columns_fn = |terminal_width: u16| {
|
||||
let max_panels_fn = |terminal_width: u16| {
|
||||
let offset = if show_position_panel { 10 } else { 1 };
|
||||
let col_width = if show_char_panel { 35 } else { 26 };
|
||||
if (terminal_width - offset) / col_width < 1 {
|
||||
@@ -306,32 +306,32 @@ fn run() -> Result<(), AnyhowError> {
|
||||
}
|
||||
};
|
||||
|
||||
let columns = if matches.value_of("columns") == Some("auto") {
|
||||
max_columns_fn(terminal_size().ok_or_else(|| anyhow!("not a TTY"))?.0 .0)
|
||||
} else if let Some(columns) = matches
|
||||
.value_of("columns")
|
||||
let panels = if matches.value_of("panels") == Some("auto") {
|
||||
max_panels_fn(terminal_size().ok_or_else(|| anyhow!("not a TTY"))?.0 .0)
|
||||
} else if let Some(panels) = matches
|
||||
.value_of("panels")
|
||||
.map(|s| {
|
||||
s.parse::<NonZeroU16>().map(u16::from).context(anyhow!(
|
||||
"failed to parse `--columns` arg {:?} as unsigned nonzero integer",
|
||||
"failed to parse `--panels` arg {:?} as unsigned nonzero integer",
|
||||
s
|
||||
))
|
||||
})
|
||||
.transpose()?
|
||||
{
|
||||
columns
|
||||
panels
|
||||
} else if let Some(terminal_width) = matches
|
||||
.value_of("terminal_width")
|
||||
.map(|s| {
|
||||
s.parse::<NonZeroU16>().map(u16::from).context(anyhow!(
|
||||
.value_of("terminal_width")
|
||||
.map(|s| {
|
||||
s.parse::<NonZeroU16>().map(u16::from).context(anyhow!(
|
||||
"failed to parse `--terminal-width` arg {:?} as unsigned nonzero integer",
|
||||
s
|
||||
))
|
||||
})
|
||||
.transpose()?
|
||||
{
|
||||
max_columns_fn(terminal_width)
|
||||
} else {
|
||||
2
|
||||
s
|
||||
))
|
||||
})
|
||||
.transpose()?
|
||||
{
|
||||
max_panels_fn(terminal_width)
|
||||
} else {
|
||||
2
|
||||
};
|
||||
|
||||
let stdout = io::stdout();
|
||||
@@ -344,7 +344,7 @@ fn run() -> Result<(), AnyhowError> {
|
||||
show_position_panel,
|
||||
border_style,
|
||||
squeeze,
|
||||
columns,
|
||||
panels,
|
||||
);
|
||||
printer.display_offset(skip_offset + display_offset);
|
||||
printer.print_all(&mut reader).map_err(|e| anyhow!(e))?;
|
||||
|
||||
+20
-20
@@ -155,7 +155,7 @@ pub struct Printer<'a, Writer: Write> {
|
||||
squeezer: Squeezer,
|
||||
display_offset: u64,
|
||||
/// The number of panels to draw.
|
||||
columns: u16,
|
||||
panels: u16,
|
||||
}
|
||||
|
||||
impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
@@ -166,7 +166,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
show_position_panel: bool,
|
||||
border_style: BorderStyle,
|
||||
use_squeeze: bool,
|
||||
columns: u16,
|
||||
panels: u16,
|
||||
) -> Printer<'a, Writer> {
|
||||
Printer {
|
||||
idx: 1,
|
||||
@@ -202,9 +202,9 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
.collect()
|
||||
})
|
||||
.unwrap_or_default(),
|
||||
squeezer: Squeezer::new(use_squeeze, 8 * columns as u64),
|
||||
squeezer: Squeezer::new(use_squeeze, 8 * panels as u64),
|
||||
display_offset: 0,
|
||||
columns,
|
||||
panels,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,7 +227,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
write!(self.writer, "{}", l).ok();
|
||||
}
|
||||
|
||||
for _ in 0..self.columns - 1 {
|
||||
for _ in 0..self.panels - 1 {
|
||||
write!(self.writer, "{h25}{c}", h25 = h25, c = c).ok();
|
||||
}
|
||||
if self.show_char_panel {
|
||||
@@ -237,7 +237,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
}
|
||||
|
||||
if self.show_char_panel {
|
||||
for _ in 0..self.columns - 1 {
|
||||
for _ in 0..self.panels - 1 {
|
||||
write!(self.writer, "{h8}{c}", h8 = h8, c = c).ok();
|
||||
}
|
||||
writeln!(self.writer, "{h8}{r}", h8 = h8, r = r).ok();
|
||||
@@ -301,16 +301,16 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
self.byte_char_panel[b as usize]
|
||||
);
|
||||
|
||||
if idx % 8 == 0 && idx % (u64::from(self.columns) * 8) != 0 {
|
||||
if idx % 8 == 0 && idx % (u64::from(self.panels) * 8) != 0 {
|
||||
let _ = write!(&mut self.buffer_line, "{}", self.border_style.inner_sep());
|
||||
}
|
||||
|
||||
idx += 1;
|
||||
}
|
||||
|
||||
if len < usize::from(8 * self.columns) {
|
||||
if len < usize::from(8 * self.panels) {
|
||||
let _ = write!(&mut self.buffer_line, "{0:1$}", "", 8 - len % 8);
|
||||
for _ in 0..(usize::from(8 * self.columns) - (len + (8 - len % 8))) / 8 {
|
||||
for _ in 0..(usize::from(8 * self.panels) - (len + (8 - len % 8))) / 8 {
|
||||
let _ = write!(
|
||||
&mut self.buffer_line,
|
||||
"{2}{0:1$}",
|
||||
@@ -324,7 +324,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
}
|
||||
|
||||
pub fn print_byte(&mut self, b: u8) -> io::Result<()> {
|
||||
if self.idx % (u64::from(self.columns) * 8) == 1 {
|
||||
if self.idx % (u64::from(self.panels) * 8) == 1 {
|
||||
self.print_header();
|
||||
self.print_position_panel();
|
||||
}
|
||||
@@ -334,7 +334,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
|
||||
self.squeezer.process(b, self.idx);
|
||||
|
||||
if self.idx % (u64::from(self.columns) * 8) == 0 {
|
||||
if self.idx % (u64::from(self.panels) * 8) == 0 {
|
||||
self.print_textline()?;
|
||||
} else if self.idx % 8 == 0 {
|
||||
let _ = write!(&mut self.buffer_line, "{} ", self.border_style.inner_sep());
|
||||
@@ -352,7 +352,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
if self.squeezer.active() {
|
||||
self.print_position_panel();
|
||||
write!(&mut self.buffer_line, "{0:1$}", "", 24)?;
|
||||
for _ in 0..self.columns - 1 {
|
||||
for _ in 0..self.panels - 1 {
|
||||
write!(
|
||||
&mut self.buffer_line,
|
||||
"{2}{0:1$}",
|
||||
@@ -368,7 +368,7 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
8,
|
||||
self.border_style.outer_sep()
|
||||
)?;
|
||||
for _ in 0..self.columns - 1 {
|
||||
for _ in 0..self.panels - 1 {
|
||||
write!(
|
||||
&mut self.buffer_line,
|
||||
"{2}{0:1$}",
|
||||
@@ -387,9 +387,9 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
|
||||
// print empty space on last line
|
||||
if squeeze_action != SqueezeAction::Delete {
|
||||
if len < usize::from(8 * self.columns) {
|
||||
if len < usize::from(8 * self.panels) {
|
||||
write!(&mut self.buffer_line, "{0:1$}", "", 3 * (8 - len % 8))?;
|
||||
for _ in 0..(usize::from(8 * self.columns) - (len + (8 - len % 8))) / 8 {
|
||||
for _ in 0..(usize::from(8 * self.panels) - (len + (8 - len % 8))) / 8 {
|
||||
write!(
|
||||
&mut self.buffer_line,
|
||||
"{2}{0:1$}",
|
||||
@@ -422,18 +422,18 @@ impl<'a, Writer: Write> Printer<'a, Writer> {
|
||||
self.border_style.outer_sep()
|
||||
)?;
|
||||
|
||||
for i in 0..self.columns {
|
||||
for i in 0..self.panels {
|
||||
write!(&mut self.buffer_line, "{0:1$}", "", 25)?;
|
||||
if i != self.columns - 1 {
|
||||
if i != self.panels - 1 {
|
||||
write!(&mut self.buffer_line, "{}", self.border_style.inner_sep())?;
|
||||
} else {
|
||||
write!(&mut self.buffer_line, "{}", self.border_style.outer_sep())?;
|
||||
}
|
||||
}
|
||||
|
||||
for i in 0..self.columns {
|
||||
for i in 0..self.panels {
|
||||
write!(&mut self.buffer_line, "{0:1$}", "", 8)?;
|
||||
if i != self.columns - 1 {
|
||||
if i != self.panels - 1 {
|
||||
write!(&mut self.buffer_line, "{}", self.border_style.inner_sep())?;
|
||||
} else {
|
||||
writeln!(&mut self.buffer_line, "{}", self.border_style.outer_sep())?;
|
||||
@@ -585,7 +585,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn multiple_columns() {
|
||||
fn multiple_panels() {
|
||||
let input = io::Cursor::new(b"supercalifragilisticexpialidocioussupercalifragilisticexpialidocioussupercalifragilisticexpialidocious");
|
||||
let expected_string = "\
|
||||
┌────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┬─────────────────────────┬────────┬────────┬────────┬────────┐
|
||||
|
||||
Reference in new issue
Block a user