|
3007 | 3007 | <span id="3007">3007</span>
|
3008 | 3008 | <span id="3008">3008</span>
|
3009 | 3009 | <span id="3009">3009</span>
|
| 3010 | +<span id="3010">3010</span> |
| 3011 | +<span id="3011">3011</span> |
| 3012 | +<span id="3012">3012</span> |
3010 | 3013 | </pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
|
3011 | 3014 | <span class="comment">//</span>
|
3012 | 3015 | <span class="comment">// (c) Jeremiah Peschka <jeremiah.peschka@gmail.com></span>
|
|
3023 | 3026 | <span class="ident">builder</span>::{<span class="ident">NonEmptyStringValueParser</span>, <span class="ident">ValueParser</span>},
|
3024 | 3027 | <span class="ident">crate_version</span>, <span class="ident">Arg</span>, <span class="ident">Command</span>,
|
3025 | 3028 | };
|
3026 |
| -<span class="kw">use</span> <span class="ident">glob::Pattern</span>; |
| 3029 | +<span class="kw">use</span> <span class="ident">glob</span>::{<span class="ident">MatchOptions</span>, <span class="ident">Pattern</span>}; |
3027 | 3030 | <span class="kw">use</span> <span class="ident">lscolors::LsColors</span>;
|
3028 | 3031 | <span class="kw">use</span> <span class="ident">number_prefix::NumberPrefix</span>;
|
3029 | 3032 | <span class="kw">use</span> <span class="ident">once_cell::unsync::OnceCell</span>;
|
|
3050 | 3053 | <span class="kw">use</span> <span class="ident">unicode_width::UnicodeWidthStr</span>;
|
3051 | 3054 | <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span>
|
3052 | 3055 | <span class="kw">use</span> <span class="ident">uucore::libc</span>::{<span class="ident">S_IXGRP</span>, <span class="ident">S_IXOTH</span>, <span class="ident">S_IXUSR</span>};
|
| 3056 | +<span class="kw">use</span> <span class="ident">uucore::parse_glob</span>; |
3053 | 3057 | <span class="kw">use</span> <span class="ident">uucore::quoting_style</span>::{<span class="ident">escape_name</span>, <span class="ident">QuotingStyle</span>};
|
3054 | 3058 | <span class="kw">use</span> <span class="ident">uucore</span>::{
|
3055 | 3059 | <span class="ident">display::Quotable</span>,
|
|
3774 | 3778 | .<span class="ident">into_iter</span>()
|
3775 | 3779 | .<span class="ident">flatten</span>()
|
3776 | 3780 | {
|
3777 |
| - <span class="kw">match</span> <span class="ident">Pattern::new</span>(<span class="ident">pattern</span>) { |
| 3781 | + <span class="kw">match</span> <span class="ident">parse_glob::from_str</span>(<span class="ident">pattern</span>) { |
3778 | 3782 | <span class="prelude-val">Ok</span>(<span class="ident">p</span>) => {
|
3779 | 3783 | <span class="ident">ignore_patterns</span>.<span class="ident">push</span>(<span class="ident">p</span>);
|
3780 | 3784 | }
|
|
3788 | 3792 | .<span class="ident">into_iter</span>()
|
3789 | 3793 | .<span class="ident">flatten</span>()
|
3790 | 3794 | {
|
3791 |
| - <span class="kw">match</span> <span class="ident">Pattern::new</span>(<span class="ident">pattern</span>) { |
| 3795 | + <span class="kw">match</span> <span class="ident">parse_glob::from_str</span>(<span class="ident">pattern</span>) { |
3792 | 3796 | <span class="prelude-val">Ok</span>(<span class="ident">p</span>) => {
|
3793 | 3797 | <span class="ident">ignore_patterns</span>.<span class="ident">push</span>(<span class="ident">p</span>);
|
3794 | 3798 | }
|
|
4886 | 4890 | <span class="kw">return</span> <span class="bool-val">false</span>;
|
4887 | 4891 | }
|
4888 | 4892 |
|
4889 |
| - <span class="comment">// check if explicitly ignored</span> |
4890 |
| - <span class="kw">for</span> <span class="ident">pattern</span> <span class="kw">in</span> <span class="kw-2">&</span><span class="ident">config</span>.<span class="ident">ignore_patterns</span> { |
4891 |
| - <span class="kw">if</span> <span class="ident">pattern</span>.<span class="ident">matches</span>(<span class="ident">entry</span>.<span class="ident">file_name</span>().<span class="ident">to_str</span>().<span class="ident">unwrap</span>()) { |
4892 |
| - <span class="kw">return</span> <span class="bool-val">false</span>; |
4893 |
| - }; |
4894 |
| - <span class="kw">continue</span>; |
4895 |
| - } |
4896 |
| - |
4897 |
| - <span class="comment">// else default to display</span> |
4898 |
| - <span class="bool-val">true</span> |
| 4893 | + <span class="comment">// check if it is among ignore_patterns</span> |
| 4894 | + <span class="kw">let</span> <span class="ident">options</span> <span class="op">=</span> <span class="ident">MatchOptions</span> { |
| 4895 | + <span class="comment">// setting require_literal_leading_dot to match behavior in GNU ls</span> |
| 4896 | + <span class="ident">require_literal_leading_dot</span>: <span class="bool-val">true</span>, |
| 4897 | + <span class="ident">require_literal_separator</span>: <span class="bool-val">false</span>, |
| 4898 | + <span class="ident">case_sensitive</span>: <span class="bool-val">true</span>, |
| 4899 | + }; |
| 4900 | + <span class="kw">let</span> <span class="ident">file_name</span> <span class="op">=</span> <span class="ident">entry</span>.<span class="ident">file_name</span>().<span class="ident">into_string</span>().<span class="ident">unwrap</span>(); |
| 4901 | + <span class="op">!</span><span class="ident">config</span> |
| 4902 | + .<span class="ident">ignore_patterns</span> |
| 4903 | + .<span class="ident">iter</span>() |
| 4904 | + .<span class="ident">any</span>(<span class="op">|</span><span class="ident">p</span><span class="op">|</span> <span class="ident">p</span>.<span class="ident">matches_with</span>(<span class="kw-2">&</span><span class="ident">file_name</span>, <span class="ident">options</span>)) |
4899 | 4905 | }
|
4900 | 4906 |
|
4901 | 4907 | <span class="kw">fn</span> <span class="ident">enter_directory</span>(
|
|
0 commit comments