diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-03-05T12·54+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2010-03-05T12·54+0000 |
commit | 04791840f4dd4d6bcc96aea133e9fda7c03897de (patch) | |
tree | a5281811c502a918ba56050ea37c028672f10a98 /src/nix-log2xml/log2xml.cc | |
parent | bc6f7fc139b5a72306a54c89db74bf126cca9ca7 (diff) |
* Emit warning='1' or error='1' attributes for lines marked as
warnings or errors with \e[w or \e[e.
Diffstat (limited to 'src/nix-log2xml/log2xml.cc')
-rw-r--r-- | src/nix-log2xml/log2xml.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/nix-log2xml/log2xml.cc b/src/nix-log2xml/log2xml.cc index b2a25eefa269..6645dc500fed 100644 --- a/src/nix-log2xml/log2xml.cc +++ b/src/nix-log2xml/log2xml.cc @@ -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; } |