about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-03-18T21·32+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-03-18T21·32+0000
commite6253b58cdb6b3836a616821b7f5dc66790ac989 (patch)
treefc95b3a02544c7ab075aa3ed8b46178498fa78e4
parent3f3c4cce5a6552016a040999f64dc989d203a9ef (diff)
* Escape codes to force line breaks to be ignored.
-rw-r--r--src/log2xml/log2xml.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/log2xml/log2xml.cc b/src/log2xml/log2xml.cc
index cf56374cb407..66e182452844 100644
--- a/src/log2xml/log2xml.cc
+++ b/src/log2xml/log2xml.cc
@@ -15,6 +15,7 @@ struct Decoder
     vector<int> args;
     bool newNumber;
     int priority;
+    bool ignoreLF;
 
     Decoder()
     {
@@ -23,6 +24,7 @@ struct Decoder
         inHeader = false;
         level = 0;
         priority = 1;
+        ignoreLF = false;
     }
 
     void pushChar(char c);
@@ -38,7 +40,7 @@ void Decoder::pushChar(char c)
         case stTop:
             if (c == '\e') {
                 state = stEscape;
-            } else if (c == '\n') {
+            } else if (c == '\n' && !ignoreLF) {
                 finishLine();
             } else line += c;
             break;
@@ -75,6 +77,12 @@ void Decoder::pushChar(char c)
                         if (line.size()) finishLine();
                         priority = args.size() >= 1 ? args[0] : 1;
                         break;
+                    case 'a':
+                        ignoreLF = true;
+                        break;
+                    case 'b':
+                        ignoreLF = false;
+                        break;
                 }
             } else if (c >= '0' && c <= '9') {
                 int n = 0;