diff --git a/src/components/util/io.rs b/src/components/util/io.rs new file mode 100644 index 00000000000..9fa4dda4a4f --- /dev/null +++ b/src/components/util/io.rs @@ -0,0 +1,14 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use std::rt::io::{io_error, EndOfFile}; + +/// Ignore the end-of-file condition within a block of code. +pub fn ignoring_eof(cb: &fn() -> U) -> U { + io_error::cond.trap(|e| + match e.kind { + EndOfFile => (), + _ => io_error::cond.raise(e) + }).inside(cb) +} diff --git a/src/components/util/util.rc b/src/components/util/util.rc index c84a87b13e5..d530652f591 100644 --- a/src/components/util/util.rc +++ b/src/components/util/util.rc @@ -22,3 +22,4 @@ pub mod tree; pub mod url; pub mod vec; pub mod debug; +pub mod io;