From 95d0edcc4e4c52c5ba5a8f2e213cd23e4020d590 Mon Sep 17 00:00:00 2001
From: Andrew Dolgov <fox@bah.org.ru>
Date: Thu, 22 Oct 2009 15:46:56 +0400
Subject: [PATCH] resort_category: proper fix for flat list mode

---
 functions.js | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/functions.js b/functions.js
index cffb79417..f6ef03d96 100644
--- a/functions.js
+++ b/functions.js
@@ -691,11 +691,11 @@ function get_feed_entry_name(elem) {
 }
 
 
-function resort_category(node) {
+function resort_category(node, cat_mode) {
 
 	try {
 
-		debug("resort_category: " + node);
+		debug("resort_category: " + node + " CM=" + cat_mode);
 	
 		var by_unread = feedsSortByUnread();
 	
@@ -710,8 +710,11 @@ function resort_category(node) {
 	
 				var tmp_name = get_feed_entry_name(list[i]);
 				var cur_name = get_feed_entry_name(list[j]);
-	
-				if ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name))) {
+
+				var valid_pair = cat_mode || (list[i].id.match(/FEEDR-[0-9]/) &&
+						list[j].id.match(/FEEDR-[0-9]/));
+
+				if (valid_pair && ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name)))) {
 					tempnode_i = list[i].cloneNode(true);
 					tempnode_j = list[j].cloneNode(true);
 					node.replaceChild(tempnode_i, list[j]);
@@ -735,12 +738,12 @@ function resort_feedlist() {
 
 		for (var i = 0; i < lists.length; i++) {
 			if (lists[i].id && lists[i].id.match("FCATLIST-")) {
-				resort_category(lists[i]);
+				resort_category(lists[i], true);
 			}
 		}
 
 	} else {
-		//resort_category($("feedList"));
+		resort_category($("feedList"), false);
 	}
 }
 
-- 
GitLab