summary refs log tree commit diff
path: root/src/libterm
diff options
context:
space:
mode:
authorOliver Schneider <git1984941651981@oli-obk.de>2015-03-20 08:19:13 +0100
committerOliver Schneider <git1984941651981@oli-obk.de>2015-03-20 08:19:13 +0100
commitb4a1e59146c70a12d8c4c1f85c08a2ecf9fb3d2e (patch)
tree7b986ee36f81d3566200a9acda28c20b5921e032 /src/libterm
parent0084f92302b3352372bfd14ebbf083bae695d16e (diff)
downloadrust-b4a1e59146c70a12d8c4c1f85c08a2ecf9fb3d2e.tar.gz
rust-b4a1e59146c70a12d8c4c1f85c08a2ecf9fb3d2e.zip
don't use Result::ok just to be able to use unwrap/unwrap_or
Diffstat (limited to 'src/libterm')
-rw-r--r--src/libterm/terminfo/mod.rs31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/libterm/terminfo/mod.rs b/src/libterm/terminfo/mod.rs
index 3c269cc485d..309320b52ff 100644
--- a/src/libterm/terminfo/mod.rs
+++ b/src/libterm/terminfo/mod.rs
@@ -181,21 +181,24 @@ impl<T: Write+Send+'static> TerminfoTerminal<T> {
             }
         };
 
-        let entry = open(&term[..]);
-        if entry.is_err() {
-            if env::var("MSYSCON").ok().map_or(false, |s| {
-                    "mintty.exe" == s
-                }) {
-                // msys terminal
-                return Some(box TerminfoTerminal {out: out,
-                                                  ti: msys_terminfo(),
-                                                  num_colors: 8} as Box<Terminal<T>+Send>);
-            }
-            debug!("error finding terminfo entry: {:?}", entry.err().unwrap());
-            return None;
-        }
+        let mut file = match open(&term[..]) {
+            Ok(f) => f,
+            Err(err) => return match env::var("MSYSCON") {
+                Ok(ref val) if &val[..] == "mintty.exe" => {
+                    // msys terminal
+                    Some(box TerminfoTerminal{
+                        out: out,
+                        ti: msys_terminfo(),
+                        num_colors: 8,
+                    } as Box<Terminal<T>+Send>)
+                },
+                _ => {
+                    debug!("error finding terminfo entry: {:?}", err);
+                    None
+                },
+            },
+        };
 
-        let mut file = entry.unwrap();
         let ti = parse(&mut file, false);
         if ti.is_err() {
             debug!("error parsing terminfo entry: {:?}", ti.err().unwrap());