diff --git a/src/header/stdio/lookaheadreader.rs b/src/header/stdio/lookaheadreader.rs
new file mode 100644
index 0000000000..5c08d86751
--- /dev/null
+++ b/src/header/stdio/lookaheadreader.rs
@@ -0,0 +1,100 @@
+use super::{fseek_locked, FILE, SEEK_SET, ftell_locked};
+use crate::core_io::Read;
+struct LookAheadBuffer {
+ buf: *const u8,
+ pos: isize,
+ look_ahead: isize,
+}
+impl LookAheadBuffer {
+ fn look_ahead(&mut self) -> Result