Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package dust for openSUSE:Factory checked in at 2025-04-02 21:05:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dust (Old) and /work/SRC/openSUSE:Factory/.dust.new.1907 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dust" Wed Apr 2 21:05:57 2025 rev:10 rq:1266625 version:1.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/dust/dust.changes 2025-03-03 16:26:15.964234253 +0100 +++ /work/SRC/openSUSE:Factory/.dust.new.1907/dust.changes 2025-04-02 21:06:03.534076448 +0200 @@ -1,0 +2,16 @@ +Wed Apr 02 16:03:15 UTC 2025 - mvet...@suse.com + +- Update to version 1.2.0: + * release: increment version (#485) + * fix: status mesages go to stderr not stdout (#483) + * fix: all arguments now use '-' instead of '_' (#484) + * feat: Abort immedietly when ^C is received. (#478) + * deps: cargo update (#474) + * rewrite: Reduce indentation with guard clause + * perf: Canonicalize ignored absolute path only once + * refactor: Extract is_ignored_path function + * perf: Do not canonicalize non-absolute ignored path + * fix: Ignoring absolute path with `-X` option + * release: Increment version + +------------------------------------------------------------------- Old: ---- dust-1.1.2.obscpio New: ---- dust-1.2.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dust.spec ++++++ --- /var/tmp/diff_new_pack.kmPld7/_old 2025-04-02 21:06:04.938135536 +0200 +++ /var/tmp/diff_new_pack.kmPld7/_new 2025-04-02 21:06:04.938135536 +0200 @@ -17,7 +17,7 @@ Name: dust -Version: 1.1.2 +Version: 1.2.0 Release: 0 Summary: A more intuitive version of du Group: Productivity/File utilities ++++++ _service ++++++ --- /var/tmp/diff_new_pack.kmPld7/_old 2025-04-02 21:06:04.974137052 +0200 +++ /var/tmp/diff_new_pack.kmPld7/_new 2025-04-02 21:06:04.978137220 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/bootandy/dust</param> <param name="scm">git</param> <param name="versionformat">@PARENT_TAG@</param> - <param name="revision">v1.1.2</param> + <param name="revision">v1.2.0</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> <param name="exclude">ci/*</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.kmPld7/_old 2025-04-02 21:06:04.998138061 +0200 +++ /var/tmp/diff_new_pack.kmPld7/_new 2025-04-02 21:06:05.002138230 +0200 @@ -3,6 +3,6 @@ <param name="url">git://github.com/bootandy/dust</param> <param name="changesrevision">c2546684c63bcd0ed99cfee22c5e855c7b825502</param></service><service name="tar_scm"> <param name="url">https://github.com/bootandy/dust</param> - <param name="changesrevision">b24f4c8096557529e63e6fb09fc6ecdb497d153b</param></service></servicedata> + <param name="changesrevision">646cdd976ded146779f4fc57c34c56fa850d728f</param></service></servicedata> (No newline at EOF) ++++++ dust-1.1.2.obscpio -> dust-1.2.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/Cargo.lock new/dust-1.2.0/Cargo.lock --- old/dust-1.1.2/Cargo.lock 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/Cargo.lock 2025-04-02 00:19:59.000000000 +0200 @@ -115,9 +115,9 @@ [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "bstr" @@ -138,9 +138,9 @@ [[package]] name = "cc" -version = "1.2.12" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755717a7de9ec452bf7f3f1a3099085deabd7f2962b861dae91ecd7a365903d2" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "shlex", ] @@ -159,32 +159,32 @@ [[package]] name = "chrono" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "clap" -version = "4.5.28" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.27" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" dependencies = [ "anstream", "anstyle", @@ -194,9 +194,9 @@ [[package]] name = "clap_complete" -version = "4.5.44" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375f9d8255adeeedd51053574fd8d4ba875ea5fa558e86617b07f09f1680c8b6" +checksum = "f5c5508ea23c5366f77e53f5a0070e5a84e51687ec3ef9e0464c86dc8d13ce98" dependencies = [ "clap", ] @@ -309,7 +309,7 @@ [[package]] name = "du-dust" -version = "1.1.2" +version = "1.2.0" dependencies = [ "ansi_term", "assert_cmd", @@ -338,9 +338,9 @@ [[package]] name = "either" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "errno" @@ -438,9 +438,9 @@ [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" @@ -454,9 +454,9 @@ [[package]] name = "libc" -version = "0.2.169" +version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" [[package]] name = "libredox" @@ -464,7 +464,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "libc", ] @@ -476,15 +476,15 @@ [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" [[package]] name = "log" -version = "0.4.25" +version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" [[package]] name = "lscolors" @@ -508,7 +508,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases", "libc", @@ -544,9 +544,9 @@ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" [[package]] name = "overload" @@ -556,9 +556,9 @@ [[package]] name = "portable-atomic" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] name = "predicates" @@ -589,18 +589,18 @@ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -687,43 +687,43 @@ [[package]] name = "rustix" -version = "0.38.44" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.4.15", + "linux-raw-sys 0.9.2", "windows-sys 0.59.0", ] [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "serde" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.217" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", @@ -732,9 +732,9 @@ [[package]] name = "serde_json" -version = "1.0.138" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -762,9 +762,9 @@ [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -788,15 +788,15 @@ [[package]] name = "tempfile" -version = "3.16.0" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" dependencies = [ "cfg-if", "fastrand", "getrandom 0.3.1", "once_cell", - "rustix 0.38.44", + "rustix 1.0.1", "windows-sys 0.59.0", ] @@ -853,9 +853,9 @@ [[package]] name = "unicode-ident" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-width" @@ -992,6 +992,12 @@ ] [[package]] +name = "windows-link" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" + +[[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1136,5 +1142,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/Cargo.toml new/dust-1.2.0/Cargo.toml --- old/dust-1.1.2/Cargo.toml 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/Cargo.toml 2025-04-02 00:19:59.000000000 +0200 @@ -1,9 +1,9 @@ [package] name = "du-dust" description = "A more intuitive version of du" -version = "1.1.2" +version = "1.2.0" authors = ["bootandy <boota...@gmail.com>", "nebkor <c...@ardent.nebcorp.com>"] -edition = "2021" +edition = "2024" readme = "README.md" documentation = "https://github.com/bootandy/dust" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/completions/_dust new/dust-1.2.0/completions/_dust --- old/dust-1.1.2/completions/_dust 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/completions/_dust 2025-04-02 00:19:59.000000000 +0200 @@ -28,12 +28,12 @@ '--ignore-all-in-file=[Exclude any file or directory with a regex matching that listed in this file, the file entries will be added to the ignore regexs provided by --invert_filter]:FILE:_files' \ '-z+[Minimum size file to include in output]:MIN_SIZE:_default' \ '--min-size=[Minimum size file to include in output]:MIN_SIZE:_default' \ -'(-e --filter -t --file_types)*-v+[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$" ]:REGEX:_default' \ -'(-e --filter -t --file_types)*--invert-filter=[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$" ]:REGEX:_default' \ -'(-t --file_types)*-e+[Only include filepaths matching this regex. For png files type\: -e "\\.png\$" ]:REGEX:_default' \ -'(-t --file_types)*--filter=[Only include filepaths matching this regex. For png files type\: -e "\\.png\$" ]:REGEX:_default' \ +'(-e --filter -t --file-types)*-v+[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$" ]:REGEX:_default' \ +'(-e --filter -t --file-types)*--invert-filter=[Exclude filepaths matching this regex. To ignore png files type\: -v "\\.png\$" ]:REGEX:_default' \ +'(-t --file-types)*-e+[Only include filepaths matching this regex. For png files type\: -e "\\.png\$" ]:REGEX:_default' \ +'(-t --file-types)*--filter=[Only include filepaths matching this regex. For png files type\: -e "\\.png\$" ]:REGEX:_default' \ '-w+[Specify width of output overriding the auto detection of terminal width]:WIDTH:_default' \ -'--terminal_width=[Specify width of output overriding the auto detection of terminal width]:WIDTH:_default' \ +'--terminal-width=[Specify width of output overriding the auto detection of terminal width]:WIDTH:_default' \ '-o+[Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.]:FORMAT:(si b k m g t kb mb gb tb)' \ '--output-format=[Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.]:FORMAT:(si b k m g t kb mb gb tb)' \ '-S+[Specify memory to use as stack size - use if you see\: '\''fatal runtime error\: stack overflow'\'' (default low memory=1048576, high memory=1073741824)]:STACK_SIZE:_default' \ @@ -72,14 +72,14 @@ '-f[Directory '\''size'\'' is number of child files instead of disk size]' \ '--filecount[Directory '\''size'\'' is number of child files instead of disk size]' \ '-i[Do not display hidden files]' \ -'--ignore_hidden[Do not display hidden files]' \ +'--ignore-hidden[Do not display hidden files]' \ '(-d --depth -D --only-dir)-t[show only these file types]' \ -'(-d --depth -D --only-dir)--file_types[show only these file types]' \ +'(-d --depth -D --only-dir)--file-types[show only these file types]' \ '-P[Disable the progress indication.]' \ '--no-progress[Disable the progress indication.]' \ '--print-errors[Print path with errors.]' \ -'(-F --only-file -t --file_types)-D[Only directories will be displayed.]' \ -'(-F --only-file -t --file_types)--only-dir[Only directories will be displayed.]' \ +'(-F --only-file -t --file-types)-D[Only directories will be displayed.]' \ +'(-F --only-file -t --file-types)--only-dir[Only directories will be displayed.]' \ '(-D --only-dir)-F[Only files will be displayed. (Finds your largest files)]' \ '(-D --only-dir)--only-file[Only files will be displayed. (Finds your largest files)]' \ '-j[Output the directory tree as json to the current directory]' \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/completions/_dust.ps1 new/dust-1.2.0/completions/_dust.ps1 --- old/dust-1.1.2/completions/_dust.ps1 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/completions/_dust.ps1 2025-04-02 00:19:59.000000000 +0200 @@ -39,7 +39,7 @@ [CompletionResult]::new('-e', '-e', [CompletionResultType]::ParameterName, 'Only include filepaths matching this regex. For png files type: -e "\.png$" ') [CompletionResult]::new('--filter', '--filter', [CompletionResultType]::ParameterName, 'Only include filepaths matching this regex. For png files type: -e "\.png$" ') [CompletionResult]::new('-w', '-w', [CompletionResultType]::ParameterName, 'Specify width of output overriding the auto detection of terminal width') - [CompletionResult]::new('--terminal_width', '--terminal_width', [CompletionResultType]::ParameterName, 'Specify width of output overriding the auto detection of terminal width') + [CompletionResult]::new('--terminal-width', '--terminal-width', [CompletionResultType]::ParameterName, 'Specify width of output overriding the auto detection of terminal width') [CompletionResult]::new('-o', '-o', [CompletionResultType]::ParameterName, 'Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.') [CompletionResult]::new('--output-format', '--output-format', [CompletionResultType]::ParameterName, 'Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.') [CompletionResult]::new('-S', '-S ', [CompletionResultType]::ParameterName, 'Specify memory to use as stack size - use if you see: ''fatal runtime error: stack overflow'' (default low memory=1048576, high memory=1073741824)') @@ -78,9 +78,9 @@ [CompletionResult]::new('-f', '-f', [CompletionResultType]::ParameterName, 'Directory ''size'' is number of child files instead of disk size') [CompletionResult]::new('--filecount', '--filecount', [CompletionResultType]::ParameterName, 'Directory ''size'' is number of child files instead of disk size') [CompletionResult]::new('-i', '-i', [CompletionResultType]::ParameterName, 'Do not display hidden files') - [CompletionResult]::new('--ignore_hidden', '--ignore_hidden', [CompletionResultType]::ParameterName, 'Do not display hidden files') + [CompletionResult]::new('--ignore-hidden', '--ignore-hidden', [CompletionResultType]::ParameterName, 'Do not display hidden files') [CompletionResult]::new('-t', '-t', [CompletionResultType]::ParameterName, 'show only these file types') - [CompletionResult]::new('--file_types', '--file_types', [CompletionResultType]::ParameterName, 'show only these file types') + [CompletionResult]::new('--file-types', '--file-types', [CompletionResultType]::ParameterName, 'show only these file types') [CompletionResult]::new('-P', '-P ', [CompletionResultType]::ParameterName, 'Disable the progress indication.') [CompletionResult]::new('--no-progress', '--no-progress', [CompletionResultType]::ParameterName, 'Disable the progress indication.') [CompletionResult]::new('--print-errors', '--print-errors', [CompletionResultType]::ParameterName, 'Print path with errors.') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/completions/dust.bash new/dust-1.2.0/completions/dust.bash --- old/dust-1.1.2/completions/dust.bash 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/completions/dust.bash 2025-04-02 00:19:59.000000000 +0200 @@ -19,7 +19,7 @@ case "${cmd}" in dust) - opts="-d -T -n -p -X -I -L -x -s -r -c -C -b -B -z -R -f -i -v -e -t -w -P -D -F -o -S -j -M -A -y -m -h -V --depth --threads --config --number-of-lines --full-paths --ignore-directory --ignore-all-in-file --dereference-links --limit-filesystem --apparent-size --reverse --no-colors --force-colors --no-percent-bars --bars-on-right --min-size --screen-reader --skip-total --filecount --ignore_hidden --invert-filter --filter --file_types --terminal_width --no-progress --print-errors --only-dir --only-file --output-format --stack-size --output-json --mtime --atime --ctime --files0-from --collapse --filetime --help --version [PATH]..." + opts="-d -T -n -p -X -I -L -x -s -r -c -C -b -B -z -R -f -i -v -e -t -w -P -D -F -o -S -j -M -A -y -m -h -V --depth --threads --config --number-of-lines --full-paths --ignore-directory --ignore-all-in-file --dereference-links --limit-filesystem --apparent-size --reverse --no-colors --force-colors --no-percent-bars --bars-on-right --min-size --screen-reader --skip-total --filecount --ignore-hidden --invert-filter --filter --file-types --terminal-width --no-progress --print-errors --only-dir --only-file --output-format --stack-size --output-json --mtime --atime --ctime --files0-from --collapse --filetime --help --version [PATH]..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -126,7 +126,7 @@ COMPREPLY=($(compgen -f "${cur}")) return 0 ;; - --terminal_width) + --terminal-width) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/completions/dust.elv new/dust-1.2.0/completions/dust.elv --- old/dust-1.1.2/completions/dust.elv 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/completions/dust.elv 2025-04-02 00:19:59.000000000 +0200 @@ -36,7 +36,7 @@ cand -e 'Only include filepaths matching this regex. For png files type: -e "\.png$" ' cand --filter 'Only include filepaths matching this regex. For png files type: -e "\.png$" ' cand -w 'Specify width of output overriding the auto detection of terminal width' - cand --terminal_width 'Specify width of output overriding the auto detection of terminal width' + cand --terminal-width 'Specify width of output overriding the auto detection of terminal width' cand -o 'Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.' cand --output-format 'Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.' cand -S 'Specify memory to use as stack size - use if you see: ''fatal runtime error: stack overflow'' (default low memory=1048576, high memory=1073741824)' @@ -75,9 +75,9 @@ cand -f 'Directory ''size'' is number of child files instead of disk size' cand --filecount 'Directory ''size'' is number of child files instead of disk size' cand -i 'Do not display hidden files' - cand --ignore_hidden 'Do not display hidden files' + cand --ignore-hidden 'Do not display hidden files' cand -t 'show only these file types' - cand --file_types 'show only these file types' + cand --file-types 'show only these file types' cand -P 'Disable the progress indication.' cand --no-progress 'Disable the progress indication.' cand --print-errors 'Print path with errors.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/completions/dust.fish new/dust-1.2.0/completions/dust.fish --- old/dust-1.1.2/completions/dust.fish 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/completions/dust.fish 2025-04-02 00:19:59.000000000 +0200 @@ -7,7 +7,7 @@ complete -c dust -s z -l min-size -d 'Minimum size file to include in output' -r complete -c dust -s v -l invert-filter -d 'Exclude filepaths matching this regex. To ignore png files type: -v "\\.png$" ' -r complete -c dust -s e -l filter -d 'Only include filepaths matching this regex. For png files type: -e "\\.png$" ' -r -complete -c dust -s w -l terminal_width -d 'Specify width of output overriding the auto detection of terminal width' -r +complete -c dust -s w -l terminal-width -d 'Specify width of output overriding the auto detection of terminal width' -r complete -c dust -s o -l output-format -d 'Changes output display size. si will print sizes in powers of 1000. b k m g t kb mb gb tb will print the whole tree in that size.' -r -f -a "si\t'' b\t'' k\t'' @@ -39,8 +39,8 @@ complete -c dust -s R -l screen-reader -d 'For screen readers. Removes bars. Adds new column: depth level (May want to use -p too for full path)' complete -c dust -l skip-total -d 'No total row will be displayed' complete -c dust -s f -l filecount -d 'Directory \'size\' is number of child files instead of disk size' -complete -c dust -s i -l ignore_hidden -d 'Do not display hidden files' -complete -c dust -s t -l file_types -d 'show only these file types' +complete -c dust -s i -l ignore-hidden -d 'Do not display hidden files' +complete -c dust -s t -l file-types -d 'show only these file types' complete -c dust -s P -l no-progress -d 'Disable the progress indication.' complete -c dust -l print-errors -d 'Print path with errors.' complete -c dust -s D -l only-dir -d 'Only directories will be displayed.' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/man-page/dust.1 new/dust-1.2.0/man-page/dust.1 --- old/dust-1.1.2/man-page/dust.1 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/man-page/dust.1 2025-04-02 00:19:59.000000000 +0200 @@ -1,10 +1,10 @@ .ie \n(.g .ds Aq \(aq .el .ds Aq ' -.TH Dust 1 "Dust 1.1.2" +.TH Dust 1 "Dust 1.2.0" .SH NAME Dust \- Like du but more intuitive .SH SYNOPSIS -\fBdust\fR [\fB\-d\fR|\fB\-\-depth\fR] [\fB\-T\fR|\fB\-\-threads\fR] [\fB\-\-config\fR] [\fB\-n\fR|\fB\-\-number\-of\-lines\fR] [\fB\-p\fR|\fB\-\-full\-paths\fR] [\fB\-X\fR|\fB\-\-ignore\-directory\fR] [\fB\-I\fR|\fB\-\-ignore\-all\-in\-file\fR] [\fB\-L\fR|\fB\-\-dereference\-links\fR] [\fB\-x\fR|\fB\-\-limit\-filesystem\fR] [\fB\-s\fR|\fB\-\-apparent\-size\fR] [\fB\-r\fR|\fB\-\-reverse\fR] [\fB\-c\fR|\fB\-\-no\-colors\fR] [\fB\-C\fR|\fB\-\-force\-colors\fR] [\fB\-b\fR|\fB\-\-no\-percent\-bars\fR] [\fB\-B\fR|\fB\-\-bars\-on\-right\fR] [\fB\-z\fR|\fB\-\-min\-size\fR] [\fB\-R\fR|\fB\-\-screen\-reader\fR] [\fB\-\-skip\-total\fR] [\fB\-f\fR|\fB\-\-filecount\fR] [\fB\-i\fR|\fB\-\-ignore_hidden\fR] [\fB\-v\fR|\fB\-\-invert\-filter\fR] [\fB\-e\fR|\fB\-\-filter\fR] [\fB\-t\fR|\fB\-\-file_types\fR] [\fB\-w\fR|\fB\-\-terminal_width\fR] [\fB\-P\fR|\fB\-\-no\-progress\fR] [\fB\-\-print\-errors\fR] [\fB\-D\fR|\fB\-\-only\-dir\fR] [\fB\-F\fR|\fB\-\-only\-file\fR] [\fB\-o\fR|\fB\-\-output\-format\ fR] [\fB\-S\fR|\fB\-\-stack\-size\fR] [\fB\-j\fR|\fB\-\-output\-json\fR] [\fB\-M\fR|\fB\-\-mtime\fR] [\fB\-A\fR|\fB\-\-atime\fR] [\fB\-y\fR|\fB\-\-ctime\fR] [\fB\-\-files0\-from\fR] [\fB\-\-collapse\fR] [\fB\-m\fR|\fB\-\-filetime\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fIPATH\fR] +\fBdust\fR [\fB\-d\fR|\fB\-\-depth\fR] [\fB\-T\fR|\fB\-\-threads\fR] [\fB\-\-config\fR] [\fB\-n\fR|\fB\-\-number\-of\-lines\fR] [\fB\-p\fR|\fB\-\-full\-paths\fR] [\fB\-X\fR|\fB\-\-ignore\-directory\fR] [\fB\-I\fR|\fB\-\-ignore\-all\-in\-file\fR] [\fB\-L\fR|\fB\-\-dereference\-links\fR] [\fB\-x\fR|\fB\-\-limit\-filesystem\fR] [\fB\-s\fR|\fB\-\-apparent\-size\fR] [\fB\-r\fR|\fB\-\-reverse\fR] [\fB\-c\fR|\fB\-\-no\-colors\fR] [\fB\-C\fR|\fB\-\-force\-colors\fR] [\fB\-b\fR|\fB\-\-no\-percent\-bars\fR] [\fB\-B\fR|\fB\-\-bars\-on\-right\fR] [\fB\-z\fR|\fB\-\-min\-size\fR] [\fB\-R\fR|\fB\-\-screen\-reader\fR] [\fB\-\-skip\-total\fR] [\fB\-f\fR|\fB\-\-filecount\fR] [\fB\-i\fR|\fB\-\-ignore\-hidden\fR] [\fB\-v\fR|\fB\-\-invert\-filter\fR] [\fB\-e\fR|\fB\-\-filter\fR] [\fB\-t\fR|\fB\-\-file\-types\fR] [\fB\-w\fR|\fB\-\-terminal\-width\fR] [\fB\-P\fR|\fB\-\-no\-progress\fR] [\fB\-\-print\-errors\fR] [\fB\-D\fR|\fB\-\-only\-dir\fR] [\fB\-F\fR|\fB\-\-only\-file\fR] [\fB\-o\fR|\fB\-\-output\-form at\fR] [\fB\-S\fR|\fB\-\-stack\-size\fR] [\fB\-j\fR|\fB\-\-output\-json\fR] [\fB\-M\fR|\fB\-\-mtime\fR] [\fB\-A\fR|\fB\-\-atime\fR] [\fB\-y\fR|\fB\-\-ctime\fR] [\fB\-\-files0\-from\fR] [\fB\-\-collapse\fR] [\fB\-m\fR|\fB\-\-filetime\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fIPATH\fR] .SH DESCRIPTION Like du but more intuitive .SH OPTIONS @@ -66,7 +66,7 @@ \fB\-f\fR, \fB\-\-filecount\fR Directory \*(Aqsize\*(Aq is number of child files instead of disk size .TP -\fB\-i\fR, \fB\-\-ignore_hidden\fR +\fB\-i\fR, \fB\-\-ignore\-hidden\fR Do not display hidden files .TP \fB\-v\fR, \fB\-\-invert\-filter\fR=\fIREGEX\fR @@ -75,10 +75,10 @@ \fB\-e\fR, \fB\-\-filter\fR=\fIREGEX\fR Only include filepaths matching this regex. For png files type: \-e "\\.png$" .TP -\fB\-t\fR, \fB\-\-file_types\fR +\fB\-t\fR, \fB\-\-file\-types\fR show only these file types .TP -\fB\-w\fR, \fB\-\-terminal_width\fR=\fIWIDTH\fR +\fB\-w\fR, \fB\-\-terminal\-width\fR=\fIWIDTH\fR Specify width of output overriding the auto detection of terminal width .TP \fB\-P\fR, \fB\-\-no\-progress\fR @@ -137,4 +137,4 @@ [\fIPATH\fR] .SH VERSION -v1.1.2 +v1.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/cli.rs new/dust-1.2.0/src/cli.rs --- old/dust-1.1.2/src/cli.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/cli.rs 2025-04-02 00:19:59.000000000 +0200 @@ -1,4 +1,4 @@ -use clap::{builder::PossibleValue, value_parser, Arg, Command}; +use clap::{Arg, Command, builder::PossibleValue, value_parser}; // For single thread mode set this variable on your command line: // export RAYON_NUM_THREADS=1 @@ -154,7 +154,7 @@ .arg( Arg::new("ignore_hidden") .short('i') // Do not use 'h' this is used by 'help' - .long("ignore_hidden") + .long("ignore-hidden") .action(clap::ArgAction::SetTrue) .help("Do not display hidden files"), ) @@ -180,7 +180,7 @@ .arg( Arg::new("types") .short('t') - .long("file_types") + .long("file-types") .conflicts_with("depth") .conflicts_with("only_dir") .action(clap::ArgAction::SetTrue) @@ -189,7 +189,7 @@ .arg( Arg::new("width") .short('w') - .long("terminal_width") + .long("terminal-width") .value_name("WIDTH") .value_parser(value_parser!(usize)) .num_args(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/config.rs new/dust-1.2.0/src/config.rs --- old/dust-1.1.2/src/config.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/config.rs 2025-04-02 00:19:59.000000000 +0200 @@ -4,7 +4,6 @@ use config_file::FromConfigFile; use regex::Regex; use serde::Deserialize; -use std::io::IsTerminal; use std::path::Path; use std::path::PathBuf; @@ -54,9 +53,7 @@ Some(true) == self.force_colors || options.get_flag("force_colors") } pub fn get_disable_progress(&self, options: &ArgMatches) -> bool { - Some(true) == self.disable_progress - || options.get_flag("disable_progress") - || !std::io::stdout().is_terminal() + Some(true) == self.disable_progress || options.get_flag("disable_progress") } pub fn get_apparent_size(&self, options: &ArgMatches) -> bool { Some(true) == self.display_apparent_size || options.get_flag("display_apparent_size") @@ -291,7 +288,7 @@ use super::*; use chrono::{Datelike, Timelike}; use clap::builder::PossibleValue; - use clap::{value_parser, Arg, ArgMatches, Command}; + use clap::{Arg, ArgMatches, Command, value_parser}; #[test] fn test_get_current_date_epoch_seconds() { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/dir_walker.rs new/dust-1.2.0/src/dir_walker.rs --- old/dust-1.1.2/src/dir_walker.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/dir_walker.rs 2025-04-02 00:19:59.000000000 +0200 @@ -5,10 +5,10 @@ use std::sync::Mutex; use crate::node::Node; +use crate::progress::ORDERING; use crate::progress::Operation; use crate::progress::PAtomicInfo; use crate::progress::RuntimeErrors; -use crate::progress::ORDERING; use crate::utils::is_filtered_out_due_to_file_time; use crate::utils::is_filtered_out_due_to_invert_regex; use crate::utils::is_filtered_out_due_to_regex; @@ -125,9 +125,33 @@ } } +// Check if `path` is inside ignored directory +fn is_ignored_path(path: &Path, walk_data: &WalkData) -> bool { + if walk_data.ignore_directories.contains(path) { + return true; + } + + // Entry is inside an ignored absolute path + // Absolute paths should be canonicalized before being added to `WalkData.ignore_directories` + for ignored_path in walk_data.ignore_directories.iter() { + if !ignored_path.is_absolute() { + continue; + } + let absolute_entry_path = std::fs::canonicalize(path).unwrap_or_default(); + if absolute_entry_path.starts_with(ignored_path) { + return true; + } + } + + false +} + fn ignore_file(entry: &DirEntry, walk_data: &WalkData) -> bool { + if is_ignored_path(&entry.path(), walk_data) { + return true; + } + let is_dot_file = entry.file_name().to_str().unwrap_or("").starts_with('.'); - let is_ignored_path = walk_data.ignore_directories.contains(&entry.path()); let follow_links = walk_data.follow_links && entry.file_type().is_ok_and(|ft| ft.is_symlink()); if !walk_data.allowed_filesystems.is_empty() { @@ -175,17 +199,13 @@ return true; } - (is_dot_file && walk_data.ignore_hidden) || is_ignored_path + is_dot_file && walk_data.ignore_hidden } fn walk(dir: PathBuf, walk_data: &WalkData, depth: usize) -> Option<Node> { let prog_data = &walk_data.progress_data; let errors = &walk_data.errors; - if errors.lock().unwrap().abort { - return None; - } - let children = if dir.is_dir() { let read_dir = fs::read_dir(&dir); match read_dir { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/display.rs new/dust-1.2.0/src/display.rs --- old/dust-1.1.2/src/display.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/display.rs 2025-04-02 00:19:59.000000000 +0200 @@ -71,11 +71,7 @@ fn percent_size(&self, node: &DisplayNode) -> f32 { let result = node.size as f32 / self.base_size as f32; - if result.is_normal() { - result - } else { - 0.0 - } + if result.is_normal() { result } else { 0.0 } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/main.rs new/dust-1.2.0/src/main.rs --- old/dust-1.1.2/src/main.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/main.rs 2025-04-02 00:19:59.000000000 +0200 @@ -24,11 +24,10 @@ use std::io; use std::panic; use std::process; -use std::sync::atomic::AtomicBool; -use std::sync::atomic::Ordering; use std::sync::Arc; use std::sync::Mutex; use sysinfo::{System, SystemExt}; +use utils::canonicalize_absolute_path; use self::display::draw_it; use config::get_config; @@ -39,7 +38,7 @@ use regex::Regex; use std::cmp::max; use std::path::PathBuf; -use terminal_size::{terminal_size, Height, Width}; +use terminal_size::{Height, Width, terminal_size}; use utils::get_filesystem_devices; use utils::simplify_dir_names; @@ -118,20 +117,13 @@ let errors = RuntimeErrors::default(); let error_listen_for_ctrlc = Arc::new(Mutex::new(errors)); let errors_for_rayon = error_listen_for_ctrlc.clone(); - let errors_final = error_listen_for_ctrlc.clone(); - let is_in_listing = Arc::new(AtomicBool::new(false)); - let cloned_is_in_listing = Arc::clone(&is_in_listing); ctrlc::set_handler(move || { - error_listen_for_ctrlc.lock().unwrap().abort = true; println!("\nAborting"); - if cloned_is_in_listing.load(Ordering::Relaxed) { - process::exit(1); - } + process::exit(1); }) .expect("Error setting Ctrl-C handler"); - is_in_listing.store(true, Ordering::Relaxed); let target_dirs = match config.get_files_from(&options) { Some(path) => { if path == "-" { @@ -161,7 +153,6 @@ None => vec![".".to_owned()], }, }; - is_in_listing.store(false, Ordering::Relaxed); let summarize_file_types = options.get_flag("types"); @@ -198,6 +189,7 @@ Some(values) => values .map(|v| v.as_str()) .map(PathBuf::from) + .map(canonicalize_absolute_path) .collect::<Vec<PathBuf>>(), None => vec![], }; @@ -302,10 +294,6 @@ // Must have stopped indicator before we print to stderr indicator.stop(); - if errors_final.lock().unwrap().abort { - return; - } - let final_errors = walk_data.errors.lock().unwrap(); if !final_errors.file_not_found.is_empty() { let err = final_errors diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/node.rs new/dust-1.2.0/src/node.rs --- old/dust-1.1.2/src/node.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/node.rs 2025-04-02 00:19:59.000000000 +0200 @@ -48,9 +48,9 @@ || is_filtered_out_due_to_invert_regex(walk_data.invert_filter_regex, &dir) || by_filecount && !is_file || [ - (&walk_data.filter_modified_time, data.2 .0), - (&walk_data.filter_accessed_time, data.2 .1), - (&walk_data.filter_changed_time, data.2 .2), + (&walk_data.filter_modified_time, data.2.0), + (&walk_data.filter_accessed_time, data.2.1), + (&walk_data.filter_changed_time, data.2.2), ] .iter() .any(|(filter_time, actual_time)| { @@ -61,9 +61,9 @@ 1 } else if by_filetime.is_some() { match by_filetime { - Some(FileTime::Modified) => data.2 .0.unsigned_abs(), - Some(FileTime::Accessed) => data.2 .1.unsigned_abs(), - Some(FileTime::Changed) => data.2 .2.unsigned_abs(), + Some(FileTime::Modified) => data.2.0.unsigned_abs(), + Some(FileTime::Accessed) => data.2.1.unsigned_abs(), + Some(FileTime::Changed) => data.2.2.unsigned_abs(), None => unreachable!(), } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/progress.rs new/dust-1.2.0/src/progress.rs --- old/dust-1.1.2/src/progress.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/progress.rs 2025-04-02 00:19:59.000000000 +0200 @@ -3,9 +3,9 @@ io::Write, path::Path, sync::{ + Arc, RwLock, atomic::{AtomicU8, AtomicUsize, Ordering}, mpsc::{self, RecvTimeoutError, Sender}, - Arc, RwLock, }, thread::JoinHandle, time::Duration, @@ -79,7 +79,6 @@ pub file_not_found: HashSet<String>, pub unknown_error: HashSet<String>, pub interrupted_error: i32, - pub abort: bool, } /* -------------------------------------------------------------------------- */ @@ -119,7 +118,7 @@ let time_info_thread = std::thread::spawn(move || { let mut progress_char_i: usize = 0; - let mut stdout = std::io::stdout(); + let mut stderr = std::io::stderr(); let mut msg = "".to_string(); // While the timeout triggers we go round the loop @@ -128,7 +127,8 @@ receiver.recv_timeout(Duration::from_millis(SPINNER_SLEEP_TIME)) { // Clear the text written by 'write!'& Return at the start of line - print!("\r{:width$}", " ", width = msg.len()); + let clear = format!("\r{:width$}", " ", width = msg.len()); + write!(stderr, "{clear}").unwrap(); let prog_char = PROGRESS_CHARS[progress_char_i]; msg = match data.state.load(ORDERING) { @@ -137,15 +137,17 @@ _ => panic!("Unknown State"), }; - write!(stdout, "\r{msg}").unwrap(); - stdout.flush().unwrap(); + write!(stderr, "\r{msg}").unwrap(); + stderr.flush().unwrap(); progress_char_i += 1; progress_char_i %= PROGRESS_CHARS_LEN; } - print!("\r{:width$}", " ", width = msg.len()); - print!("\r"); - stdout.flush().unwrap(); + + let clear = format!("\r{:width$}", " ", width = msg.len()); + write!(stderr, "{clear}").unwrap(); + write!(stderr, "\r").unwrap(); + stderr.flush().unwrap(); }); self.thread = Some((stop_handler, time_info_thread)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/src/utils.rs new/dust-1.2.0/src/utils.rs --- old/dust-1.1.2/src/utils.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/src/utils.rs 2025-04-02 00:19:59.000000000 +0200 @@ -67,6 +67,17 @@ path.as_ref().components().collect() } +// Canonicalize the path only if it is an absolute path +pub fn canonicalize_absolute_path(path: PathBuf) -> PathBuf { + if !path.is_absolute() { + return path; + } + match std::fs::canonicalize(&path) { + Ok(canonicalized_path) => canonicalized_path, + Err(_) => path, + } +} + pub fn is_filtered_out_due_to_regex(filter_regex: &[Regex], dir: &Path) -> bool { if filter_regex.is_empty() { false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dust-1.1.2/tests/test_flags.rs new/dust-1.2.0/tests/test_flags.rs --- old/dust-1.1.2/tests/test_flags.rs 2025-02-27 23:01:19.000000000 +0100 +++ new/dust-1.2.0/tests/test_flags.rs 2025-04-02 00:19:59.000000000 +0200 @@ -10,6 +10,9 @@ fn build_command<T: AsRef<OsStr>>(command_args: Vec<T>) -> String { let mut cmd = &mut Command::cargo_bin("dust").unwrap(); + // Hide progress bar + cmd = cmd.arg("-P"); + for p in command_args { cmd = cmd.arg(p); } ++++++ dust.obsinfo ++++++ --- /var/tmp/diff_new_pack.kmPld7/_old 2025-04-02 21:06:05.146144290 +0200 +++ /var/tmp/diff_new_pack.kmPld7/_new 2025-04-02 21:06:05.150144459 +0200 @@ -1,5 +1,5 @@ name: dust -version: 1.1.2 -mtime: 1740693679 -commit: b24f4c8096557529e63e6fb09fc6ecdb497d153b +version: 1.2.0 +mtime: 1743545999 +commit: 646cdd976ded146779f4fc57c34c56fa850d728f ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/dust/vendor.tar.zst /work/SRC/openSUSE:Factory/.dust.new.1907/vendor.tar.zst differ: char 7, line 1