From 0ce5129d05c1c955d92b906a96be9c357fb84e57 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Sun, 3 Feb 2019 03:43:54 +0100 Subject: [PATCH] libterm => 2018 --- src/libterm/Cargo.toml | 1 + src/libterm/lib.rs | 6 ++--- src/libterm/terminfo/mod.rs | 22 ++++++++--------- src/libterm/terminfo/parm.rs | 32 ++++++++++++++----------- src/libterm/terminfo/parser/compiled.rs | 14 +++++------ src/libterm/win.rs | 6 ++--- 6 files changed, 42 insertions(+), 39 deletions(-) diff --git a/src/libterm/Cargo.toml b/src/libterm/Cargo.toml index 8021e814c0899..4eba9a9d79cc4 100644 --- a/src/libterm/Cargo.toml +++ b/src/libterm/Cargo.toml @@ -2,6 +2,7 @@ authors = ["The Rust Project Developers"] name = "term" version = "0.0.0" +edition = "2018" [lib] name = "term" diff --git a/src/libterm/lib.rs b/src/libterm/lib.rs index 4d3126212dcbe..caca9fa482312 100644 --- a/src/libterm/lib.rs +++ b/src/libterm/lib.rs @@ -35,20 +35,20 @@ test(attr(deny(warnings))))] #![deny(missing_docs)] +#![deny(rust_2018_idioms)] + #![cfg_attr(windows, feature(libc))] // Handle rustfmt skips #![feature(custom_attribute)] -#![feature(nll)] #![allow(unused_attributes)] use std::io::prelude::*; +use std::io::{self, Stdout, Stderr}; pub use terminfo::TerminfoTerminal; #[cfg(windows)] pub use win::WinConsole; -use std::io::{self, Stdout, Stderr}; - pub mod terminfo; #[cfg(windows)] diff --git a/src/libterm/terminfo/mod.rs b/src/libterm/terminfo/mod.rs index eaa96df3f3bad..4c3b0b19e2717 100644 --- a/src/libterm/terminfo/mod.rs +++ b/src/libterm/terminfo/mod.rs @@ -5,18 +5,16 @@ use std::env; use std::error; use std::fmt; use std::fs::File; -use std::io::prelude::*; -use std::io; -use std::io::BufReader; +use std::io::{self, prelude::*, BufReader}; use std::path::Path; -use Attr; -use color; -use Terminal; -use self::searcher::get_dbpath_for_term; -use self::parser::compiled::{parse, msys_terminfo}; -use self::parm::{expand, Variables, Param}; +use crate::Attr; +use crate::color; +use crate::Terminal; +use searcher::get_dbpath_for_term; +use parser::compiled::{parse, msys_terminfo}; +use parm::{expand, Variables, Param}; /// A parsed terminfo database entry. #[derive(Debug)] @@ -49,7 +47,7 @@ impl error::Error for Error { } fn cause(&self) -> Option<&dyn error::Error> { - use self::Error::*; + use Error::*; match *self { IoError(ref e) => Some(e), _ => None, @@ -58,8 +56,8 @@ impl error::Error for Error { } impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use self::Error::*; + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + use Error::*; match *self { TermUnset => Ok(()), MalformedTerminfo(ref e) => e.fmt(f), diff --git a/src/libterm/terminfo/parm.rs b/src/libterm/terminfo/parm.rs index 434dd4a9fbc99..4e81b8a7f28a6 100644 --- a/src/libterm/terminfo/parm.rs +++ b/src/libterm/terminfo/parm.rs @@ -40,23 +40,27 @@ pub enum Param { /// Container for static and dynamic variable arrays pub struct Variables { /// Static variables A-Z - sta: [Param; 26], + sta_va: [Param; 26], /// Dynamic variables a-z - dyn: [Param; 26], + dyn_va: [Param; 26], } impl Variables { /// Return a new zero-initialized Variables pub fn new() -> Variables { Variables { - sta: [Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0)], - dyn: [Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), - Number(0), Number(0), Number(0), Number(0), Number(0)], + sta_va: [ + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0) + ], + dyn_va: [ + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), Number(0), + Number(0), Number(0), Number(0), Number(0), Number(0) + ], } } } @@ -249,14 +253,14 @@ pub fn expand(cap: &[u8], params: &[Param], vars: &mut Variables) -> Result= 'A' && cur <= 'Z' { if let Some(arg) = stack.pop() { let idx = (cur as u8) - b'A'; - vars.sta[idx as usize] = arg; + vars.sta_va[idx as usize] = arg; } else { return Err("stack is empty".to_string()); } } else if cur >= 'a' && cur <= 'z' { if let Some(arg) = stack.pop() { let idx = (cur as u8) - b'a'; - vars.dyn[idx as usize] = arg; + vars.dyn_va[idx as usize] = arg; } else { return Err("stack is empty".to_string()); } @@ -267,10 +271,10 @@ pub fn expand(cap: &[u8], params: &[Param], vars: &mut Variables) -> Result { if cur >= 'A' && cur <= 'Z' { let idx = (cur as u8) - b'A'; - stack.push(vars.sta[idx as usize].clone()); + stack.push(vars.sta_va[idx as usize].clone()); } else if cur >= 'a' && cur <= 'z' { let idx = (cur as u8) - b'a'; - stack.push(vars.dyn[idx as usize].clone()); + stack.push(vars.dyn_va[idx as usize].clone()); } else { return Err("bad variable name in %g".to_string()); } diff --git a/src/libterm/terminfo/parser/compiled.rs b/src/libterm/terminfo/parser/compiled.rs index 63d018312697b..b7b9ce89bf3f6 100644 --- a/src/libterm/terminfo/parser/compiled.rs +++ b/src/libterm/terminfo/parser/compiled.rs @@ -3,14 +3,14 @@ //! ncurses-compatible compiled terminfo format parsing (term(5)) use std::collections::HashMap; -use std::io::prelude::*; use std::io; +use std::io::prelude::*; use super::super::TermInfo; // These are the orders ncurses uses in its compiled format (as of 5.9). Not sure if portable. #[rustfmt_skip] -pub static boolfnames: &'static[&'static str] = &["auto_left_margin", "auto_right_margin", +pub static boolfnames: &[&str] = &["auto_left_margin", "auto_right_margin", "no_esc_ctlc", "ceol_standout_glitch", "eat_newline_glitch", "erase_overstrike", "generic_type", "hard_copy", "has_meta_key", "has_status_line", "insert_null_glitch", "memory_above", "memory_below", "move_insert_mode", "move_standout_mode", "over_strike", "status_line_esc_ok", @@ -23,13 +23,13 @@ pub static boolfnames: &'static[&'static str] = &["auto_left_margin", "auto_righ "return_does_clr_eol"]; #[rustfmt_skip] -pub static boolnames: &'static[&'static str] = &["bw", "am", "xsb", "xhp", "xenl", "eo", +pub static boolnames: &[&str] = &["bw", "am", "xsb", "xhp", "xenl", "eo", "gn", "hc", "km", "hs", "in", "db", "da", "mir", "msgr", "os", "eslok", "xt", "hz", "ul", "xon", "nxon", "mc5i", "chts", "nrrmc", "npc", "ndscr", "ccc", "bce", "hls", "xhpa", "crxm", "daisy", "xvpa", "sam", "cpix", "lpix", "OTbs", "OTns", "OTnc", "OTMT", "OTNL", "OTpt", "OTxr"]; #[rustfmt_skip] -pub static numfnames: &'static[&'static str] = &[ "columns", "init_tabs", "lines", +pub static numfnames: &[&str] = &[ "columns", "init_tabs", "lines", "lines_of_memory", "magic_cookie_glitch", "padding_baud_rate", "virtual_terminal", "width_status_line", "num_labels", "label_height", "label_width", "max_attributes", "maximum_windows", "max_colors", "max_pairs", "no_color_video", "buffer_capacity", @@ -40,13 +40,13 @@ pub static numfnames: &'static[&'static str] = &[ "columns", "init_tabs", "lines "new_line_delay", "backspace_delay", "horizontal_tab_delay", "number_of_function_keys"]; #[rustfmt_skip] -pub static numnames: &'static[&'static str] = &[ "cols", "it", "lines", "lm", "xmc", "pb", +pub static numnames: &[&str] = &[ "cols", "it", "lines", "lm", "xmc", "pb", "vt", "wsl", "nlab", "lh", "lw", "ma", "wnum", "colors", "pairs", "ncv", "bufsz", "spinv", "spinh", "maddr", "mjump", "mcs", "mls", "npins", "orc", "orl", "orhi", "orvi", "cps", "widcs", "btns", "bitwin", "bitype", "UTug", "OTdC", "OTdN", "OTdB", "OTdT", "OTkn"]; #[rustfmt_skip] -pub static stringfnames: &'static[&'static str] = &[ "back_tab", "bell", "carriage_return", +pub static stringfnames: &[&str] = &[ "back_tab", "bell", "carriage_return", "change_scroll_region", "clear_all_tabs", "clear_screen", "clr_eol", "clr_eos", "column_address", "command_character", "cursor_address", "cursor_down", "cursor_home", "cursor_invisible", "cursor_left", "cursor_mem_address", "cursor_normal", "cursor_right", @@ -120,7 +120,7 @@ pub static stringfnames: &'static[&'static str] = &[ "back_tab", "bell", "carria "acs_plus", "memory_lock", "memory_unlock", "box_chars_1"]; #[rustfmt_skip] -pub static stringnames: &'static[&'static str] = &[ "cbt", "_", "cr", "csr", "tbc", "clear", +pub static stringnames: &[&str] = &[ "cbt", "_", "cr", "csr", "tbc", "clear", "_", "_", "hpa", "cmdch", "cup", "cud1", "home", "civis", "cub1", "mrcup", "cnorm", "cuf1", "ll", "cuu1", "cvvis", "dch1", "dl1", "dsl", "hd", "smacs", "blink", "bold", "smcup", "smdc", "dim", "smir", "invis", "prot", "rev", "smso", "smul", "ech", "rmacs", "sgr0", "rmcup", "rmdc", diff --git a/src/libterm/win.rs b/src/libterm/win.rs index 25b03ba59acbc..1051ddf1986f4 100644 --- a/src/libterm/win.rs +++ b/src/libterm/win.rs @@ -7,9 +7,9 @@ extern crate libc; use std::io; use std::io::prelude::*; -use Attr; -use color; -use Terminal; +use crate::Attr; +use crate::color; +use crate::Terminal; /// A Terminal implementation which uses the Win32 Console API. pub struct WinConsole {