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 = [];
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) {
qwebirc.irc.NickChanEntry = function() {
this.prefixes = "";
- this.lastSpoke = 0;
-}
+ this.lastSpoke = -Infinity;
+};
qwebirc.irc.IRCTracker = new Class({
initialize: function(owner) {
return;
var n = c.map(fn);
- n.sort();
+ n.sort(qwebirc.util.arrayCmp);
var n2 = [];
for(var i=0;i<n.length;i++)
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;
+};