From 156577ec401bddf5fbe5cffd989cf12f6312ffc3 Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Wed, 18 Jun 2014 12:36:12 +0200 Subject: [PATCH 1/2] sum: handle multiple file args --- sum/sum.rs | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/sum/sum.rs b/sum/sum.rs index 048223406..735cbf380 100644 --- a/sum/sum.rs +++ b/sum/sum.rs @@ -111,23 +111,25 @@ pub fn uumain(args: Vec) -> int { let sysv = matches.opt_present("sysv"); - let file = if matches.free.is_empty() { - "-" + let files = if matches.free.is_empty() { + Vec::from_elem(1, "-".to_string()) } else { - matches.free.get(0).as_slice() + matches.free }; - let reader = match open(file) { - Ok(f) => f, - _ => crash!(1, "unable to open file") - }; - let (blocks, sum) = if sysv { - sysv_sum(reader) - } else { - bsd_sum(reader) - }; + for file in files.iter() { + let reader = match open(file.as_slice()) { + Ok(f) => f, + _ => crash!(1, "unable to open file") + }; + let (blocks, sum) = if sysv { + sysv_sum(reader) + } else { + bsd_sum(reader) + }; - println!("{} {}", sum, blocks); + println!("{} {}", sum, blocks); + } 0 } From 7cdcb8bf97d1453579c62c6f09b83bbfe85729db Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Wed, 18 Jun 2014 12:38:19 +0200 Subject: [PATCH 2/2] sum: print filenames --- sum/sum.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sum/sum.rs b/sum/sum.rs index 735cbf380..dabf2322e 100644 --- a/sum/sum.rs +++ b/sum/sum.rs @@ -117,6 +117,8 @@ pub fn uumain(args: Vec) -> int { matches.free }; + let print_names = sysv || files.len() > 1; + for file in files.iter() { let reader = match open(file.as_slice()) { Ok(f) => f, @@ -128,7 +130,11 @@ pub fn uumain(args: Vec) -> int { bsd_sum(reader) }; - println!("{} {}", sum, blocks); + if print_names { + println!("{} {} {}", sum, blocks, file); + } else { + println!("{} {}", sum, blocks); + } } 0