mod rope; mod tiocgwinsz; use rope::Rope; use std::ffi::{OsStr, OsString}; use std::path::Path; fn edit(file: &OsStr) -> Result<(), String> { let r = match Rope::open(Path::new(file)) { Ok(r) => r, Err(err) => { return Err(format!("open file {}: {}", file.to_string_lossy(), err)); } }; println!("{}", r); let size = match tiocgwinsz::size() { Some(size) => size, None => { return Err(String::from("cannot get terminal size")); } }; println!("{}, {}", size.ws_row, size.ws_col); return Ok(()); } fn main() { let args: Vec = std::env::args_os().collect(); if args.len() != 2 { println!("Usage: edit "); std::process::exit(1); } if let Err(err) = edit(&args[1]) { println!("FAIL: {}", err); std::process::exit(1); } }