]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/colour.js
Merge pull request #402 from retropc/reqs
[irc/quakenet/qwebirc.git] / js / ui / colour.js
index a5d7c7751e6630e2eb0f7ffaec0b300982d3c819..43a17d320e4e5ccc809a2fb5a50a81f5574d16fd 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");
@@ -46,7 +47,13 @@ qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) {
   function emitEndToken() {
     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();