From 2bdab50531e1b40481381dc4a263d094bc50d5c8 Mon Sep 17 00:00:00 2001 From: Craig Everett Date: Mon, 21 Dec 2020 02:31:08 +0900 Subject: [PATCH] Adjust pathfinding for R23+ --- windows/vapor.rs | 10 +++++++++- windows/zx.rs | 7 ++++++- windows/zxh.rs | 7 ++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/windows/vapor.rs b/windows/vapor.rs index f8c56f3..e2e7611 100644 --- a/windows/vapor.rs +++ b/windows/vapor.rs @@ -1,5 +1,8 @@ // Prepare environment for Vapor via ZX and launch it using erl.exe +// Uncomment below to hide the console window. +#![windows_subsystem = "windows"] + use std::env; use std::path::Path; use std::path::PathBuf; @@ -41,12 +44,17 @@ fn main() { let pf = Path::new(&env_pf); let mut maj: i32 = 0; let mut min: i32 = 0; + let mut erl_ver = String::new(); let mut best_path = PathBuf::new(); for entry in std::fs::read_dir(pf).unwrap() { let path = entry.unwrap().path(); let installation = path.file_name().unwrap().to_str().unwrap(); if installation.starts_with("erl") { - let erl_ver = installation.trim_start_matches("erl"); + if installation.starts_with("erl-") { + erl_ver = installation.trim_start_matches("erl-").to_string(); + } else { + erl_ver = installation.trim_start_matches("erl").to_string(); + } let parts: Vec<&str> = erl_ver.split('.').collect(); let m_maj: i32 = parts[0].parse().unwrap(); let m_min: i32 = parts[1].parse().unwrap(); diff --git a/windows/zx.rs b/windows/zx.rs index edb4333..9d36db5 100644 --- a/windows/zx.rs +++ b/windows/zx.rs @@ -43,12 +43,17 @@ fn main() { let pf = Path::new(&env_pf); let mut maj: i32 = 0; let mut min: i32 = 0; + let mut erl_ver = String::new(); let mut best_path = PathBuf::new(); for entry in std::fs::read_dir(pf).unwrap() { let path = entry.unwrap().path(); let installation = path.file_name().unwrap().to_str().unwrap(); if installation.starts_with("erl") { - let erl_ver = installation.trim_start_matches("erl"); + if installation.starts_with("erl-") { + erl_ver = installation.trim_start_matches("erl-").to_string(); + } else { + erl_ver = installation.trim_start_matches("erl").to_string(); + } let parts: Vec<&str> = erl_ver.split('.').collect(); let m_maj: i32 = parts[0].parse().unwrap(); let m_min: i32 = parts[1].parse().unwrap(); diff --git a/windows/zxh.rs b/windows/zxh.rs index 5c3186d..6ee438d 100644 --- a/windows/zxh.rs +++ b/windows/zxh.rs @@ -46,12 +46,17 @@ fn main() { let pf = Path::new(&env_pf); let mut maj: i32 = 0; let mut min: i32 = 0; + let mut erl_ver = String::new(); let mut best_path = PathBuf::new(); for entry in std::fs::read_dir(pf).unwrap() { let path = entry.unwrap().path(); let installation = path.file_name().unwrap().to_str().unwrap(); if installation.starts_with("erl") { - let erl_ver = installation.trim_start_matches("erl"); + if installation.starts_with("erl-") { + erl_ver = installation.trim_start_matches("erl-").to_string(); + } else { + erl_ver = installation.trim_start_matches("erl").to_string(); + } let parts: Vec<&str> = erl_ver.split('.').collect(); let m_maj: i32 = parts[0].parse().unwrap(); let m_min: i32 = parts[1].parse().unwrap();