]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/colour.js
Merge pull request #305 from retropc/master
[irc/quakenet/qwebirc.git] / js / ui / colour.js
index a5d7c7751e6630e2eb0f7ffaec0b300982d3c819..641dfe4a4e6cc4ab8e72ef005bb128d4966ba3eb 100644 (file)
@@ -3,8 +3,9 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
   var bg;
   var underline = false;
   var bold = false;
+  var italic = false;
   var autoNickColour = false;
-  
+
   var out = [];
   var xline = line.split("");
   var element = document.createElement("span");
@@ -44,9 +45,15 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
   }
 
   function emitEndToken() {
-    var data = "";
+    var data;
     if(out.length > 0) {
-      var data = qwebirc.ui.urlificate(element, out.join(""), execfn, cmdfn, window);
+      var o = out.join("");
+      if (execfn) {
+        data = qwebirc.ui.urlificate(element, o, execfn, cmdfn, window);
+      } else {
+        data = o;
+        element.appendChild(document.createTextNode(o));
+      }
       entity.appendChild(element);
       out = [];
     }
@@ -67,6 +74,8 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
       classes.push("Xb");
     if(underline)
       classes.push("Xu");
+    if(italic)
+      classes.push("Xi");
     element.className = classes.join(" ");
   }
   
@@ -112,6 +121,12 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
 
       underline = !underline;
       
+      emitStartToken();
+    } else if(lc == "\x1D") {
+      emitEndToken();
+
+      italic = !italic;
+      
       emitStartToken();
     } else if(lc == "\x0F") {
       emitEndToken();
@@ -119,14 +134,15 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
       fg = undefined;
       bg = undefined;
       underline = false;
+      italic = false;
       bold = false;
     } else if(lc == "\x03") {
       emitEndToken();
       
       i = parseColours(xline, i);
-      if(bg > 15)
+      if(bg >= 99)
         bg = undefined;
-      if(fg > 15)
+      if(fg >= 99)
         fg = undefined;
         
       emitStartToken();