summaryrefslogtreecommitdiffstats
path: root/src/filetype.rs
diff options
context:
space:
mode:
authorBen S <ogham@bsago.me>2014-06-29 21:02:14 +0100
committerBen S <ogham@bsago.me>2014-06-29 21:02:14 +0100
commitdf65886d6d793a539e850e1c00e1f5230ab7a5c6 (patch)
treeac8a76ab7b41329f8cb157ae0dc8466f7a28aa94 /src/filetype.rs
parent85e557a7443d74b878e0e81debb284bd112ba6bd (diff)
Properly handle invalid UTF-8 filenames
Diffstat (limited to 'src/filetype.rs')
-rw-r--r--src/filetype.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/filetype.rs b/src/filetype.rs
index 9ac3402..5557fa9 100644
--- a/src/filetype.rs
+++ b/src/filetype.rs
@@ -73,6 +73,7 @@ pub trait HasType {
impl<'a> HasType for File<'a> {
fn get_type(&self) -> FileType {
+ let name = self.name.as_slice();
if self.stat.kind == io::TypeDirectory {
return Directory;
}
@@ -85,11 +86,12 @@ impl<'a> HasType for File<'a> {
else if self.stat.perm.contains(io::UserExecute) {
return Executable;
}
- else if self.name.starts_with("README") || BUILD_TYPES.iter().any(|&s| s == self.name) {
+ else if name.starts_with("README") || BUILD_TYPES.iter().any(|&s| s == name) {
return Immediate;
}
else if self.ext.is_some() {
- let ext = self.ext.unwrap();
+ let e = self.ext.clone().unwrap();
+ let ext = e.as_slice();
if IMAGE_TYPES.iter().any(|&s| s == ext) {
return Image;
}