src: fix dotenv parsing commented env#52363
Conversation
| "\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^']" | ||
| ")*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\r\n]+)?\\s*(?" | ||
| ":#.*)?"); // NOLINT(whitespace/line_length) | ||
| "(?:^|^)\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?" |
There was a problem hiding this comment.
The previous implementation is copied from dotenv but the regexp is missing the beginning part (?:^|^).
So, it cannot determine the commented env properly.
There was a problem hiding this comment.
Seems like it is removed because std::regex::multiline is not supported.
The current workflow using C++11 only and that required C++17
There was a problem hiding this comment.
I'm not sure that (?:^|^) part is makes much sense, and can be simplified just to (?:^)
There was a problem hiding this comment.
After testing, it can be simplified to (?:^).
Due the problem of std::regex::multiline not supported in some environment.
I believe the option of just changing the regex is a no-go.
|
After searching around #52120 also solve the issue. |
anonrig
left a comment
There was a problem hiding this comment.
We should move away from regexp implementation due to Windows limitations.
Fixes #52084
Fixes #52362