From ce40ab87c8102b457118bb5c0f868593c4fb8c85 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Thu, 18 Oct 2018 06:44:12 +0100 Subject: [PATCH] Preserve multiline top comments --- src/cargo/ops/lockfile.rs | 10 ++++------ tests/testsuite/update.rs | 1 + 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/cargo/ops/lockfile.rs b/src/cargo/ops/lockfile.rs index 4deb7d116..103876264 100644 --- a/src/cargo/ops/lockfile.rs +++ b/src/cargo/ops/lockfile.rs @@ -43,12 +43,10 @@ pub fn write_pkg_lockfile(ws: &Workspace, resolve: &Resolve) -> CargoResult<()> let mut out = String::new(); - if let Ok(ref orig) = orig { - if let Some(first_line) = orig.lines().into_iter().next() { - if first_line.starts_with("#") { - out.push_str(first_line); - out.push_str("\n"); - } + if let Ok(orig) = &orig { + for line in orig.lines().take_while(|line| line.starts_with("#")) { + out.push_str(line); + out.push_str("\n"); } } diff --git a/tests/testsuite/update.rs b/tests/testsuite/update.rs index 0b120daa9..be527b288 100644 --- a/tests/testsuite/update.rs +++ b/tests/testsuite/update.rs @@ -383,6 +383,7 @@ fn preserve_top_comment() { let mut lockfile = p.read_file("Cargo.lock"); lockfile.insert_str(0, "# @generated\n"); + lockfile.insert_str(0, "# some other comment\n"); println!("saving Cargo.lock contents:\n{}", lockfile); p.change_file("Cargo.lock", &lockfile);