]> jfr.im git - irc/rizon/qchat.git/commitdiff
sorting fixes
authorChris Porter <redacted>
Mon, 25 Aug 2014 14:35:13 +0000 (15:35 +0100)
committerChris Porter <redacted>
Mon, 25 Aug 2014 14:35:13 +0000 (15:35 +0100)
js/irc/ircclient.js
js/irc/irctracker.js
js/jslib.js

index 31eb2a9c31f77af2fd829a5a9ecbe76722109437..c801f3a264bffc52920fa946ee6188c0fc928467 100644 (file)
@@ -82,9 +82,9 @@ qwebirc.irc.IRCClient = new Class({
       var c = prefixes.charAt(0);
       var p = this.prefixes.indexOf(c);
       if(p > -1)
-        return -p - 1;
+        return p;
     }
-    return 0;
+    return Infinity;
   },
   updateNickList: function(channel) {
     var names = [];
@@ -93,18 +93,16 @@ qwebirc.irc.IRCClient = new Class({
     var n1 = this.tracker.getChannel(channel);
     if($defined(n1)) {
       n1.each(function (n, nc) {
-        var prefix, pri;
+        var prefix, pri = this.getPrefixPriority(nc.prefixes);
         if(nc.prefixes.length > 0) {
           prefix = nc.prefixes.charAt(0);
-          pri = this.getPrefixPriority(nc.prefixes);
         } else {
           prefix = "";
-          pri = 0;
         }
         names.push([pri, this.toIRCLower(n), prefix + n]);
       }, this);
     }
-    names.sort();
+    names.sort(qwebirc.util.arrayCmp);
     
     var sortednames = [];
     names.each(function(name) {
index 897a93c64681b5e245a8254aeddb703870c89e0c..04dc3c79ed741813bb53dc0baaed0036458ed4f7 100644 (file)
@@ -1,7 +1,7 @@
 qwebirc.irc.NickChanEntry = function() {
   this.prefixes = "";
-  this.lastSpoke = 0;
-}
+  this.lastSpoke = -Infinity;
+};
 
 qwebirc.irc.IRCTracker = new Class({
   initialize: function(owner) {
@@ -135,7 +135,7 @@ qwebirc.irc.IRCTracker = new Class({
       return;
 
     var n = c.map(fn);
-    n.sort();
+    n.sort(qwebirc.util.arrayCmp);
 
     var n2 = [];
     for(var i=0;i<n.length;i++)
index 9a7b26dd2ee65cacc22ab82491126f323bd47a40..c8e866444cf5f75948fbeda4e6f11b458f2a25eb 100644 (file)
@@ -416,4 +416,19 @@ qwebirc.util.deviceHasKeyboard = function() {
 qwebirc.util.generateID_ID = 0;
 qwebirc.util.generateID = function() {
   return "qqa-" + qwebirc.util.generateID_ID++;
-}
\ No newline at end of file
+};
+
+qwebirc.util.arrayCmp = function(a, b) {
+  for(var p=0;p<a.length;p++) {
+    var ap = a[p];
+    var bp = b[p];
+    if(ap == bp)
+      continue;
+
+    if(ap < bp)
+      return -1;
+
+    return 1;
+  }
+  return 0;
+};