diff options
| author | Steven Fackler <sfackler@gmail.com> | 2014-04-11 20:59:18 -0700 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2014-04-13 23:47:53 -0700 |
| commit | eb0473df93b49d6a2ff50f82e435dbd2e19467c7 (patch) | |
| tree | a34483e0c817fd840d7dd5e38401a5dc7883fbb6 /src/libterm/lib.rs | |
| parent | bb9b2e0ebe63b6853a7936aa8071859e433c6597 (diff) | |
| download | rust-eb0473df93b49d6a2ff50f82e435dbd2e19467c7.tar.gz rust-eb0473df93b49d6a2ff50f82e435dbd2e19467c7.zip | |
Make Result::{unwrap, unwrap_err} require Show
`foo.ok().unwrap()` and `foo.err().unwrap()` are the fallbacks for types that aren't `Show`. Closes #13379
Diffstat (limited to 'src/libterm/lib.rs')
| -rw-r--r-- | src/libterm/lib.rs | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/libterm/lib.rs b/src/libterm/lib.rs index a94a13aa017..84ba122631e 100644 --- a/src/libterm/lib.rs +++ b/src/libterm/lib.rs @@ -132,21 +132,22 @@ impl<T: Writer> Terminal<T> { None => return Err(~"TERM environment variable undefined") }; - let entry = open(term); - if entry.is_err() { - if "cygwin" == term { // msys terminal - return Ok(Terminal {out: out, ti: msys_terminfo(), num_colors: 8}); + let mut file = match open(term) { + Ok(file) => file, + Err(err) => { + if "cygwin" == term { // msys terminal + return Ok(Terminal { + out: out, + ti: msys_terminfo(), + num_colors: 8 + }); + } + return Err(err); } - return Err(entry.unwrap_err()); - } + }; - let mut file = entry.unwrap(); - let ti = parse(&mut file, false); - if ti.is_err() { - return Err(ti.unwrap_err()); - } + let inf = try!(parse(&mut file, false)); - let inf = ti.unwrap(); let nc = if inf.strings.find_equiv(&("setaf")).is_some() && inf.strings.find_equiv(&("setab")).is_some() { inf.numbers.find_equiv(&("colors")).map_or(0, |&n| n) |
