diff --git a/InfHelper/src/Parsers/ContentParser.cs b/InfHelper/src/Parsers/ContentParser.cs index e91767f..7e70fe1 100644 --- a/InfHelper/src/Parsers/ContentParser.cs +++ b/InfHelper/src/Parsers/ContentParser.cs @@ -207,9 +207,20 @@ private void ValidTokenFoundDuringPureValueParsing(object sender, TokenBase toke keyTmpValue += tokenBase.Symbol; break; case TokenType.ValueMarker: + if (!string.IsNullOrEmpty(currentKey.Id)) + { + ValueParsingComplete(true); + InitKeyValueParsing(); + } + else + { + InitKeyIdParsing(); + } + break; case TokenType.NewLine: ValueParsingComplete(true); - InitKeyValueParsing(); + KeyParsingComplete(); + InitKeyIdParsing(); break; default: throw new InvalidTokenException("Invalid tokenBase found during comment parsing: " + tokenBase.Symbol); diff --git a/InfHelperTests/src/InfHelperTests.cs b/InfHelperTests/src/InfHelperTests.cs index 83dcc78..4b0d5b5 100644 --- a/InfHelperTests/src/InfHelperTests.cs +++ b/InfHelperTests/src/InfHelperTests.cs @@ -81,6 +81,16 @@ public void PureValueParsingTest() Assert.AreEqual("16428, \"Razer\\RzWizardPkg ; [Brackets=X]\"", data["DestinationDirs"]["Razer_Installer_CopyFilesWithBrackets"].PrimitiveValue); } + [TestMethod()] + public void QuotedKeyParsingTest() + { + string formula = + "[AzaliaManufacturerID.NTamd64.10.0...15063]\r\n\"Realtek High Definition Audio\" = IntcAzAudModel, HDAUDIO\\FUNC_01&VEN_10EC&DEV_0257&SUBSYS_17AA39F5 ; ThinkBook 16p NX ARH\r\n"; + var helper = new InfUtil(); + var data = helper.Parse(formula); + Assert.AreEqual("IntcAzAudModel, HDAUDIO\\FUNC_01&VEN_10EC&DEV_0257&SUBSYS_17AA39F5", data["AzaliaManufacturerID.NTamd64.10.0...15063"]["Realtek High Definition Audio"].PrimitiveValue); + } + [TestMethod()] public void SearchMethdTest() {