From 41c6b693d3b08b756e39bfc10087402be4da4246 Mon Sep 17 00:00:00 2001 From: jaby Date: Thu, 24 Aug 2023 00:06:03 +0200 Subject: [PATCH] Advance version number and introduce conditional compiled code --- src/Tools/psxreadmap/readmap/Cargo.toml | 2 +- src/Tools/psxreadmap/readmap/src/main.rs | 10 ++++---- src/Tools/psxreadmap/src/main.rs | 30 ++++++++++++++---------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/Tools/psxreadmap/readmap/Cargo.toml b/src/Tools/psxreadmap/readmap/Cargo.toml index 9fe0b23e..fc882b61 100644 --- a/src/Tools/psxreadmap/readmap/Cargo.toml +++ b/src/Tools/psxreadmap/readmap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "readmap" -version = "0.1.0" +version = "1.0.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src/Tools/psxreadmap/readmap/src/main.rs b/src/Tools/psxreadmap/readmap/src/main.rs index 8f121ac1..a8d7e855 100644 --- a/src/Tools/psxreadmap/readmap/src/main.rs +++ b/src/Tools/psxreadmap/readmap/src/main.rs @@ -3,14 +3,16 @@ use tool_helper::{Error, exit_with_error}; use readmap::types::MemoryMap; use std::{io::{BufRead, BufReader}, path::PathBuf, process::{Child, Command, Stdio}}; +pub const RUN_DUMP_TOOL_IN_WSL:bool = cfg!(windows); + #[derive(Parser)] -#[clap(about = "Opens and scans a MAP file to print extended information", long_about = None)] +#[clap(about = "Opens and scans an ELF file to print extended information", long_about = None)] struct CommandLine { - #[clap(value_parser, help="Input MAP file for scannning")] + #[clap(value_parser, help="Input ELF file for scannning")] input: PathBuf, - #[clap(long="wsl", default_value_t=false)] + #[clap(long="wsl", help="Run \"objdump\" in WSL", default_value_t=RUN_DUMP_TOOL_IN_WSL)] use_wsl: bool, - #[clap(short='o')] + #[clap(short='o', help="Output a memory map file with running the tool")] output: Option } diff --git a/src/Tools/psxreadmap/src/main.rs b/src/Tools/psxreadmap/src/main.rs index 69bb489f..83fa81df 100644 --- a/src/Tools/psxreadmap/src/main.rs +++ b/src/Tools/psxreadmap/src/main.rs @@ -1,18 +1,20 @@ use clap::Parser; use crossterm::{event::{self, Event as CEvent, KeyboardEnhancementFlags, KeyEventKind, PushKeyboardEnhancementFlags}, execute, terminal}; use psxreadmap::{ConsoleUI, Event, EventReceiver, Terminal, load_memory_map, UIState}; -use std::{io, path::PathBuf, sync::mpsc, thread, time::{Duration, Instant}}; +use std::{io::{self, Stdout}, path::PathBuf, sync::mpsc, thread, time::{Duration, Instant}}; use tool_helper::{Error, exit_with_error}; use ratatui::backend::CrosstermBackend; +pub const RUN_DUMP_TOOL_IN_WSL:bool = cfg!(windows); + #[derive(Parser)] -#[clap(about = "Opens and scans a MAP file to print extended information", long_about = None)] +#[clap(about = "Opens and scans an ELF file to print extended memory information", long_about = None)] struct CommandLine { - #[clap(value_parser, help="Input MAP file for scannning")] + #[clap(value_parser, help="Input ELF file for scannning")] input: PathBuf, - #[clap(long="wsl", default_value_t=false)] + #[clap(long="wsl", help="Run \"objdump\" in WSL", default_value_t=RUN_DUMP_TOOL_IN_WSL)] use_wsl: bool, - #[clap(short='o')] + #[clap(short='o', help="Output a memory map file with running the tool")] output: Option } @@ -25,7 +27,7 @@ pub fn main() { } }, Err(error) => { - println!("{}", error) + println!("{})", error) } } } @@ -88,16 +90,18 @@ fn start_event_loop() -> EventReceiver { } fn setup_console() -> Result { + fn open_stdout() -> Result { + let mut stdout = io::stdout(); + if cfg!(unix) { + execute!(stdout, PushKeyboardEnhancementFlags(KeyboardEnhancementFlags::REPORT_EVENT_TYPES))?; + } + Ok(stdout) + } + terminal::enable_raw_mode()?; // Setup Crossterm for the Terminal - let stdout = { - let mut stdout = io::stdout(); - if let Err(_) = execute!(stdout, PushKeyboardEnhancementFlags(KeyboardEnhancementFlags::REPORT_EVENT_TYPES)) { - // This fails under Windows but is required for Linux - } - stdout - }; + let stdout = open_stdout()?; let backend = CrosstermBackend::new(stdout); let mut terminal = Terminal::new(backend)?;