From ca7ae5c14271b3071c81d299687307d752239e48 Mon Sep 17 00:00:00 2001
From: yorhel <yorhel@ce56bc8d-f834-0410-b703-f827bd498a76>
Date: Thu, 11 Dec 2008 17:13:03 +0000
Subject: [PATCH] Items are ordered by displayed size rather than disk usage

git-svn-id: svn://blicky.net/ncdu/trunk@46 ce56bc8d-f834-0410-b703-f827bd498a76
---
 ChangeLog     |  1 +
 src/browser.c | 17 ++++++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6d93283..26ce6f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@ svn - ?
 	- Browsing keys now work while file info window is displayed
 	- Current directory is assumed when no directory is specified
 	- Size graph uses the apparent size if that is displayed
+	- Items are ordered by displayed size rather than disk usage
 
 1.4 - 2008-09-10
 	- Removed the startup window
diff --git a/src/browser.c b/src/browser.c
index be95cd5..7127ea2 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -68,10 +68,17 @@ int cmp(struct dir *x, struct dir *y) {
 
   if(bflags & BF_NAME)
     r = strcmp(a->name, b->name);
-  if(r == 0)
-    r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
-  if(r == 0)
-    r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+  if(bflags & BF_AS) {
+    if(r == 0)
+      r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+    if(r == 0)
+      r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
+  } else {
+    if(r == 0)
+      r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
+    if(r == 0)
+      r = a->asize > b->asize ? 1 : (a->asize == b->asize ? 0 : -1);
+  }
   if(r == 0)
     r = strcmp(x->name, y->name);
   return(r);
@@ -486,7 +493,7 @@ void showBrowser(void) {
         else
           goto endloop;
     }
-    if((last != bcur || (oldflags | BF_HIDE | BF_AS | BF_INFO) != (bflags | BF_HIDE | BF_AS | BF_INFO)) && bflags & BF_SORT)
+    if((last != bcur || (oldflags | BF_HIDE | BF_INFO) != (bflags | BF_HIDE | BF_INFO)) && bflags & BF_SORT)
       bflags -= BF_SORT;
     
     drawBrowser(change);
-- 
GitLab