This commit is contained in:
sylvestre
2023-06-14 02:43:14 +00:00
parent 3575975c90
commit 849edda8cd
3 changed files with 10 additions and 6 deletions
+7 -3
View File
@@ -617,6 +617,8 @@
<a href="#617" id="617">617</a>
<a href="#618" id="618">618</a>
<a href="#619" id="619">619</a>
<a href="#620" id="620">620</a>
<a href="#621" id="621">621</a>
</pre></div><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.
//
// (c) Orvar Segerström &lt;orvarsegerstrom@gmail.com&gt;
@@ -644,7 +646,7 @@
<span class="kw">use </span>uucore::backup_control::{<span class="self">self</span>, BackupMode};
<span class="kw">use </span>uucore::display::Quotable;
<span class="kw">use </span>uucore::error::{set_exit_code, FromIo, UError, UResult, USimpleError, UUsageError};
<span class="kw">use </span>uucore::fs::are_hardlinks_or_one_way_symlink_to_same_file;
<span class="kw">use </span>uucore::fs::{are_hardlinks_or_one_way_symlink_to_same_file, are_hardlinks_to_same_file};
<span class="kw">use </span>uucore::update_control::{<span class="self">self</span>, UpdateMode};
<span class="kw">use </span>uucore::{format_usage, help_about, help_section, help_usage, prompt_yes, show};
@@ -874,8 +876,10 @@
<span class="kw">return </span><span class="prelude-val">Err</span>(MvError::NoSuchFile(source.quote().to_string()).into());
}
<span class="kw">if </span>(source.eq(target) || are_hardlinks_or_one_way_symlink_to_same_file(source, target))
&amp;&amp; b.backup != BackupMode::SimpleBackup
<span class="kw">if </span>(source.eq(target)
|| are_hardlinks_to_same_file(source, target)
|| are_hardlinks_or_one_way_symlink_to_same_file(source, target))
&amp;&amp; b.backup == BackupMode::NoBackup
{
<span class="kw">if </span>source.eq(Path::new(<span class="string">&quot;.&quot;</span>)) || source.ends_with(<span class="string">&quot;/.&quot;</span>) || source.is_file() {
<span class="kw">return </span><span class="prelude-val">Err</span>(
+2 -2
View File
@@ -1510,12 +1510,12 @@
/// * `bool` - Returns `true` if the paths are hard links to the same file, and `false` otherwise.
</span><span class="attr">#[cfg(unix)]
</span><span class="kw">pub fn </span>are_hardlinks_to_same_file(source: <span class="kw-2">&amp;</span>Path, target: <span class="kw-2">&amp;</span>Path) -&gt; bool {
<span class="kw">let </span>source_metadata = <span class="kw">match </span>fs::metadata(source) {
<span class="kw">let </span>source_metadata = <span class="kw">match </span>fs::symlink_metadata(source) {
<span class="prelude-val">Ok</span>(metadata) =&gt; metadata,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
<span class="kw">let </span>target_metadata = <span class="kw">match </span>fs::metadata(target) {
<span class="kw">let </span>target_metadata = <span class="kw">match </span>fs::symlink_metadata(target) {
<span class="prelude-val">Ok</span>(metadata) =&gt; metadata,
<span class="prelude-val">Err</span>(<span class="kw">_</span>) =&gt; <span class="kw">return </span><span class="bool-val">false</span>,
};
+1 -1
View File
File diff suppressed because one or more lines are too long