Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Space was not supporting #3983

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Ginger/Ginger/GeneralLib/General.cs
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,7 @@ public static List<string> SplitWithPaths(string input)
{
return [];
}
var pattern = @"[^\s""']+|""([^""]*)""|'([^']*)'";
var pattern = @"""[^""]*""|(?:C:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Update regex pattern to support all drive letters and path formats.

The current pattern only supports C: drive paths. This is too restrictive and may cause issues with paths using other drive letters.

Update the pattern to support:

-var pattern = @"""[^""]*""|(?:C:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
+var pattern = @"""[^""]*""|(?:[A-Za-z]:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
var pattern = @"""[^""]*""|(?:C:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
var pattern = @"""[^""]*""|(?:[A-Za-z]:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";

⚠️ Potential issue

Make path handling cross-platform compatible.

The current implementation is Windows-specific. Consider updating the pattern to handle:

  • Forward slashes for cross-platform compatibility
  • UNC paths (\server\share)
  • Environment variables in paths

Consider using Path.GetFullPath() to normalize paths before pattern matching:

-var pattern = @"""[^""]*""|(?:C:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
+var pattern = @"""[^""]*""|(?:(?:[A-Za-z]:|\\\\[^\s\\]+\\[^\s\\]+|\.{1,2}|)(?:\\|/)[^\s]+)|[^\s]+";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
var pattern = @"""[^""]*""|(?:C:\\[^ ]+(?: [^ ]+)*[^ ]+)|[^\s]+";
var pattern = @"""[^""]*""|(?:(?:[A-Za-z]:|\\\\[^\s\\]+\\[^\s\\]+|\.{1,2}|)(?:\\|/)[^\s]+)|[^\s]+";

var matches = Regex.Matches(input, pattern);
List<string> results = [];

Expand Down
Loading