From 21d1ca0a6124bc4f0fe731fa87decda202649882 Mon Sep 17 00:00:00 2001 From: "Prof. 9" Date: Sat, 24 May 2014 06:13:18 +0200 Subject: [PATCH] Added filename sanitizing, and blz.exe is ran from the same directory as the executable now. Fixes #1 and fixes #5. --- WfcReplay/Program.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/WfcReplay/Program.cs b/WfcReplay/Program.cs index 8dce557..03cd7e2 100644 --- a/WfcReplay/Program.cs +++ b/WfcReplay/Program.cs @@ -6,12 +6,13 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; namespace WfcReplay { class Program { - static string version = "v0.3"; + static string version = "v0.4"; static void Main(string[] args) { @@ -37,6 +38,7 @@ namespace WfcReplay MemoryStream outStream = new MemoryStream(Encoding.UTF8.GetBytes(code)); outStream.Position = 0; string fileName = makeGameString(romReader) + ".txt"; + fileName = makeFileNameSafe(fileName); writeFile(fileName, outStream); Console.WriteLine("Success!"); Console.WriteLine("Code written to " + Directory.GetCurrentDirectory() + "\\" + fileName + "."); @@ -109,6 +111,11 @@ namespace WfcReplay { writeFile(tempFolderPath + fileName, file); } + static string makeFileNameSafe(string fileName) + { + string[] validParts = fileName.Split(System.IO.Path.GetInvalidFileNameChars(), StringSplitOptions.RemoveEmptyEntries); + return string.Join("-", validParts); + } string tempFolderPath; @@ -308,6 +315,7 @@ namespace WfcReplay writeTempFile(fileName, file); ProcessStartInfo psi = new ProcessStartInfo("blz.exe", "-d " + tempFolderPath + fileName); + psi.WorkingDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); psi.WindowStyle = ProcessWindowStyle.Hidden; Process.Start(psi).WaitForExit();