From 156577ec401bddf5fbe5cffd989cf12f6312ffc3 Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Wed, 18 Jun 2014 12:36:12 +0200 Subject: [PATCH] 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 }