mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-10 08:16:15 +02:00
* Emit warning='1' or error='1' attributes for lines marked as
warnings or errors with \e[w or \e[e.
This commit is contained in:
parent
bc6f7fc139
commit
04791840f4
1 changed files with 14 additions and 0 deletions
|
@ -18,6 +18,8 @@ struct Decoder
|
|||
int priority;
|
||||
bool ignoreLF;
|
||||
int lineNo, charNo;
|
||||
bool warning;
|
||||
bool error;
|
||||
|
||||
Decoder()
|
||||
{
|
||||
|
@ -29,6 +31,8 @@ struct Decoder
|
|||
ignoreLF = false;
|
||||
lineNo = 1;
|
||||
charNo = 0;
|
||||
warning = false;
|
||||
error = false;
|
||||
}
|
||||
|
||||
void pushChar(char c);
|
||||
|
@ -95,6 +99,12 @@ void Decoder::pushChar(char c)
|
|||
case 'b':
|
||||
ignoreLF = false;
|
||||
break;
|
||||
case 'e':
|
||||
error = true;
|
||||
break;
|
||||
case 'w':
|
||||
warning = true;
|
||||
break;
|
||||
}
|
||||
} else if (c >= '0' && c <= '9') {
|
||||
int n = 0;
|
||||
|
@ -118,6 +128,8 @@ void Decoder::finishLine()
|
|||
string tag = inHeader ? "head" : "line";
|
||||
cout << "<" << tag;
|
||||
if (priority != 1) cout << " priority='" << priority << "'";
|
||||
if (warning) cout << " warning='1'";
|
||||
if (error) cout << " error='1'";
|
||||
cout << ">";
|
||||
|
||||
for (unsigned int i = 0; i < line.size(); i++) {
|
||||
|
@ -158,6 +170,8 @@ void Decoder::finishLine()
|
|||
line = "";
|
||||
inHeader = false;
|
||||
priority = 1;
|
||||
warning = false;
|
||||
error = false;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue