提交 03ecb8c9 编写于 作者: B Ben S

Fix bug with empty directories

上级 b7e7bc70
......@@ -79,7 +79,7 @@ fn lines_view(files: Vec<&File>) {
}
fn grid_view(across: bool, console_width: uint, files: Vec<&File>) {
let max_column_length = files.iter().map(|f| f.file_name_width()).max().unwrap();
let max_column_length = files.iter().map(|f| f.file_name_width()).max().unwrap_or(0);
let num_columns = (console_width + 1) / (max_column_length + 1);
let count = files.len();
......@@ -143,7 +143,7 @@ fn details_view(options: &Options, columns: &Vec<Column>, files: Vec<&File>) {
.collect();
let column_widths: Vec<uint> = range(0, columns.len())
.map(|n| lengths.iter().map(|row| row[n]).max().unwrap())
.map(|n| lengths.iter().map(|row| row[n]).max().unwrap_or(0))
.collect();
for (field_widths, row) in lengths.iter().zip(table.iter()) {
......
......@@ -32,7 +32,7 @@ pub struct File<'a> {
impl<'a> File<'a> {
pub fn from_path(path: &'a Path, parent: &'a Dir) -> IoResult<File<'a>> {
let v = path.filename().unwrap(); // fails if / or . or ..
let filename = String::from_utf8(v.to_vec()).unwrap();
let filename = String::from_utf8(v.to_vec()).unwrap_or_else(|_| panic!("Name was not valid UTF-8"));
// Use lstat here instead of file.stat(), as it doesn't follow
// symbolic links. Otherwise, the stat() call will fail if it
......
......@@ -29,7 +29,6 @@ mod c {
}
#[repr(C)]
#[deriving(Show)]
pub struct c_group {
pub gr_name: *const c_char, // group name
pub gr_passwd: *const c_char, // password
......@@ -143,6 +142,5 @@ impl Unix {
self.group_names.insert(gid, group_name);
}
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册