Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package exa for openSUSE:Factory checked in at 2021-04-14 10:11:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/exa (Old) and /work/SRC/openSUSE:Factory/.exa.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "exa" Wed Apr 14 10:11:11 2021 rev:7 rq:884951 version:0.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/exa/exa.changes 2021-04-08 21:31:55.455791237 +0200 +++ /work/SRC/openSUSE:Factory/.exa.new.2401/exa.changes 2021-04-14 10:11:42.745567986 +0200 @@ -1,0 +2,20 @@ +Tue Apr 13 12:46:26 UTC 2021 - Michael Vetter <mvet...@suse.com> + +- Update to 0.10.1: + Changes: + * Change the way the "ignored" status is aggregated for directories, + so directories containing ignored files no longer look like the + directory itself is ignored (bd4f144) + * Change the icon for TeX files to a "T" (e3e776a) + * Display the classification character (such as / for directories) + at the end of symlink targets (dbd11d3) + * Display more helpful error messages when a number in a + command-line option or environment variable fails to be parsed (550f2d2) + Fixes: + * Fix thousand separators not being displayed in file sizes (7a4cde7) + * Fix $EXA_GRID_ROWS displaying the wrong size table in certain + situations (c729e22) + * Fix month name not following locale when a file's date is in the + current year (3a8005c) + +------------------------------------------------------------------- Old: ---- v0.10.0.tar.gz New: ---- v0.10.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ exa.spec ++++++ --- /var/tmp/diff_new_pack.IcyqdP/_old 2021-04-14 10:11:43.777569729 +0200 +++ /var/tmp/diff_new_pack.IcyqdP/_new 2021-04-14 10:11:43.781569736 +0200 @@ -17,7 +17,7 @@ Name: exa -Version: 0.10.0 +Version: 0.10.1 Release: 0 Summary: Replacement for ls written in Rust License: MIT ++++++ v0.10.0.tar.gz -> v0.10.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/Cargo.lock new/exa-0.10.1/Cargo.lock --- old/exa-0.10.0/Cargo.lock 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/Cargo.lock 2021-04-12 23:28:31.000000000 +0200 @@ -23,24 +23,24 @@ [[package]] name = "byteorder" -version = "1.3.4" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cc" -version = "1.0.61" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d" +checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" dependencies = [ "jobserver", ] [[package]] name = "cfg-if" -version = "0.1.10" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "datetime" @@ -57,7 +57,7 @@ [[package]] name = "exa" -version = "0.10.0" +version = "0.11.0-pre" dependencies = [ "ansi_term", "datetime", @@ -79,10 +79,20 @@ ] [[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] name = "git2" -version = "0.13.11" +version = "0.13.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e094214efbc7fdbbdee952147e493b00e99a4e52817492277e98967ae918165" +checksum = "1d250f5f82326884bd39c2853577e70a121775db76818ffa452ed1e80de12986" dependencies = [ "bitflags", "libc", @@ -100,18 +110,18 @@ [[package]] name = "hermit-abi" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" +checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" dependencies = [ "libc", ] [[package]] name = "idna" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" +checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" dependencies = [ "matches", "unicode-bidi", @@ -135,15 +145,15 @@ [[package]] name = "libc" -version = "0.2.79" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2448f6066e80e3bfc792e9c98bf705b4b0fc6e8ef5b43e5889aff0eaa9c58743" +checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41" [[package]] name = "libgit2-sys" -version = "0.12.14+1.1.0" +version = "0.12.18+1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f25af58e6495f7caf2919d08f212de550cfa3ed2f5e744988938ea292b9f549" +checksum = "3da6a42da88fc37ee1ecda212ffa254c25713532980005d5f7c0b0fbe7e6e885" dependencies = [ "cc", "libc", @@ -174,9 +184,9 @@ [[package]] name = "log" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ "cfg-if", ] @@ -211,18 +221,18 @@ [[package]] name = "openssl-src" -version = "111.12.0+1.1.1h" +version = "111.15.0+1.1.1k" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "858a4132194f8570a7ee9eb8629e85b23cbc4565f2d4a162e87556e5956abf61" +checksum = "b1a5f6ae2ac04393b217ea9f700cd04fa9bf3d93fae2872069f3d15d908af70a" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.58" +version = "0.9.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de" +checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f" dependencies = [ "autocfg", "cc", @@ -286,24 +296,33 @@ [[package]] name = "tinyvec" -version = "0.3.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117" +checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "unicode-bidi" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" dependencies = [ "matches", ] [[package]] name = "unicode-normalization" -version = "0.1.13" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" dependencies = [ "tinyvec", ] @@ -316,10 +335,11 @@ [[package]] name = "url" -version = "2.1.1" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" dependencies = [ + "form_urlencoded", "idna", "matches", "percent-encoding", @@ -337,9 +357,9 @@ [[package]] name = "vcpkg" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c" +checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" [[package]] name = "winapi" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/Cargo.toml new/exa-0.10.1/Cargo.toml --- old/exa-0.10.0/Cargo.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/Cargo.toml 2021-04-12 23:28:31.000000000 +0200 @@ -9,7 +9,7 @@ homepage = "https://the.exa.website/" license = "MIT" repository = "https://github.com/ogham/exa" -version = "0.10.0" +version = "0.10.1" [[bin]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/devtools/dev-create-test-filesystem.sh new/exa-0.10.1/devtools/dev-create-test-filesystem.sh --- old/exa-0.10.0/devtools/dev-create-test-filesystem.sh 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/devtools/dev-create-test-filesystem.sh 2021-04-12 23:28:31.000000000 +0200 @@ -300,6 +300,8 @@ mkdir "ignoreds/nested" touch "ignoreds/nested/70s grove.mp3" touch "ignoreds/nested/funky chicken.m4a" +mkdir "ignoreds/nested2" +touch "ignoreds/nested2/ievan polkka.mp3" mkdir "target" touch "target/another ignored file" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/man/exa.1.md new/exa-0.10.1/man/exa.1.md --- old/exa-0.10.0/man/exa.1.md 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/man/exa.1.md 2021-04-12 23:28:31.000000000 +0200 @@ -84,7 +84,7 @@ Use this twice to also show the ???`.`??? and ???`..`??? directories. `-d`, `--list-dirs` -: List directories like regular files. +: List directories as regular files, rather than recursing and listing their contents. `-L`, `--level=DEPTH` : Limit the depth of recursion. @@ -183,6 +183,10 @@ `--git` [if exa was built with git support] : List each file???s Git status, if tracked. +This adds a two-character column indicating the staged and unstaged statuses respectively. The status character can be ???`-`??? for not modified, ???`M`??? for a modified file, ???`N`??? for a new file, ???`D`??? for deleted, ???`R`??? for renamed, ???`T`??? for type-change, ???`I`??? for ignored, and ???`U`??? for conflicted. + +Directories will be shown to have the status of their contents, which is how ???deleted??? is possible: if a directory contains a file that has a certain status, it will be shown to have that status. + ENVIRONMENT VARIABLES ===================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/fs/feature/git.rs new/exa-0.10.1/src/fs/feature/git.rs --- old/exa-0.10.0/src/fs/feature/git.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/fs/feature/git.rs 2021-04-12 23:28:31.000000000 +0200 @@ -242,25 +242,40 @@ else { self.file_status(index) } } - /// Get the status for the file at the given path. + /// Get the user-facing status of a file. + /// We check the statuses directly applying to a file, and for the ignored + /// status we check if any of its parents directories is ignored by git. fn file_status(&self, file: &Path) -> f::Git { let path = reorient(file); - self.statuses.iter() - .find(|p| p.0.as_path() == path) - .map(|&(_, s)| f::Git { staged: index_status(s), unstaged: working_tree_status(s) }) - .unwrap_or_default() + let s = self.statuses.iter() + .filter(|p| if p.1 == git2::Status::IGNORED { + path.starts_with(&p.0) + } else { + p.0 == path + }) + .fold(git2::Status::empty(), |a, b| a | b.1); + + let staged = index_status(s); + let unstaged = working_tree_status(s); + f::Git { staged, unstaged } } - /// Get the combined status for all the files whose paths begin with the - /// path that gets passed in. This is used for getting the status of - /// directories, which don???t really have an ???official??? status. + /// Get the combined, user-facing status of a directory. + /// Statuses are aggregating (for example, a directory is considered + /// modified if any file under it has the status modified), except for + /// ignored status which applies to files under (for example, a directory + /// is considered ignored if one of its parent directories is ignored). fn dir_status(&self, dir: &Path) -> f::Git { let path = reorient(dir); let s = self.statuses.iter() - .filter(|p| p.0.starts_with(&path)) - .fold(git2::Status::empty(), |a, b| a | b.1); + .filter(|p| if p.1 == git2::Status::IGNORED { + path.starts_with(&p.0) + } else { + p.0.starts_with(&path) + }) + .fold(git2::Status::empty(), |a, b| a | b.1); let staged = index_status(s); let unstaged = working_tree_status(s); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/fs/file.rs new/exa-0.10.1/src/fs/file.rs --- old/exa-0.10.0/src/fs/file.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/fs/file.rs 2021-04-12 23:28:31.000000000 +0200 @@ -319,10 +319,15 @@ f::Size::None } else if self.is_char_device() || self.is_block_device() { - let dev = self.metadata.rdev(); + let device_ids = self.metadata.rdev().to_be_bytes(); + + // In C-land, getting the major and minor device IDs is done with + // preprocessor macros called `major` and `minor` that depend on + // the size of `dev_t`, but we just take the second-to-last and + // last bytes. f::Size::DeviceIDs(f::DeviceIDs { - major: (dev / 256) as u8, - minor: (dev % 256) as u8, + major: device_ids[6], + minor: device_ids[7], }) } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/dir_action.rs new/exa-0.10.1/src/options/dir_action.rs --- old/exa-0.10.0/src/options/dir_action.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/dir_action.rs 2021-04-12 23:28:31.000000000 +0200 @@ -1,7 +1,7 @@ //! Parsing the options for `DirAction`. use crate::options::parser::MatchedFlags; -use crate::options::{flags, OptionsError}; +use crate::options::{flags, OptionsError, NumberSource}; use crate::fs::dir_action::{DirAction, RecurseOptions}; @@ -55,17 +55,21 @@ /// determined earlier. The maximum level should be a number, and this /// will fail with an `Err` if it isn???t. pub fn deduce(matches: &MatchedFlags<'_>, tree: bool) -> Result<Self, OptionsError> { - let max_depth = if let Some(level) = matches.get(&flags::LEVEL)? { - match level.to_string_lossy().parse() { - Ok(l) => Some(l), - Err(e) => return Err(OptionsError::FailedParse(e)), + if let Some(level) = matches.get(&flags::LEVEL)? { + let arg_str = level.to_string_lossy(); + match arg_str.parse() { + Ok(l) => { + Ok(Self { tree, max_depth: Some(l) }) + } + Err(e) => { + let source = NumberSource::Arg(&flags::LEVEL); + Err(OptionsError::FailedParse(arg_str.to_string(), source, e)) + } } } else { - None - }; - - Ok(Self { tree, max_depth }) + Ok(Self { tree, max_depth: None }) + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/error.rs new/exa-0.10.1/src/options/error.rs --- old/exa-0.10.0/src/options/error.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/error.rs 2021-04-12 23:28:31.000000000 +0200 @@ -37,18 +37,38 @@ TreeAllAll, /// A numeric option was given that failed to be parsed as a number. - FailedParse(ParseIntError), + FailedParse(String, NumberSource, ParseIntError), /// A glob ignore was given that failed to be parsed as a pattern. FailedGlobPattern(String), } +/// The source of a string that failed to be parsed as a number. +#[derive(PartialEq, Debug)] +pub enum NumberSource { + + /// It came... from a command-line argument! + Arg(&'static Arg), + + /// It came... from the enviroment! + Env(&'static str), +} + impl From<glob::PatternError> for OptionsError { fn from(error: glob::PatternError) -> Self { Self::FailedGlobPattern(error.to_string()) } } +impl fmt::Display for NumberSource { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + Self::Arg(arg) => write!(f, "option {}", arg), + Self::Env(env) => write!(f, "environment variable {}", env), + } + } +} + impl fmt::Display for OptionsError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { use crate::options::parser::TakesValue; @@ -71,7 +91,7 @@ Self::Useless(a, true, b) => write!(f, "Option {} is useless given option {}", a, b), Self::Useless2(a, b1, b2) => write!(f, "Option {} is useless without options {} or {}", a, b1, b2), Self::TreeAllAll => write!(f, "Option --tree is useless given --all --all"), - Self::FailedParse(ref e) => write!(f, "Failed to parse number: {}", e), + Self::FailedParse(s, n, e) => write!(f, "Value {:?} not valid for {}: {}", s, n, e), Self::FailedGlobPattern(ref e) => write!(f, "Failed to parse glob pattern: {}", e), } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/file_name.rs new/exa-0.10.1/src/options/file_name.rs --- old/exa-0.10.0/src/options/file_name.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/file_name.rs 2021-04-12 23:28:31.000000000 +0200 @@ -1,4 +1,4 @@ -use crate::options::{flags, OptionsError}; +use crate::options::{flags, OptionsError, NumberSource}; use crate::options::parser::MatchedFlags; use crate::options::vars::{self, Vars}; @@ -30,8 +30,13 @@ } else if let Some(columns) = vars.get(vars::EXA_ICON_SPACING).and_then(|s| s.into_string().ok()) { match columns.parse() { - Ok(width) => Ok(Self::On(width)), - Err(e) => Err(OptionsError::FailedParse(e)), + Ok(width) => { + Ok(Self::On(width)) + } + Err(e) => { + let source = NumberSource::Env(vars::EXA_ICON_SPACING); + Err(OptionsError::FailedParse(columns, source, e)) + } } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/help.rs new/exa-0.10.1/src/options/help.rs --- old/exa-0.10.0/src/options/help.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/help.rs 2021-04-12 23:28:31.000000000 +0200 @@ -27,7 +27,7 @@ FILTERING AND SORTING OPTIONS -a, --all show hidden and 'dot' files - -d, --list-dirs list directories like regular files + -d, --list-dirs list directories as files; don't list their contents -L, --level DEPTH limit the depth of recursion -r, --reverse reverse the sort order -s, --sort SORT_FIELD which field to sort by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/mod.rs new/exa-0.10.1/src/options/mod.rs --- old/exa-0.10.0/src/options/mod.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/mod.rs 2021-04-12 23:28:31.000000000 +0200 @@ -84,7 +84,7 @@ mod view; mod error; -pub use self::error::OptionsError; +pub use self::error::{OptionsError, NumberSource}; mod help; use self::help::HelpString; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/options/view.rs new/exa-0.10.1/src/options/view.rs --- old/exa-0.10.0/src/options/view.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/options/view.rs 2021-04-12 23:28:31.000000000 +0200 @@ -1,5 +1,5 @@ use crate::fs::feature::xattr; -use crate::options::{flags, OptionsError, Vars}; +use crate::options::{flags, OptionsError, NumberSource, Vars}; use crate::options::parser::MatchedFlags; use crate::output::{View, Mode, TerminalWidth, grid, details}; use crate::output::grid_details::{self, RowThreshold}; @@ -151,8 +151,13 @@ if let Some(columns) = vars.get(vars::COLUMNS).and_then(|s| s.into_string().ok()) { match columns.parse() { - Ok(width) => Ok(Self::Set(width)), - Err(e) => Err(OptionsError::FailedParse(e)), + Ok(width) => { + Ok(Self::Set(width)) + } + Err(e) => { + let source = NumberSource::Env(vars::COLUMNS); + Err(OptionsError::FailedParse(columns, source, e)) + } } } else { @@ -168,8 +173,13 @@ if let Some(columns) = vars.get(vars::EXA_GRID_ROWS).and_then(|s| s.into_string().ok()) { match columns.parse() { - Ok(rows) => Ok(Self::MinimumRows(rows)), - Err(e) => Err(OptionsError::FailedParse(e)), + Ok(rows) => { + Ok(Self::MinimumRows(rows)) + } + Err(e) => { + let source = NumberSource::Env(vars::EXA_GRID_ROWS); + Err(OptionsError::FailedParse(columns, source, e)) + } } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/output/file_name.rs new/exa-0.10.1/src/output/file_name.rs --- old/exa-0.10.0/src/output/file_name.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/output/file_name.rs 2021-04-12 23:28:31.000000000 +0200 @@ -173,7 +173,7 @@ show_icons: ShowIcons::Off, }; - let target = FileName { + let target_name = FileName { file: target, colours: self.colours, target: None, @@ -181,9 +181,15 @@ options: target_options, }; - for bit in target.coloured_file_name() { + for bit in target_name.coloured_file_name() { bits.push(bit); } + + if let Classify::AddFileIndicators = self.options.classify { + if let Some(class) = self.classify_char(target) { + bits.push(Style::default().paint(class)); + } + } } } @@ -206,7 +212,7 @@ } } else if let Classify::AddFileIndicators = self.options.classify { - if let Some(class) = self.classify_char() { + if let Some(class) = self.classify_char(self.file) { bits.push(Style::default().paint(class)); } } @@ -235,20 +241,20 @@ /// The character to be displayed after a file when classifying is on, if /// the file???s type has one associated with it. - fn classify_char(&self) -> Option<&'static str> { - if self.file.is_executable_file() { + fn classify_char(&self, file: &File<'_>) -> Option<&'static str> { + if file.is_executable_file() { Some("*") } - else if self.file.is_directory() { + else if file.is_directory() { Some("/") } - else if self.file.is_pipe() { + else if file.is_pipe() { Some("|") } - else if self.file.is_link() { + else if file.is_link() { Some("@") } - else if self.file.is_socket() { + else if file.is_socket() { Some("=") } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/output/grid_details.rs new/exa-0.10.1/src/output/grid_details.rs --- old/exa-0.10.0/src/output/grid_details.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/output/grid_details.rs 2021-04-12 23:28:31.000000000 +0200 @@ -174,22 +174,21 @@ }; if the_grid_fits { - if column_count == file_names.len() { - return Some((grid, column_count)); - } else { - last_working_grid = grid; - } - } else { - // If we???ve figured out how many columns can fit in the user???s - // terminal, and it turns out there aren???t enough rows to - // make it worthwhile, then just resort to the lines view. + last_working_grid = grid; + } + + if !the_grid_fits || column_count == file_names.len() { + let last_column_count = if the_grid_fits { column_count } else { column_count - 1 }; + // If we???ve figured out how many columns can fit in the user???s terminal, + // and it turns out there aren???t enough rows to make it worthwhile + // (according to EXA_GRID_ROWS), then just resort to the lines view. if let RowThreshold::MinimumRows(thresh) = self.row_threshold { - if last_working_grid.fit_into_columns(column_count - 1).row_count() < thresh { + if last_working_grid.fit_into_columns(last_column_count).row_count() < thresh { return None; } } - return Some((last_working_grid, column_count - 1)); + return Some((last_working_grid, last_column_count)); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/output/icons.rs new/exa-0.10.1/src/output/icons.rs --- old/exa-0.10.0/src/output/icons.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/output/icons.rs 2021-04-12 23:28:31.000000000 +0200 @@ -128,7 +128,7 @@ "class" => '\u{e256}', // ??? "clj" => '\u{e768}', // ??? "cljs" => '\u{e76a}', // ??? - "cls" => '\u{e600}', // ??? + "cls" => '\u{f034}', // ??? "cmd" => '\u{e70f}', // ??? "coffee" => '\u{f0f4}', // ??? "conf" => '\u{e615}', // ??? @@ -209,7 +209,7 @@ "json" => '\u{e60b}', // ??? "jsx" => '\u{e7ba}', // ??? "ksh" => '\u{f489}', // ??? - "latex" => '\u{e600}', // ??? + "latex" => '\u{f034}', // ??? "less" => '\u{e758}', // ??? "lhs" => '\u{e777}', // ??? "license" => '\u{f718}', // ??? @@ -297,7 +297,7 @@ "taz" => '\u{f410}', // ??? "tbz" => '\u{f410}', // ??? "tbz2" => '\u{f410}', // ??? - "tex" => '\u{e600}', // ??? + "tex" => '\u{f034}', // ??? "tiff" => '\u{f1c5}', // ??? "toml" => '\u{e615}', // ??? "ts" => '\u{e628}', // ??? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/output/render/size.rs new/exa-0.10.1/src/output/render/size.rs --- old/exa-0.10.0/src/output/render/size.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/output/render/size.rs 2021-04-12 23:28:31.000000000 +0200 @@ -36,20 +36,20 @@ }; let (prefix, n) = match result { - NumberPrefix::Standalone(b) => return TextCell::paint(colours.size(None), b.to_string()), + NumberPrefix::Standalone(b) => return TextCell::paint(colours.size(None), numerics.format_int(b)), NumberPrefix::Prefixed(p, n) => (p, n), }; let symbol = prefix.symbol(); - let decimal_to_diplay = if n < 10_f64 { 1 } else { 0 }; - let number = numerics.format_float(n, decimal_to_diplay); + let number = if n < 10_f64 { + numerics.format_float(n, 1) + } else { + numerics.format_int(n.round() as isize) + }; - // The numbers and symbols are guaranteed to be written in ASCII, so - // we can skip the display width calculation. - let width = DisplayWidth::from(number.len() + symbol.len()); - TextCell { - width, + // symbol is guaranteed to be ASCII since unit prefixes are hardcoded. + width: DisplayWidth::from(&*number) + symbol.len(), contents: vec![ colours.size(Some(prefix)).paint(number), colours.unit(Some(prefix)).paint(symbol), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/src/output/time.rs new/exa-0.10.1/src/output/time.rs --- old/exa-0.10.0/src/output/time.rs 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/src/output/time.rs 2021-04-12 23:28:31.000000000 +0200 @@ -2,7 +2,7 @@ use std::time::{SystemTime, UNIX_EPOCH}; -use datetime::{LocalDateTime, TimeZone, DatePiece, TimePiece, Month}; +use datetime::{LocalDateTime, TimeZone, DatePiece, TimePiece}; use datetime::fmt::DateFormat; use lazy_static::lazy_static; @@ -75,40 +75,25 @@ #[allow(trivial_numeric_casts)] fn default_local(time: SystemTime) -> String { let date = LocalDateTime::at(systemtime_epoch(time)); - - if date.year() == *CURRENT_YEAR { - format!("{:2} {} {:02}:{:02}", - date.day(), month_to_abbrev(date.month()), - date.hour(), date.minute()) - } - else { - let date_format = match *MAXIMUM_MONTH_WIDTH { - 4 => &*FOUR_WIDE_DATE_TIME, - 5 => &*FIVE_WIDE_DATE_TIME, - _ => &*OTHER_WIDE_DATE_TIME, - }; - - date_format.format(&date, &*LOCALE) - } + let date_format = get_dateformat(&date); + date_format.format(&date, &*LOCALE) } #[allow(trivial_numeric_casts)] fn default_zoned(time: SystemTime, zone: &TimeZone) -> String { let date = zone.to_zoned(LocalDateTime::at(systemtime_epoch(time))); + let date_format = get_dateformat(&date); + date_format.format(&date, &*LOCALE) +} - if date.year() == *CURRENT_YEAR { - format!("{:2} {} {:02}:{:02}", - date.day(), month_to_abbrev(date.month()), - date.hour(), date.minute()) - } - else { - let date_format = match *MAXIMUM_MONTH_WIDTH { - 4 => &*FOUR_WIDE_DATE_YEAR, - 5 => &*FIVE_WIDE_DATE_YEAR, - _ => &*OTHER_WIDE_DATE_YEAR, - }; - - date_format.format(&date, &*LOCALE) +fn get_dateformat(date: &LocalDateTime) -> &'static DateFormat<'static> { + match (is_recent(&date), *MAXIMUM_MONTH_WIDTH) { + (true, 4) => &FOUR_WIDE_DATE_TIME, + (true, 5) => &FIVE_WIDE_DATE_TIME, + (true, _) => &OTHER_WIDE_DATE_TIME, + (false, 4) => &FOUR_WIDE_DATE_YEAR, + (false, 5) => &FIVE_WIDE_DATE_YEAR, + (false, _) => &OTHER_WIDE_DATE_YEAR, } } @@ -153,7 +138,7 @@ fn iso_local(time: SystemTime) -> String { let date = LocalDateTime::at(systemtime_epoch(time)); - if is_recent(date) { + if is_recent(&date) { format!("{:02}-{:02} {:02}:{:02}", date.month() as usize, date.day(), date.hour(), date.minute()) @@ -168,7 +153,7 @@ fn iso_zoned(time: SystemTime, zone: &TimeZone) -> String { let date = zone.to_zoned(LocalDateTime::at(systemtime_epoch(time))); - if is_recent(date) { + if is_recent(&date) { format!("{:02}-{:02} {:02}:{:02}", date.month() as usize, date.day(), date.hour(), date.minute()) @@ -206,27 +191,10 @@ }) } -fn is_recent(date: LocalDateTime) -> bool { +fn is_recent(date: &LocalDateTime) -> bool { date.year() == *CURRENT_YEAR } -fn month_to_abbrev(month: Month) -> &'static str { - match month { - Month::January => "Jan", - Month::February => "Feb", - Month::March => "Mar", - Month::April => "Apr", - Month::May => "May", - Month::June => "Jun", - Month::July => "Jul", - Month::August => "Aug", - Month::September => "Sep", - Month::October => "Oct", - Month::November => "Nov", - Month::December => "Dec", - } -} - lazy_static! { @@ -250,15 +218,15 @@ }; static ref FOUR_WIDE_DATE_TIME: DateFormat<'static> = DateFormat::parse( - "{2>:D} {4<:M} {2>:h}:{02>:m}" + "{2>:D} {4<:M} {02>:h}:{02>:m}" ).unwrap(); static ref FIVE_WIDE_DATE_TIME: DateFormat<'static> = DateFormat::parse( - "{2>:D} {5<:M} {2>:h}:{02>:m}" + "{2>:D} {5<:M} {02>:h}:{02>:m}" ).unwrap(); static ref OTHER_WIDE_DATE_TIME: DateFormat<'static> = DateFormat::parse( - "{2>:D} {:M} {2>:h}:{02>:m}" + "{2>:D} {:M} {02>:h}:{02>:m}" ).unwrap(); static ref FOUR_WIDE_DATE_YEAR: DateFormat<'static> = DateFormat::parse( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/details-view-dates.toml new/exa-0.10.1/xtests/details-view-dates.toml --- old/exa-0.10.0/xtests/details-view-dates.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/details-view-dates.toml 2021-04-12 23:28:31.000000000 +0200 @@ -68,7 +68,7 @@ [[cmd]] name = "???exa -l??? using a locale with 4-character-long month abbreviations (???ja_JP???) sizes the date column correctly" shell = "exa -l /testcases/dates" -environment = { LC_ALL = "ja_JP.UTF-8", LANG = "ja_JP.UTF-8" } +environment = { LC_TIME = "ja_JP.UTF-8", LANG = "ja_JP.UTF-8" } stdout = { file = "outputs/dates_long_localejp.ansitxt" } stderr = { empty = true } status = 0 @@ -77,8 +77,17 @@ [[cmd]] name = "???exa -l??? using a locale with 5-character-long month abbreviations (???fr_FR???) sizes the date column correctly" shell = "exa -l /testcases/dates" -environment = { LC_ALL = "fr_FR.UTF-8", LANG = "fr_FR.UTF-8" } +environment = { LC_TIME = "fr_FR.UTF-8", LANG = "fr_FR.UTF-8" } stdout = { file = "outputs/dates_long_localefr.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'long', 'locales' ] + +[[cmd]] +name = "???exa -l??? using a locale (???fr_FR???) display dates of the current year with localized month name" +shell = "exa -l /testcases/files" +environment = { LC_TIME = "fr_FR.UTF-8", LANG = "fr_FR.UTF-8" } +stdout = { file = "outputs/dates_long_currentyear_localefr.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'long', 'locales' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/details-view-filesizes.toml new/exa-0.10.1/xtests/details-view-filesizes.toml --- old/exa-0.10.0/xtests/details-view-filesizes.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/details-view-filesizes.toml 2021-04-12 23:28:31.000000000 +0200 @@ -61,3 +61,14 @@ stderr = { empty = true } status = 0 tags = [ 'long', 'colour-scale', 'bytes' ] + +[[cmd]] +name = "???exa -l??? produces a details table with major and minor device IDs" +shell = "cd /dev; exa -l mem null port zero full random urandom --sort=none --no-time" +stdout = { file = "outputs/dev_long.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'long', 'dev' ] + +# these particular device IDs should be fixed: +# https://raw.githubusercontent.com/torvalds/linux/master/Documentation/admin-guide/devices.txt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/details-view.toml new/exa-0.10.1/xtests/details-view.toml --- old/exa-0.10.0/xtests/details-view.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/details-view.toml 2021-04-12 23:28:31.000000000 +0200 @@ -43,3 +43,11 @@ stderr = { empty = true } status = 0 tags = [ 'long', 'classify' ] + +[[cmd]] +name = "???exa -lF??? handles and classifies symlink kinds" +shell = "exa -lF --no-time /testcases/links" +stdout = { file = "outputs/links_long_classify.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'long', 'classify' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/errors.toml new/exa-0.10.1/xtests/errors.toml --- old/exa-0.10.0/xtests/errors.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/errors.toml 2021-04-12 23:28:31.000000000 +0200 @@ -1,3 +1,22 @@ +# Command-line errors + +[[cmd]] +name = "???exa --aoeu??? displays an error" +shell = "exa --aoeu" +stdout = { empty = true } +stderr = { file = "outputs/error_invalid_option.ansitxt" } +status = 3 +tags = [ 'error' ] + +[[cmd]] +name = "???exa -Taa??? displays an error" +shell = "exa -Taa" +stdout = { empty = true } +stderr = { file = "outputs/error_tree_all_all.ansitxt" } +status = 3 +tags = [ 'error' ] + + # Error suggestions [[cmd]] @@ -15,3 +34,85 @@ stderr = { string = "To sort newest files last, try \"--sort newest\", or just \"-snew\""} status = 3 tags = [ 'error', 'long', 'sort' ] + + +# Invalid values for $COLUMNS + +[[cmd]] +name = "???COLUMNS=999... exa??? shows an error about the number size" +shell = "exa" +environment = { "COLUMNS" = "99999999999999999999999" } +stdout = { empty = true } +stderr = { file = "outputs/error_columns_nines.ansitxt" } +status = 3 +tags = [ 'error', 'env' ] + +[[cmd]] +name = "???COLUMNS=abcdef exa??? shows an error about invalid digits" +shell = "exa" +environment = { "COLUMNS" = "abcdef" } +stdout = { empty = true } +stderr = { file = "outputs/error_columns_invalid.ansitxt" } +status = 3 +tags = [ 'error', 'env' ] + + +# Invalid values for $EXA_GRID_ROWS + +[[cmd]] +name = "???EXA_GRID_ROWS=999... exa -lG??? shows an error about the number size" +shell = "exa -lG" +environment = { "EXA_GRID_ROWS" = "99999999999999999999999" } +stdout = { empty = true } +stderr = { file = "outputs/error_grid_rows_nines.ansitxt" } +status = 3 +tags = [ 'error', 'env' ] + +[[cmd]] +name = "???EXA_GRID_ROWS=abcdef exa -lG??? shows an error about invalid digits" +shell = "exa -lG" +environment = { "EXA_GRID_ROWS" = "abcdef" } +stdout = { empty = true } +stderr = { file = "outputs/error_grid_rows_invalid.ansitxt" } +status = 3 +tags = [ 'error', 'env' ] + + +# Invalid values for $EXA_ICON_SPACING + +[[cmd]] +name = "???EXA_ICON_SPACING=999... exa --icons??? shows an error about the number size" +shell = "exa --icons" +environment = { "EXA_ICON_SPACING" = "99999999999999999999999" } +stdout = { empty = true } +stderr = { file = "outputs/error_icon_spacing_nines.ansitxt" } +status = 3 +tags = [ 'error', 'env', 'icons' ] + +[[cmd]] +name = "???EXA_ICON_SPACING=abcdef exa --icons??? shows an error about invalid digits" +shell = "exa --icons" +environment = { "EXA_ICON_SPACING" = "abcdef" } +stdout = { empty = true } +stderr = { file = "outputs/error_icon_spacing_invalid.ansitxt" } +status = 3 +tags = [ 'error', 'env', 'icons' ] + + +# Invalid values for --level (-L) + +[[cmd]] +name = "???exa -TL999...??? shows an error about the number size" +shell = "exa -TL99999999999999999999999" +stdout = { empty = true } +stderr = { file = "outputs/error_level_nines.ansitxt" } +status = 3 +tags = [ 'error', 'tree', 'level' ] + +[[cmd]] +name = "???exa -TLabcdef??? shows an error about invalid digits" +shell = "exa -TLabcdef" +stdout = { empty = true } +stderr = { file = "outputs/error_level_invalid.ansitxt" } +status = 3 +tags = [ 'error', 'tree', 'level' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/git.toml new/exa-0.10.1/xtests/git.toml --- old/exa-0.10.0/xtests/git.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/git.toml 2021-04-12 23:28:31.000000000 +0200 @@ -101,7 +101,7 @@ tags = [ 'long', 'git' ] [[cmd]] -name = "???exa --git -l??? with an ignored directory argument does not flag the contents as ignored" +name = "???exa --git -l??? with an ignored directory argument flags the contents as ignored" shell = "exa --git -l /testcases/git2/target" stdout = { file = "outputs/git2_long_ignoreddir.ansitxt" } stderr = { empty = true } @@ -109,6 +109,14 @@ tags = [ 'long', 'git' ] [[cmd]] +name = "???exa --git -l --list-dirs??? with a directory argument doesn???t flag it as ignored if only the content is" +shell = "exa --git -l --list-dirs /testcases/git2/ignoreds/nested2" +stdout = { file = "outputs/git2_long_ignoredcontent.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'long', 'git' ] + +[[cmd]] name = "???exa --git -l??? with a nested repository argument uses the sub-repository rules" shell = "exa --git -l /testcases/git2/deeply/nested/repository" stdout = { file = "outputs/git2_long_nested.ansitxt" } @@ -155,7 +163,7 @@ tags = [ 'long', 'git' ] [[cmd]] -name = "???exa --git -l??? shows a Git status column for multiple repositories across multiple directories" +name = "???exa --git -l??? shows a Git status column for multiple repositories across multiple directories 2" shell = "exa --git -l /testcases/{git2/deeply/nested/directory,git/edits,git2/target,git2/deeply,git}" stdout = { file = "outputs/git1+2_long_nested.ansitxt" } stderr = { empty = true } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/grid-details-view.toml new/exa-0.10.1/xtests/grid-details-view.toml --- old/exa-0.10.0/xtests/grid-details-view.toml 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/grid-details-view.toml 2021-04-12 23:28:31.000000000 +0200 @@ -81,19 +81,49 @@ # check if exa is using the minimum number of columns with headers [[cmd]] -name = "???COLUMN=200 exa -lGh??? with one file don???t produce extra columns even if there place for more" +name = "???COLUMNS=200 exa -lGh??? with one file don???t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_bytes" environment = { COLUMNS = "200" } -stdout = { file = "outputs/files_paths_long_grid_header_1file.ansitxt" } +stdout = { file = "outputs/files_long_grid_header_1file.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'env', 'long', 'grid' ] [[cmd]] -name = "???COLUMN=200 exa -lGh??? with several files don???t produce extra columns even if there place for more" +name = "???COLUMNS=200 exa -lGh??? with several files don???t produce extra columns even if there place for more" shell = "exa -lGh /testcases/files/10_{bytes,KiB}" environment = { COLUMNS = "200" } -stdout = { file = "outputs/files_paths_long_grid_header_2files.ansitxt" } +stdout = { file = "outputs/files_long_grid_header_2files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] + + +# check if EXA_GRID_ROWS is working + +[[cmd]] +name = "???COLUMNS=200 EXA_GRID_ROWS=2 exa -lG??? with three files produces a grid details of 1 column" +shell = "exa -lG /testcases/files/1_*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "2" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] + +[[cmd]] +name = "???COLUMNS=200 EXA_GRID_ROWS=5 exa -lG??? with 15 files produces a grid details of 3 columns" +shell = "exa -lG /testcases/files/1*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "5" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt" } +stderr = { empty = true } +status = 0 +tags = [ 'env', 'long', 'grid' ] + +[[cmd]] +name = "???COLUMNS=200 EXA_GRID_ROWS=6 exa -lG??? with 15 files produces a grid details of 1 column" +shell = "exa -lG /testcases/files/1*" +environment = { COLUMNS = "200", EXA_GRID_ROWS = "6" } +stdout = { file = "outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt" } stderr = { empty = true } status = 0 tags = [ 'env', 'long', 'grid' ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/dates_long_currentyear_localefr.ansitxt new/exa-0.10.1/xtests/outputs/dates_long_currentyear_localefr.ansitxt --- old/exa-0.10.0/xtests/outputs/dates_long_currentyear_localefr.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/dates_long_currentyear_localefr.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,39 @@ +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1[0m cassowary [34m 1 janv. 12:34[0m 1_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1,0[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 1_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1,0[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 1_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m2[0m cassowary [34m 1 janv. 12:34[0m 2_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m2,0[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 2_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m2,1[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 2_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m3[0m cassowary [34m 1 janv. 12:34[0m 3_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m3,1[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 3_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m3,1[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 3_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m4[0m cassowary [34m 1 janv. 12:34[0m 4_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m4,1[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 4_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m4,2[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 4_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m5[0m cassowary [34m 1 janv. 12:34[0m 5_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m5,1[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 5_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m5,2[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 5_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m6[0m cassowary [34m 1 janv. 12:34[0m 6_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m6,1[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 6_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m6,3[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 6_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m7[0m cassowary [34m 1 janv. 12:34[0m 7_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m7,2[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 7_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m7,3[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 7_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m8[0m cassowary [34m 1 janv. 12:34[0m 8_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m8,2[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 8_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m8,4[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 8_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m9[0m cassowary [34m 1 janv. 12:34[0m 9_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m9,2[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 9_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m9,4[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 9_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 janv. 12:34[0m 10_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 10_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 10_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m cassowary [34m 1 janv. 12:34[0m 11_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 11_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 11_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m cassowary [34m 1 janv. 12:34[0m 12_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 12_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 12_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m cassowary [34m 1 janv. 12:34[0m 13_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mk[0m cassowary [34m 1 janv. 12:34[0m 13_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m14[0m[32mM[0m cassowary [34m 1 janv. 12:34[0m 13_MiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/dev_long.ansitxt new/exa-0.10.1/xtests/outputs/dev_long.ansitxt --- old/exa-0.10.0/xtests/outputs/dev_long.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/dev_long.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,7 @@ +[1;33mcr[31mw[0m[38;5;244m-[33mr[38;5;244m-----[0m [1;32m1[0m[38;5;244m,[32m1[0m root [1;33mmem[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[31mw[38;5;244m-[0m [1;32m1[0m[38;5;244m,[32m3[0m root [1;33mnull[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[38;5;244m-----[0m [1;32m1[0m[38;5;244m,[32m4[0m root [1;33mport[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[31mw[38;5;244m-[0m [1;32m1[0m[38;5;244m,[32m5[0m root [1;33mzero[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[31mw[38;5;244m-[0m [1;32m1[0m[38;5;244m,[32m7[0m root [1;33mfull[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[31mw[38;5;244m-[0m [1;32m1[0m[38;5;244m,[32m8[0m root [1;33mrandom[0m +[1;33mcr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[31mw[38;5;244m-[0m [1;32m1[0m[38;5;244m,[32m9[0m root [1;33murandom[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_columns_invalid.ansitxt new/exa-0.10.1/xtests/outputs/error_columns_invalid.ansitxt --- old/exa-0.10.0/xtests/outputs/error_columns_invalid.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_columns_invalid.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "abcdef" not valid for environment variable COLUMNS: invalid digit found in string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_columns_nines.ansitxt new/exa-0.10.1/xtests/outputs/error_columns_nines.ansitxt --- old/exa-0.10.0/xtests/outputs/error_columns_nines.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_columns_nines.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "99999999999999999999999" not valid for environment variable COLUMNS: number too large to fit in target type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_grid_rows_invalid.ansitxt new/exa-0.10.1/xtests/outputs/error_grid_rows_invalid.ansitxt --- old/exa-0.10.0/xtests/outputs/error_grid_rows_invalid.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_grid_rows_invalid.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "abcdef" not valid for environment variable EXA_GRID_ROWS: invalid digit found in string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_grid_rows_nines.ansitxt new/exa-0.10.1/xtests/outputs/error_grid_rows_nines.ansitxt --- old/exa-0.10.0/xtests/outputs/error_grid_rows_nines.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_grid_rows_nines.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "99999999999999999999999" not valid for environment variable EXA_GRID_ROWS: number too large to fit in target type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_icon_spacing_invalid.ansitxt new/exa-0.10.1/xtests/outputs/error_icon_spacing_invalid.ansitxt --- old/exa-0.10.0/xtests/outputs/error_icon_spacing_invalid.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_icon_spacing_invalid.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "abcdef" not valid for environment variable EXA_ICON_SPACING: invalid digit found in string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_icon_spacing_nines.ansitxt new/exa-0.10.1/xtests/outputs/error_icon_spacing_nines.ansitxt --- old/exa-0.10.0/xtests/outputs/error_icon_spacing_nines.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_icon_spacing_nines.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "99999999999999999999999" not valid for environment variable EXA_ICON_SPACING: number too large to fit in target type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_invalid_option.ansitxt new/exa-0.10.1/xtests/outputs/error_invalid_option.ansitxt --- old/exa-0.10.0/xtests/outputs/error_invalid_option.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_invalid_option.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Unknown argument --aoeu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_level_invalid.ansitxt new/exa-0.10.1/xtests/outputs/error_level_invalid.ansitxt --- old/exa-0.10.0/xtests/outputs/error_level_invalid.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_level_invalid.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "abcdef" not valid for option --level (-L): invalid digit found in string diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_level_nines.ansitxt new/exa-0.10.1/xtests/outputs/error_level_nines.ansitxt --- old/exa-0.10.0/xtests/outputs/error_level_nines.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_level_nines.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Value "99999999999999999999999" not valid for option --level (-L): number too large to fit in target type diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/error_tree_all_all.ansitxt new/exa-0.10.1/xtests/outputs/error_tree_all_all.ansitxt --- old/exa-0.10.0/xtests/outputs/error_tree_all_all.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/error_tree_all_all.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +exa: Option --tree is useless given --all --all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt --- old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_2_3files.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,3 @@ +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_MiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt --- old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_5_15files.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,5 @@ +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_MiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_KiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m14[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_MiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_KiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_MiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_KiB .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_MiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt --- old/exa-0.10.0/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/files_long_grid_exa_grid_rows_6_15files.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,15 @@ +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m1.0[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m1_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m11[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m11_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m12[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m12_MiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_bytes +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m13[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_KiB +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m14[0m[32mM[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m13_MiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_long_grid_header_1file.ansitxt new/exa-0.10.1/xtests/outputs/files_long_grid_header_1file.ansitxt --- old/exa-0.10.0/xtests/outputs/files_long_grid_header_1file.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/files_long_grid_header_1file.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,2 @@ +[4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_long_grid_header_2files.ansitxt new/exa-0.10.1/xtests/outputs/files_long_grid_header_2files.ansitxt --- old/exa-0.10.0/xtests/outputs/files_long_grid_header_2files.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/files_long_grid_header_2files.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,2 @@ +[4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m [4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_KiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_paths_long_grid_header_1file.ansitxt new/exa-0.10.1/xtests/outputs/files_paths_long_grid_header_1file.ansitxt --- old/exa-0.10.0/xtests/outputs/files_paths_long_grid_header_1file.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/files_paths_long_grid_header_1file.ansitxt 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -[4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/files_paths_long_grid_header_2files.ansitxt new/exa-0.10.1/xtests/outputs/files_paths_long_grid_header_2files.ansitxt --- old/exa-0.10.0/xtests/outputs/files_paths_long_grid_header_2files.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/files_paths_long_grid_header_2files.ansitxt 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -[4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m [4mPermissions[0m [4mSize[0m [4mUser[0m [4mDate Modified[0m [4mName[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_bytes .[1;33mr[31mw[0m[38;5;244m-[33mr[38;5;244m--[33mr[38;5;244m--[0m [1;32m10[0m[32mk[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/files/[0m10_KiB diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git1+2_long_nested.ansitxt new/exa-0.10.1/xtests/outputs/git1+2_long_nested.ansitxt --- old/exa-0.10.0/xtests/outputs/git1+2_long_nested.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git1+2_long_nested.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -8,7 +8,7 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m20[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[34mM[0m unstaged /testcases/git2/target: -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m another ignored file +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m another ignored file /testcases/git2/deeply: [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [1;34mnested[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_grid_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_grid_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_grid_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_grid_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1 +1 @@ -[38;5;92mmusic.m4a[0m [1;34mnested[0m +[38;5;92mmusic.m4a[0m [1;34mnested[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_lines_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_lines_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_lines_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_lines_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,2 +1,3 @@ [38;5;92mmusic.m4a[0m [1;34mnested[0m +[1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,2 +1,3 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mmusic.m4a[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_grid_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_grid_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_grid_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_grid_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1 +1 @@ -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mmusic.m4a[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mmusic.m4a[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_recurse_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_recurse_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_recurse_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_recurse_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,5 +1,8 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mmusic.m4a[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested2[0m /testcases/git2/ignoreds/nested: .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mfunky chicken.m4a[0m + +/testcases/git2/ignoreds/nested2: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_tree_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_tree_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_long_tree_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_long_tree_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,4 +1,5 @@ [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [36m/testcases/git2/[1;34mignoreds[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m?????????[0m [38;5;92mmusic.m4a[0m -[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m?????????[0m [1;34mnested[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m?????????[0m [1;34mnested[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m?????????[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_ignoreds_tree_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_ignoreds_tree_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_ignoreds_tree_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_ignoreds_tree_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,4 +1,5 @@ [36m/testcases/git2/[1;34mignoreds[0m [38;5;244m?????????[0m [38;5;92mmusic.m4a[0m -[38;5;244m?????????[0m [1;34mnested[0m -[38;5;244m ?????????[0m [38;5;92mfunky chicken.m4a[0m +[38;5;244m?????????[0m [1;34mnested[0m +[38;5;244m??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[38;5;244m?????????[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_ignoredcontent.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_ignoredcontent.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_ignoredcontent.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/git2_long_ignoredcontent.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1 @@ +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [36m/testcases/git2/ignoreds/[1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_ignoreddir.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_ignoreddir.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_ignoreddir.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_ignoreddir.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1 +1 @@ -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m another ignored file +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m another ignored file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_ignorednested.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_ignorednested.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_ignorednested.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_ignorednested.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -1,3 +1,4 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;92mmusic.m4a[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;92mmusic.mp3[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_multiple.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_multiple.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_multiple.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_multiple.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -5,6 +5,7 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;92mmusic.m4a[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;92mmusic.mp3[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [1;34mnested2[0m /testcases/git2/target: -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m another ignored file +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m another ignored file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_recurse.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_recurse.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_recurse.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_recurse.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -20,10 +20,14 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;92mmusic.m4a[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;92mmusic.mp3[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [1;34mnested2[0m /testcases/git2/ignoreds/nested: .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;92m70s grove.mp3[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;92mfunky chicken.m4a[0m +/testcases/git2/ignoreds/nested2: +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;92mievan polkka.mp3[0m + /testcases/git2/target: -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m another ignored file +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m another ignored file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_recurse_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_recurse_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_recurse_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_recurse_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -18,6 +18,9 @@ /testcases/git2/ignoreds: .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mmusic.m4a[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [1;34mnested2[0m /testcases/git2/ignoreds/nested: .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;92mfunky chicken.m4a[0m + +/testcases/git2/ignoreds/nested2: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_tree.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_tree.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_tree.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_tree.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -9,8 +9,10 @@ [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m?????????[0m [1;34mignoreds[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m??? ?????????[0m [38;5;92mmusic.m4a[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m??? ?????????[0m [38;5;92mmusic.mp3[0m -[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m??? ?????????[0m [1;34mnested[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m??? ?????????[0m [38;5;92m70s grove.mp3[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m??? ?????????[0m [1;34mnested[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m??? ??? ?????????[0m [38;5;92m70s grove.mp3[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[32mN[0m [38;5;244m??? ??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [38;5;244m??? ?????????[0m [1;34mnested2[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m??? ?????????[0m [38;5;92mievan polkka.mp3[0m [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m?????????[0m [1;34mtarget[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m--[0m [38;5;244m ?????????[0m another ignored file +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m-[0m[2mI[0m [38;5;244m ?????????[0m another ignored file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_long_tree_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_long_tree_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_long_tree_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_long_tree_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -8,5 +8,6 @@ .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m??? ?????????[0m subfile [1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m?????????[0m [1;34mignoreds[0m .[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [38;5;92mmusic.m4a[0m -[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [1;34mnested[0m -.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [1;34mnested[0m +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[1;34md[33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[38;5;244m-[32mx[0m [38;5;244m-[0m cassowary [34m 1 Jan 12:34[0m [38;5;244m ?????????[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/git2_tree_gitignore.ansitxt new/exa-0.10.1/xtests/outputs/git2_tree_gitignore.ansitxt --- old/exa-0.10.0/xtests/outputs/git2_tree_gitignore.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/git2_tree_gitignore.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -8,5 +8,6 @@ [38;5;244m??? ?????????[0m subfile [38;5;244m?????????[0m [1;34mignoreds[0m [38;5;244m ?????????[0m [38;5;92mmusic.m4a[0m -[38;5;244m ?????????[0m [1;34mnested[0m -[38;5;244m ?????????[0m [38;5;92mfunky chicken.m4a[0m +[38;5;244m ?????????[0m [1;34mnested[0m +[38;5;244m ??? ?????????[0m [38;5;92mfunky chicken.m4a[0m +[38;5;244m ?????????[0m [1;34mnested2[0m diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/help.ansitxt new/exa-0.10.1/xtests/outputs/help.ansitxt --- old/exa-0.10.0/xtests/outputs/help.ansitxt 2021-04-03 18:42:56.000000000 +0200 +++ new/exa-0.10.1/xtests/outputs/help.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -20,7 +20,7 @@ FILTERING AND SORTING OPTIONS -a, --all show hidden and 'dot' files - -d, --list-dirs list directories like regular files + -d, --list-dirs list directories as files; don't list their contents -L, --level DEPTH limit the depth of recursion -r, --reverse reverse the sort order -s, --sort SORT_FIELD which field to sort by diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/exa-0.10.0/xtests/outputs/links_long_classify.ansitxt new/exa-0.10.1/xtests/outputs/links_long_classify.ansitxt --- old/exa-0.10.0/xtests/outputs/links_long_classify.ansitxt 1970-01-01 01:00:00.000000000 +0100 +++ new/exa-0.10.1/xtests/outputs/links_long_classify.ansitxt 2021-04-12 23:28:31.000000000 +0200 @@ -0,0 +1,10 @@ +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m7[0m [1;33mvagrant[0m [36mbroken[0m [31m->[0m [4;31mnowhere[0m +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m1[0m [1;33mvagrant[0m [36mcurrent_dir[0m [38;5;244m->[0m [1;34m.[0m/ +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m12[0m [1;33mvagrant[0m [36mforbidden[0m [31m->[0m [4;31m/proc/1/root[0m +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m6[0m [1;33mvagrant[0m [36mitself[0m [31m->[0m [4;31mitself[0m +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m2[0m [1;33mvagrant[0m [36mparent_dir[0m [38;5;244m->[0m [1;34m..[0m/ +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m1[0m [1;33mvagrant[0m [36mroot[0m [38;5;244m->[0m [1;34m/[0m/ +.[1;33mr[31mw[0m[38;5;244m-[33mr[31mw[38;5;244m-[33mr[38;5;244m--[0m [1;32m0[0m [1;33mvagrant[0m some_file +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m26[0m [1;33mvagrant[0m [36msome_file_absolute[0m [38;5;244m->[0m [36m/testcases/links/[0msome_file +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m9[0m [1;33mvagrant[0m [36msome_file_relative[0m [38;5;244m->[0m some_file +[36ml[1;33mr[31mw[32mx[0m[33mr[31mw[32mx[33mr[31mw[32mx[0m [1;32m4[0m [1;33mvagrant[0m [36musr[0m [38;5;244m->[0m [36m/[1;34musr[0m/ ++++++ vendor.tar.xz ++++++ /work/SRC/openSUSE:Factory/exa/vendor.tar.xz /work/SRC/openSUSE:Factory/.exa.new.2401/vendor.tar.xz differ: char 1, line 1