diff options
| author | Adrian McCarthy <amccarth@google.com> | 2019-06-07 21:13:30 +0000 |
|---|---|---|
| committer | Adrian McCarthy <amccarth@google.com> | 2019-06-07 21:13:30 +0000 |
| commit | 4447d15aef08b10fddc2f3c5133f32cdbfb7f441 (patch) | |
| tree | 62c92ea49a582022aa259837d2cc5240bf76d844 /lldb/source/Utility/Args.cpp | |
| parent | 13427e64de2b67e4ca42b2860c5d3ee50db0abfc (diff) | |
| download | bcm5719-llvm-4447d15aef08b10fddc2f3c5133f32cdbfb7f441.tar.gz bcm5719-llvm-4447d15aef08b10fddc2f3c5133f32cdbfb7f441.zip | |
Fix lit tests on Windows related to CR+LF
Problem discovered in the breakpoint lit test, but probably exists in others.
lldb-test splits lines on LF. Input files that are CR+LF separated (as is
common on Windows) then resulted in commands being sent to LLDB that ended
in CR, which confused the command interpreter.
This could be fixed at different levels:
1. Treat '\r' like a tab or space in the argument splitter.
2. Fix the line splitters (plural) in lldb-test.
3. Normalize the test files to LF only.
If we did only 3, I'd expect similar problems to recur, so this patch does
1 and 2. I may also do 3 in a separate patch later, but that's tricky
because I believe we have some input files that MUST use CR+LF.
Differential Revision: https://reviews.llvm.org/D62759
llvm-svn: 362844
Diffstat (limited to 'lldb/source/Utility/Args.cpp')
| -rw-r--r-- | lldb/source/Utility/Args.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lldb/source/Utility/Args.cpp b/lldb/source/Utility/Args.cpp index ac79354b028..77b0d43254a 100644 --- a/lldb/source/Utility/Args.cpp +++ b/lldb/source/Utility/Args.cpp @@ -95,7 +95,7 @@ ParseSingleArgument(llvm::StringRef command) { bool arg_complete = false; do { // Skip over over regular characters and append them. - size_t regular = command.find_first_of(" \t\"'`\\"); + size_t regular = command.find_first_of(" \t\r\"'`\\"); arg += command.substr(0, regular); command = command.substr(regular); @@ -123,6 +123,7 @@ ParseSingleArgument(llvm::StringRef command) { case ' ': case '\t': + case '\r': // We are not inside any quotes, we just found a space after an argument. // We are done. arg_complete = true; |

