Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dysk for openSUSE:Factory checked in at 2026-10-17 21:27:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dysk (Old) and /work/SRC/openSUSE:Factory/.dysk.new.3698736 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dysk" Sat Oct 17 21:27:15 2026 rev:17 rq:1385364 version:3.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/dysk/dysk.changes 2026-09-28 10:49:21.730266626 +0200 +++ /work/SRC/openSUSE:Factory/.dysk.new.3698736/dysk.changes 2026-10-17 21:27:35.051343051 +0200 @@ -1,0 +2,12 @@ +Sat Oct 17 07:22:19 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 3.8.0: + * read inodes on Mac/iokit (not very interesting for APFS) - Fix + #107 + * no panic on --help when stdout is closed - Fix #123 + * new use_bar and inodes_bar columns: bars without percentage - + Fix #116 + * -c all still gives all information but no longer includes all + columns, redundant ones being stripped + +------------------------------------------------------------------- Old: ---- dysk-3.7.1.obscpio New: ---- dysk-3.8.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dysk.spec ++++++ --- /var/tmp/diff_new_pack.nRNQMP/_old 2026-10-17 21:27:36.740413618 +0200 +++ /var/tmp/diff_new_pack.nRNQMP/_new 2026-10-17 21:27:36.741413659 +0200 @@ -17,7 +17,7 @@ Name: dysk -Version: 3.7.1 +Version: 3.8.0 Release: 0 Summary: Get information on filesystems, like df but better License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.nRNQMP/_old 2026-10-17 21:27:36.781415331 +0200 +++ /var/tmp/diff_new_pack.nRNQMP/_new 2026-10-17 21:27:36.785415498 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="exclude">.git</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">refs/tags/v3.7.1</param> + <param name="revision">refs/tags/v3.8.0</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.nRNQMP/_old 2026-10-17 21:27:36.806416375 +0200 +++ /var/tmp/diff_new_pack.nRNQMP/_new 2026-10-17 21:27:36.810416542 +0200 @@ -3,6 +3,6 @@ <param name="url">https://github.com/Canop/dysk</param> <param name="changesrevision">b8c61ea5f565759b12785658a1c6a80f3b13722c</param></service><service name="tar_scm"> <param name="url">https://github.com/Canop/dysk.git</param> - <param name="changesrevision">557dd25174171fa9e364d99d672eb3d6cbcb89ac</param></service></servicedata> + <param name="changesrevision">ce437e13cfc3f02ce2fdb6d2a4aeb552c0a940eb</param></service></servicedata> (No newline at EOF) ++++++ dysk-3.7.1.obscpio -> dysk-3.8.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/CHANGELOG.md new/dysk-3.8.0/CHANGELOG.md --- old/dysk-3.7.1/CHANGELOG.md 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/CHANGELOG.md 2026-10-17 07:43:53.000000000 +0200 @@ -1,5 +1,8 @@ ### next - read inodes on Mac/iokit (not very interesting for APFS) - Fix #107 +- no panic on `--help` when stdout is closed - Fix #123 +- new `use_bar` and `inodes_bar` columns: bars without percentage - Fix #116 +- `-c all` still gives all information but no longer includes all columns, redundant ones being stripped <a name="v3.7.1"></a> ### v3.7.1 - 2026/09/27 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/Cargo.lock new/dysk-3.8.0/Cargo.lock --- old/dysk-3.7.1/Cargo.lock 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/Cargo.lock 2026-10-17 07:43:53.000000000 +0200 @@ -97,9 +97,9 @@ [[package]] name = "clap-help" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cba2aeb4586a460f68b52628fdbf7cdbc9af533288a64f09a6c59896a5a2f288" +checksum = "a2273621d9a264d51a6e8c1db392ded0462d6b8f02ec2ae2ffa7fc7943d1f6f3" dependencies = [ "clap", "termimad", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/Cargo.toml new/dysk-3.8.0/cli/Cargo.toml --- old/dysk-3.7.1/cli/Cargo.toml 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/Cargo.toml 2026-10-17 07:43:53.000000000 +0200 @@ -11,7 +11,7 @@ [dependencies] bet = "1.0.4" clap = { version = "4.6", features = ["derive", "cargo"] } -clap-help = "1.6" +clap-help = "1.7" file-size = "1.0.3" #lfs-core = { git = "https://github.com/Canop/lfs-core.git", branch = "smb" } #lfs-core = { path = "../../lfs-core" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/col.rs new/dysk-3.8.0/cli/src/col.rs --- old/dysk-3.7.1/cli/src/col.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/col.rs 2026-10-17 07:43:53.000000000 +0200 @@ -5,15 +5,21 @@ cmp::Ordering, fmt, str::FromStr, + sync::LazyLock, }, termimad::minimad::Alignment, }; +/// Tell whether a flag of a column definition is the one asked +macro_rules! col_flag { + (is_default default) => { true }; + (is_default redundant) => { false }; + (is_redundant default) => { false }; + (is_redundant redundant) => { true }; +} + macro_rules! col_enum { - (@just_variant $variant:ident $discarded:ident) => { - Col::$variant - }; - ($($variant:ident $name:literal $($alias:literal)* : $title:literal $($def:ident)*,)*) => { + ($($variant:ident $name:literal $($alias:literal)* : $title:literal $($flag:ident)*,)*) => { /// A column of the lfs table. #[derive(Debug, Clone, Copy, PartialEq)] pub enum Col { @@ -22,11 +28,6 @@ pub static ALL_COLS: &[Col] = &[ $(Col::$variant,)* ]; - pub static DEFAULT_COLS: &[Col] = &[ - $( - $(col_enum!(@just_variant $variant $def),)* - )* - ]; impl FromStr for Col { type Err = ParseColError; fn from_str(s: &str) -> Result<Self, ParseColError> { @@ -73,17 +74,47 @@ } } pub fn is_default(self) -> bool { - DEFAULT_COLS.contains(&self) + match self { + $( + Self::$variant => false $(|| col_flag!(is_default $flag))*, + )* + } + } + /// Whether the column only combines what other columns show, + /// in which case it's not part of the `all` set + pub fn is_redundant(self) -> bool { + match self { + $( + Self::$variant => false $(|| col_flag!(is_redundant $flag))*, + )* + } } } }; } +pub static DEFAULT_COLS: LazyLock<Vec<Col>> = LazyLock::new(|| { + ALL_COLS + .iter() + .copied() + .filter(|col| col.is_default()) + .collect() +}); + +/// The columns of the `all` set: all columns but the redundant ones +pub static ALL_SET_COLS: LazyLock<Vec<Col>> = LazyLock::new(|| { + ALL_COLS + .iter() + .copied() + .filter(|col| !col.is_redundant()) + .collect() +}); + // definition of all columns and their names // in the --cols definition col_enum!( // syntax: - // Variant name [aliases]: title [default] + // Variant name [aliases]: title [default] [redundant] Id "id": "id", Dev "dev" "device" "device_id": "dev", Filesystem "fs" "filesystem": "filesystem" default, @@ -92,14 +123,16 @@ Remote "remote" "rem": "remote", Disk "disk" "dsk": "disk" default, Used "used": "used" default, - Use "use": "use" default, + Use "use": "use" default redundant, UsePercent "use_percent": "use%", + UseBar "use_bar" "bar": "use", Free "free": "free" default, FreePercent "free_percent": "free%", Size "size": "size" default, InodesUsed "inodes_used" "iused": "used inodes", - InodesUse "inodes" "ino" "inodes_use" "iuse": "inodes", + InodesUse "inodes" "ino" "inodes_use" "iuse": "inodes" redundant, InodesUsePercent "inodes_use_percent" "iuse_percent": "inodes%", + InodesBar "inodes_bar" "ibar": "inodes", InodesFree "inodes_free" "ifree": "free inodes", InodesCount "inodes_total" "inodes_count" "itotal": "inodes total", MountPoint "mount" "mount_point" "mp": "mount point" default, @@ -130,12 +163,14 @@ Self::Used => Alignment::Right, Self::Use => Alignment::Right, Self::UsePercent => Alignment::Right, + Self::UseBar => Alignment::Right, Self::Free => Alignment::Right, Self::FreePercent => Alignment::Right, Self::Size => Alignment::Right, Self::InodesUsed => Alignment::Right, Self::InodesUse => Alignment::Right, Self::InodesUsePercent => Alignment::Right, + Self::InodesBar => Alignment::Right, Self::InodesFree => Alignment::Right, Self::InodesCount => Alignment::Right, Self::MountPoint => Alignment::Left, @@ -157,12 +192,14 @@ Self::Used => "size used", Self::Use => "usage graphical view", Self::UsePercent => "percentage of blocks used", + Self::UseBar => "usage bar, without percentage", Self::Free => "free bytes", Self::FreePercent => "percentage of free blocks", Self::Size => "total size", Self::InodesUsed => "number of inodes used", Self::InodesUse => "graphical view of inodes usage", Self::InodesUsePercent => "percentage of inodes used", + Self::InodesBar => "inodes usage bar, without percentage", Self::InodesFree => "number of free inodes", Self::InodesCount => "total count of inodes", Self::MountPoint => "mount point", @@ -205,15 +242,17 @@ (None, Some(_)) => Ordering::Less, (None, None) => Ordering::Equal, }, - Self::Use | Self::UsePercent => |a: &Mount, b: &Mount| match (&a.stats(), &b.stats()) { - // the 'use' column shows the percentage of used blocks, so it makes sense - // to sort by use_share for it - // SAFETY: use_share() doesn't return NaN - (Some(a), Some(b)) => a.use_share().partial_cmp(&b.use_share()).unwrap(), - (Some(_), None) => Ordering::Greater, - (None, Some(_)) => Ordering::Less, - (None, None) => Ordering::Equal, - }, + Self::Use | Self::UsePercent | Self::UseBar => { + |a: &Mount, b: &Mount| match (&a.stats(), &b.stats()) { + // the 'use' column shows the percentage of used blocks, so it makes sense + // to sort by use_share for it + // SAFETY: use_share() doesn't return NaN + (Some(a), Some(b)) => a.use_share().partial_cmp(&b.use_share()).unwrap(), + (Some(_), None) => Ordering::Greater, + (None, Some(_)) => Ordering::Less, + (None, None) => Ordering::Equal, + } + } Self::Free => |a: &Mount, b: &Mount| match (&a.stats(), &b.stats()) { (Some(a), Some(b)) => a.available().cmp(&b.available()), (Some(_), None) => Ordering::Greater, @@ -238,7 +277,7 @@ (None, Some(_)) => Ordering::Less, (None, None) => Ordering::Equal, }, - Self::InodesUsePercent | Self::InodesUse => { + Self::InodesUsePercent | Self::InodesUse | Self::InodesBar => { |a: &Mount, b: &Mount| match (&a.inodes(), &b.inodes()) { // SAFETY: use_share() doesn't return NaN (Some(a), Some(b)) => a.use_share().partial_cmp(&b.use_share()).unwrap(), @@ -298,12 +337,14 @@ Self::Used => Order::Asc, Self::Use => Order::Desc, Self::UsePercent => Order::Asc, + Self::UseBar => Order::Desc, Self::Free => Order::Asc, Self::FreePercent => Order::Desc, Self::Size => Order::Desc, Self::InodesUsed => Order::Asc, Self::InodesUse => Order::Asc, Self::InodesUsePercent => Order::Asc, + Self::InodesBar => Order::Asc, Self::InodesFree => Order::Asc, Self::InodesCount => Order::Asc, Self::MountPoint => Order::Asc, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/col_expr.rs new/dysk-3.8.0/cli/src/col_expr.rs --- old/dysk-3.7.1/cli/src/col_expr.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/col_expr.rs 2026-10-17 07:43:53.000000000 +0200 @@ -119,7 +119,7 @@ mount.stats().as_ref().map(|s| s.used()), parse_integer(&self.value)?, ), - Col::Use | Col::UsePercent => self.operator.eval_option( + Col::Use | Col::UsePercent | Col::UseBar => self.operator.eval_option( mount.stats().as_ref().map(|s| s.use_share()), parse_float(&self.value)?, ), @@ -135,7 +135,7 @@ mount.inodes().as_ref().map(|i| i.used()), parse_integer(&self.value)?, ), - Col::InodesUse | Col::InodesUsePercent => self.operator.eval_option( + Col::InodesUse | Col::InodesUsePercent | Col::InodesBar => self.operator.eval_option( mount.inodes().as_ref().map(|i| i.use_share()), parse_float(&self.value)?, ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/cols.rs new/dysk-3.8.0/cli/src/cols.rs --- old/dysk-3.7.1/cli/src/cols.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/cols.rs 2026-10-17 07:43:53.000000000 +0200 @@ -58,7 +58,7 @@ &mut self, col_set: &[Col], ) { - if self.0 == ALL_COLS { + if self.0 == *ALL_SET_COLS { for &col in col_set { self.add(col); } @@ -128,7 +128,7 @@ } else { // if we add all to something, it means the already // present one are meant to be first - for &col in ALL_COLS { + for &col in ALL_SET_COLS.iter() { if !cols.contains(col) { cols.add(col); } @@ -137,10 +137,10 @@ } "default" => { if negative { - cols.remove_set(DEFAULT_COLS); + cols.remove_set(&DEFAULT_COLS); negative = false; } else { - cols.add_set(DEFAULT_COLS); + cols.add_set(&DEFAULT_COLS); } } _ => { @@ -156,10 +156,10 @@ } match tokens.last().map(|s| s.as_ref()) { Some("-") => { - cols.remove_set(DEFAULT_COLS); + cols.remove_set(&DEFAULT_COLS); } Some("+") => { - cols.add_set(DEFAULT_COLS); + cols.add_set(&DEFAULT_COLS); } _ => {} } @@ -198,7 +198,7 @@ check("dev,free,used", vec![Dev, Free, Used]); check("dev+free + used", vec![Dev, Free, Used]); check(" dev free used ", vec![Dev, Free, Used]); - check("all", ALL_COLS); + check("all", ALL_SET_COLS.clone()); } #[test] @@ -212,13 +212,14 @@ Remote, Disk, Used, - Use, UsePercent, + UseBar, Free, FreePercent, Size, InodesUsed, InodesUsePercent, + InodesBar, InodesFree, InodesCount, MountPoint, @@ -238,10 +239,11 @@ Label, Remote, UsePercent, + UseBar, FreePercent, InodesUsed, - InodesUse, InodesUsePercent, + InodesBar, InodesFree, InodesCount, Uuid, @@ -259,10 +261,11 @@ Label, Remote, UsePercent, + UseBar, FreePercent, InodesUsed, - InodesUse, InodesUsePercent, + InodesBar, InodesFree, InodesCount, Uuid, @@ -290,14 +293,14 @@ Remote, Disk, Used, - Use, UsePercent, + UseBar, Free, FreePercent, Size, InodesUsed, - InodesUse, InodesUsePercent, + InodesBar, InodesFree, InodesCount, MountPoint, @@ -316,14 +319,14 @@ Type, Remote, Used, - Use, UsePercent, + UseBar, Free, FreePercent, Size, InodesUsed, - InodesUse, InodesUsePercent, + InodesBar, InodesFree, InodesCount, MountPoint, @@ -337,19 +340,19 @@ #[test] fn cols_from_default() { - check("", DEFAULT_COLS); + check("", DEFAULT_COLS.clone()); check( "-dev", // no impact as dev isn't in defaults - DEFAULT_COLS, + DEFAULT_COLS.clone(), ); - check("default", DEFAULT_COLS); + check("default", DEFAULT_COLS.clone()); check( "-default", // not really useful vec![], ); check( "default-dev", // no impact as dev isn't in defaults - DEFAULT_COLS, + DEFAULT_COLS.clone(), ); check( "+dev", @@ -371,10 +374,11 @@ Label, Remote, UsePercent, + UseBar, FreePercent, InodesUsed, - InodesUse, InodesUsePercent, + InodesBar, InodesFree, InodesCount, Uuid, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/csv.rs new/dysk-3.8.0/cli/src/csv.rs --- old/dysk-3.7.1/cli/src/csv.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/csv.rs 2026-10-17 07:43:53.000000000 +0200 @@ -81,7 +81,7 @@ Col::Remote => csv.cell(if mount.is_remote() { "yes" } else { "no" }), Col::Disk => csv.cell_opt(mount.disk.as_ref().map(|d| d.disk_type())), Col::Used => csv.cell_opt(mount.stats().map(|s| units.fmt(s.used()))), - Col::Use => csv.cell_opt(mount.stats().map(|s| s.use_share())), + Col::Use | Col::UseBar => csv.cell_opt(mount.stats().map(|s| s.use_share())), Col::UsePercent => csv.cell_opt( mount .stats() @@ -95,7 +95,9 @@ ), Col::Size => csv.cell_opt(mount.stats().map(|s| units.fmt(s.size()))), Col::InodesUsed => csv.cell_opt(mount.inodes().map(|i| i.used())), - Col::InodesUse => csv.cell_opt(mount.inodes().map(|i| i.use_share())), + Col::InodesUse | Col::InodesBar => { + csv.cell_opt(mount.inodes().map(|i| i.use_share())) + } Col::InodesUsePercent => csv.cell_opt( mount .inodes() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/help.rs new/dysk-3.8.0/cli/src/help.rs --- old/dysk-3.7.1/cli/src/help.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/help.rs 2026-10-17 07:43:53.000000000 +0200 @@ -1,6 +1,10 @@ use { crate::args::*, clap::CommandFactory, + std::io::{ + self, + Write, + }, }; static INTRO_TEMPLATE: &str = " @@ -49,7 +53,10 @@ ), ]; -pub fn print(ascii: bool) { +pub fn write<W: Write>( + w: &mut W, + ascii: bool, +) -> io::Result<()> { let mut printer = clap_help::Printer::new(Args::command()) .with("introduction", INTRO_TEMPLATE) .without("author"); @@ -67,7 +74,7 @@ .set("example-cmd", example.cmd) .set_md("example-comments", example.comments); } - printer.print_help(); + printer.write_help(w) } struct Example { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/lib.rs new/dysk-3.8.0/cli/src/lib.rs --- old/dysk-3.7.1/cli/src/lib.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/lib.rs 2026-10-17 07:43:53.000000000 +0200 @@ -41,16 +41,16 @@ return writeln!(&mut w, "dysk {}", env!("CARGO_PKG_VERSION")); } if args.help { - help::print(args.ascii); + help::write(&mut w, args.ascii)?; if args.color() { - csi_reset(); + csi_reset(&mut w)?; } return Ok(()); } if args.list_cols { list_cols::write(&mut w, args.color(), args.ascii)?; if args.color() { - csi_reset(); + csi_reset(&mut w)?; } return Ok(()); } @@ -111,12 +111,12 @@ } table::write(&mut w, &mounts, args.color(), &args)?; if args.color() { - csi_reset(); + csi_reset(&mut w)?; } Ok(()) } /// output a Reset CSI sequence -fn csi_reset() { - print!("\u{1b}[0m"); +fn csi_reset<W: Write>(w: &mut W) -> io::Result<()> { + write!(w, "\u{1b}[0m") } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/cli/src/table.rs new/dysk-3.8.0/cli/src/table.rs --- old/dysk-3.7.1/cli/src/table.rs 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/cli/src/table.rs 2026-10-17 07:43:53.000000000 +0200 @@ -42,7 +42,12 @@ let units = args.units; let mut expander = OwningTemplateExpander::new(); expander.set_default(""); - let use_col_width = compute_use_col_width(args); + let mut use_content_width = 3 + args.bar_width; // 3 for eg "97%" + if args.bar_width > BAR_WIDTH_SPACE_THRESHOLD { + use_content_width += 1; + } + let use_col_width = compute_error_width(args, use_content_width); + let bar_col_width = compute_error_width(args, args.bar_width); for mount in mounts { let sub = expander .sub("rows") @@ -101,11 +106,16 @@ } } else if mount.is_timeout() { sub.set("use-error", string_fitting_cols("timeout", use_col_width)); + sub.set("bar-error", string_fitting_cols("timeout", bar_col_width)); } else if mount.is_unreachable() { sub.set( "use-error", string_fitting_cols("unreachable", use_col_width), ); + sub.set( + "bar-error", + string_fitting_cols("unreachable", bar_col_width), + ); } } let mut skin = if color { @@ -133,6 +143,7 @@ Col::Used => "~~${used}~~", Col::Use => "~~${use-percents}~~${use-space}${bar}~~${use-error}~~", Col::UsePercent => "~~${use-percents}~~", + Col::UseBar => "${bar}~~${bar-error}~~", Col::Free => "*${free}*", Col::FreePercent => "*${free-percents}*", Col::Size => "**${size}**", @@ -140,6 +151,7 @@ Col::InodesUsed => "~~${iused}~~", Col::InodesUse => "~~${iuse-percents}~~ ${ibar}", Col::InodesUsePercent => "~~${iuse-percents}~~", + Col::InodesBar => "${ibar}", Col::InodesCount => "**${inodes}**", Col::MountPoint => "${mount-point}", Col::Uuid => "${uuid}", @@ -157,13 +169,12 @@ } /// Use settings and heuristics to determine the max width to be used by errors messages -/// in the "use" column, so that they don't break the layout too much. -fn compute_use_col_width(args: &Args) -> usize { +/// in the "use" and "use_bar" columns, so that they don't break the layout too much. +fn compute_error_width( + args: &Args, + width: usize, +) -> usize { const MAX: usize = 20; // basically no limit - let mut width = 3 + args.bar_width; // 3 for eg "97%" - if args.bar_width > BAR_WIDTH_SPACE_THRESHOLD { - width += 1; - } if width < MAX { if args.cols.len() < 3 { return MAX; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dysk-3.7.1/website/src/table.md new/dysk-3.8.0/website/src/table.md --- old/dysk-3.7.1/website/src/table.md 2026-09-27 11:51:17.000000000 +0200 +++ new/dysk-3.8.0/website/src/table.md 2026-10-17 07:43:53.000000000 +0200 @@ -20,6 +20,7 @@ used | ✓ | cumulated size of the occupied blocks use | ✓ | graphical view of the use share use_percent | | percentage of occupied blocks +use_bar | | graphical view of the use share, without percentage free | ✓ | cumulated size of the available blocks free_percent | | percentage of available blocks size | ✓ | size of the volume @@ -27,6 +28,7 @@ inodesused | | inodes used inodes | | inodes use share, graphical inodes_use_percent | | inodes use share, in percents +inodes_bar | | inodes use share, graphical, without percentage inodescount | | total number of inodes in the filesystem mount | ✓ | mounting path uuid | | filesystem's UUID @@ -43,7 +45,7 @@  -With `-c all`, you may see all available columns, but that's normally too much for convenience: +With `-c all`, you may see all available columns (except `use` and `inodes`, whose content is already in `use_percent`+`use_bar` and `inodes_use_percent`+`inodes_bar`), but that's normally too much for convenience:  ++++++ dysk.obsinfo ++++++ --- /var/tmp/diff_new_pack.nRNQMP/_old 2026-10-17 21:27:37.018425233 +0200 +++ /var/tmp/diff_new_pack.nRNQMP/_new 2026-10-17 21:27:37.022425400 +0200 @@ -1,5 +1,5 @@ name: dysk -version: 3.7.1 -mtime: 1790502677 -commit: 557dd25174171fa9e364d99d672eb3d6cbcb89ac +version: 3.8.0 +mtime: 1792215833 +commit: ce437e13cfc3f02ce2fdb6d2a4aeb552c0a940eb ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/dysk/vendor.tar.zst /work/SRC/openSUSE:Factory/.dysk.new.3698736/vendor.tar.zst differ: char 7, line 1
