Skip to content

Commit 703d0fa

Browse files
authored
Merge pull request #724 from atifaziz/fix/bug-720
Fix greedy parsing of load directive part
2 parents 7911eaf + 4d2c67a commit 703d0fa

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

src/Dotnet.Script.DependencyModel/ProjectSystem/ScriptFilesResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private void Process(string csxFile, HashSet<string> result)
6161

6262
private static string[] GetLoadDirectives(string content)
6363
{
64-
var matches = Regex.Matches(content, @"^\s*#load\s*""\s*(.+)\s*""", RegexOptions.Multiline);
64+
var matches = Regex.Matches(content, @"^\s*#load\s*""\s*(.+?)\s*""", RegexOptions.Multiline);
6565
List<string> result = new List<string>();
6666
foreach (var match in matches.Cast<Match>())
6767
{

src/Dotnet.Script.Tests/ScriptFilesResolverTests.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@ public void ShouldOnlyResolveRootScript()
2121
Assert.Contains(files, f => f.Contains("Foo.csx"));
2222
Assert.Contains(files, f => !f.Contains("Bar.csx"));
2323
}
24-
[Fact]
25-
public void ShouldResolveLoadedScriptInRootFolder()
24+
25+
[Theory]
26+
[InlineData("#load \"Bar.csx\"")]
27+
// See: https://github.com/dotnet-script/dotnet-script/issues/720 (1)
28+
[InlineData("#load \"Bar.csx\"\n\n\"Hello world\".Dump();")]
29+
public void ShouldResolveLoadedScriptInRootFolder(string rootScriptContent)
2630
{
2731
using var rootFolder = new DisposableFolder();
28-
var rootScript = WriteScript("#load \"Bar.csx\"", rootFolder.Path, "Foo.csx");
32+
var rootScript = WriteScript(rootScriptContent, rootFolder.Path, "Foo.csx");
2933
WriteScript(string.Empty, rootFolder.Path, "Bar.csx");
3034
var scriptFilesResolver = new ScriptFilesResolver();
3135

0 commit comments

Comments
 (0)