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 }