From 440d4f7e942cf28aadeda3771fe3e6f30d9598f8 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 18 Jul 2016 12:34:36 -0700 Subject: [PATCH] format: Don't generate an extra newline before the "---" The commit message body will normally include a newline already. --- src/main.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 7f6ff945c9607af54f99ca44735e68058c701a46..feff1f0b10c287735f323cc63924537105bd73ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1062,6 +1062,14 @@ fn mail_signature() -> String { format!("-- \ngit-series {}", crate_version!()) } +fn ensure_nl(s: &str) -> &'static str { + if !s.ends_with('\n') { + "\n" + } else { + "" + } +} + fn format(out: &mut Output, repo: &Repository, m: &ArgMatches) -> Result<()> { let config = try!(repo.config()); let to_stdout = m.is_present("stdout"); @@ -1168,7 +1176,7 @@ fn format(out: &mut Output, repo: &Repository, m: &ArgMatches) -> Result<()> { try!(writeln!(out, "Date: {}", date_822(commit_author.when()))); try!(writeln!(out, "Subject: [PATCH {}/{}] {}\n", commit_num+1, commits.len(), subject)); if !body.is_empty() { - try!(writeln!(out, "{}", body)); + try!(write!(out, "{}{}", body, ensure_nl(&body))); } try!(writeln!(out, "---")); try!(writeln!(out, "{}", stats)); @@ -1565,7 +1573,7 @@ fn main() { if let Err(e) = err { let msg = e.to_string(); - out.write_err(&format!("{}{}", msg, if msg.ends_with('\n') { "" } else { "\n" })); + out.write_err(&format!("{}{}", msg, ensure_nl(&msg))); drop(out); std::process::exit(1); }