================
@@ -23,6 +23,31 @@ using namespace llvm;
using namespace lldb_private;
namespace {
+/// Parses curly braces and replaces them with ANSI underline formatting.
+inline std::string underline(llvm::StringRef Str) {
+ llvm::StringRef OpeningHead, OpeningTail, ClosingHead, ClosingTail;
+ std::string Result;
+ llvm::raw_string_ostream Stream(Result);
+ while (!Str.empty()) {
+ // Find the opening brace.
+ std::tie(OpeningHead, OpeningTail) = Str.split("${");
+ Stream << OpeningHead;
+
+ // No opening brace: we're done.
+ if (OpeningHead == Str && OpeningTail.empty())
+ break;
+
+ // Find the closing brace.
+ std::tie(ClosingHead, ClosingTail) = OpeningTail.split('}');
+ assert(!ClosingTail.empty() &&
+ "unmatched curly braces in command option description");
----------------
DavidSpickett wrote:
In non-assert builds this makes the behaviour like printf, it just leaves the
characters in there. I see we don't have a nice way to return an error in this
path either.
Is there any way for an emitter to report an error?
Assert is ok but given that it takes a user to notice the stray `${`, I wonder
if we should just fail to build at all.
https://github.com/llvm/llvm-project/pull/155694
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits