diff --git a/src/Integration.Vsix.UnitTests/CFamily/CmdBuilderTests.cs b/src/Integration.Vsix.UnitTests/CFamily/CmdBuilderTests.cs index 83bab31feb..948caad7f8 100644 --- a/src/Integration.Vsix.UnitTests/CFamily/CmdBuilderTests.cs +++ b/src/Integration.Vsix.UnitTests/CFamily/CmdBuilderTests.cs @@ -421,6 +421,9 @@ public void GetPotentiallyUnsupportedPropertyValue_CriticalException_IsNotSuppre [TestMethod] [DataRow("a/b/c/", "\"a\\b\\c\"")] + [DataRow(" a/b/c/", "\"a\\b\\c\"")] + [DataRow("a/b/c/ ", "\"a\\b\\c\"")] + [DataRow(" a/b/c/ ", "\"a\\b\\c\"")] [DataRow("a\\b\\c\\", "\"a\\b\\c\"")] [DataRow("a\\b/c\\\\", "\"a\\b\\c\"")] [DataRow("\"a\\\\b/c\"", "\"a\\b\\c\"")] diff --git a/src/Integration.Vsix/CFamily/VcxProject/CmdBuilder.cs b/src/Integration.Vsix/CFamily/VcxProject/CmdBuilder.cs index e2b2d3a2c8..c3387d805a 100644 --- a/src/Integration.Vsix/CFamily/VcxProject/CmdBuilder.cs +++ b/src/Integration.Vsix/CFamily/VcxProject/CmdBuilder.cs @@ -83,7 +83,7 @@ public void AddCompiler(string path) internal /* for testing */ static string AdjustPath(string path) { // path cannot be empty - path = path.Replace("/", @"\"); + path = path.Trim().Replace("/", @"\"); path = DoubleSeparatorRegEx.Replace(path, @"\"); @@ -180,8 +180,8 @@ internal void AddOptFromProperties(IVCRulePropertyStorage properties) private void AddListOptions(IVCRulePropertyStorage ivcRulePropertyStorage, string vsOption, string compileOption, string[] separator, bool addQuote = true) { - var additionalIncludeDirectories = ivcRulePropertyStorage.GetEvaluatedPropertyValue(vsOption); - string[] opts = additionalIncludeDirectories.Split(separator, StringSplitOptions.RemoveEmptyEntries); + var listOptions = ivcRulePropertyStorage.GetEvaluatedPropertyValue(vsOption); + string[] opts = listOptions.Split(separator, StringSplitOptions.RemoveEmptyEntries); foreach (string opt in opts) { AddCmdOpt(addQuote ? compileOption + AddQuote(opt) : compileOption + opt); @@ -190,8 +190,8 @@ private void AddListOptions(IVCRulePropertyStorage ivcRulePropertyStorage, strin private void AddPathListOptions(IVCRulePropertyStorage ivcRulePropertyStorage, string vsOption, string compileOption, string[] separator) { - var additionalIncludeDirectories = ivcRulePropertyStorage.GetEvaluatedPropertyValue(vsOption); - string[] opts = additionalIncludeDirectories.Split(separator, StringSplitOptions.RemoveEmptyEntries); + var pathListOptions = ivcRulePropertyStorage.GetEvaluatedPropertyValue(vsOption); + string[] opts = pathListOptions.Split(separator, StringSplitOptions.RemoveEmptyEntries); foreach (string opt in opts) { AddCmdOpt(compileOption + AdjustPath(opt));