Rather than all of this ugly error-prone code, can we instead use llvm::sys::fs::root_name to check whether the path contains a drive letter?
On Tue, Aug 18, 2015 at 1:52 PM Dawn Perchik via lldb-commits < lldb-commits@lists.llvm.org> wrote: > dawn created this revision. > dawn added reviewers: abidh, ki.stfu, brucem. > dawn added a subscriber: lldb-commits. > dawn set the repository for this revision to rL LLVM. > > This fixes -data-info-line to parse the filename and line correctly when > LineEntry doesn't have the optional column number and the filename contains > a Windows drive letter. > > Repository: > rL LLVM > > http://reviews.llvm.org/D12115 > > Files: > tools/lldb-mi/MICmdCmdData.cpp > > Index: tools/lldb-mi/MICmdCmdData.cpp > =================================================================== > --- tools/lldb-mi/MICmdCmdData.cpp > +++ tools/lldb-mi/MICmdCmdData.cpp > @@ -1754,8 +1754,15 @@ > const size_t nFileStartPos = rLine.find_first_not_of(' ', > nEndAddressEndPos + 2); > const size_t nFileOrLineEndPos = rLine.rfind(':'); > const size_t nFileOrLineStartPos = rLine.rfind(':', > nFileOrLineEndPos - 1); > - const size_t nFileEndPos = nFileStartPos < > nFileOrLineStartPos ? nFileOrLineStartPos : nFileOrLineEndPos; > - const size_t nFileLen = nFileEndPos - nFileStartPos; > + size_t nFileEndPos = nFileStartPos < nFileOrLineStartPos ? > nFileOrLineStartPos : nFileOrLineEndPos; > + size_t nFileLen = nFileEndPos - nFileStartPos; > + if ((nFileLen == 1) && ((rLine.at(nFileEndPos + 1) == '\\') > || (rLine.at(nFileEndPos + 1) == '/'))) > + { > + // The filename contains a Windows drive letter; > recalculate > + // nFileEndPos and nFileLen to account for it. > + nFileEndPos = nFileOrLineEndPos; > + nFileLen = nFileEndPos - nFileStartPos; > + } > const CMIUtilString strFile(rLine.substr(nFileStartPos, > nFileLen).c_str()); > const CMICmnMIValueConst miValueConst3(strFile); > const CMICmnMIValueResult miValueResult3("file", > miValueConst3); > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits