From d82a911cd96a2baae421584b5ea7800c81216be7 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 30 Sep 2020 10:07:53 -0700 Subject: [PATCH] Don't write internal quotes during normal use (fixes #30) --- SabreTools.Library/IO/ClrMameProWriter.cs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/SabreTools.Library/IO/ClrMameProWriter.cs b/SabreTools.Library/IO/ClrMameProWriter.cs index 2cc628b0..1e0424f8 100644 --- a/SabreTools.Library/IO/ClrMameProWriter.cs +++ b/SabreTools.Library/IO/ClrMameProWriter.cs @@ -137,6 +137,10 @@ namespace SabreTools.Library.IO { try { + // If we're writing quotes, don't write out quote characters internally + if (Quotes) + name = name.Replace("\"", "''"); + AutoComplete(Token.StartElement); PushStack(); stack[top].Name = name; @@ -200,6 +204,10 @@ namespace SabreTools.Library.IO { try { + // If we're writing quotes, don't write out quote characters internally + if (Quotes) + name = name.Replace("\"", "''"); + AutoComplete(Token.StartAttribute); sw.Write(name); sw.Write(" "); @@ -266,6 +274,14 @@ namespace SabreTools.Library.IO if (string.IsNullOrEmpty(name)) throw new ArgumentException(); + // If we're writing quotes, don't write out quote characters internally + if ((quoteOverride == null && Quotes) + || (quoteOverride == true)) + { + name = name.Replace("\"", "''"); + value = value.Replace("\"", "''"); + } + AutoComplete(Token.Standalone); sw.Write(name); sw.Write(" "); @@ -315,6 +331,11 @@ namespace SabreTools.Library.IO if (!string.IsNullOrEmpty(value)) { AutoComplete(Token.Content); + + // If we're writing quotes, don't write out quote characters internally + if (Quotes) + value = value.Replace("\"", "''"); + sw.Write(value); } }