about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNick Cameron <nrc@ncameron.org>2017-06-07 10:05:36 +1200
committerGitHub <noreply@github.com>2017-06-07 10:05:36 +1200
commitc879d5ebd719875cf99bda55e577df07b28f6ea6 (patch)
treec3a068bf4430acc450ad06f8aab1e65eacc02cda /src
parent76ec18b6e9cfd8dc810a0b606075cc4a0be62581 (diff)
parenta64037d0f07f4ac6eeb284d6dcfa362542b07dae (diff)
Merge pull request #1640 from topecongiro/issue-1632
Do not overwrite files when there are no diffs in Overwrite mode
Diffstat (limited to 'src')
-rw-r--r--src/filemap.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/filemap.rs b/src/filemap.rs
index aa3ae8537af..82e8c3e50ae 100644
--- a/src/filemap.rs
+++ b/src/filemap.rs
@@ -128,9 +128,12 @@ pub fn write_file<T>(text: &StringBuffer,
             }
         }
         WriteMode::Overwrite => {
-            // Write text directly over original file.
-            let file = File::create(filename)?;
-            write_system_newlines(file, text, config)?;
+            // Write text directly over original file if there is a diff.
+            let (source, formatted) = source_and_formatted_text(text, filename, config)?;
+            if source != formatted {
+                let file = File::create(filename)?;
+                write_system_newlines(file, text, config)?;
+            }
         }
         WriteMode::Plain => {
             write_system_newlines(out, text, config)?;