From 32a535d6d7d085eebc350dce8a1142df757c7f74 Mon Sep 17 00:00:00 2001
From: yorhel <yorhel@ce56bc8d-f834-0410-b703-f827bd498a76>
Date: Tue, 24 Jul 2007 08:53:55 +0000
Subject: [PATCH] * When changing sort order to size, automatically sort in
 descending order * Removed unused and hidden feature to sort on number of
 files * When sorting on size, and multiple items have the same size, sort
 them on filename * Updated changelog

git-svn-id: svn://blicky.net/ncdu/trunk@8 ce56bc8d-f834-0410-b703-f827bd498a76
---
 ChangeLog     |  6 +++++-
 NEWS          |  6 +++++-
 src/browser.c | 13 +++++++------
 src/ncdu.h    |  1 -
 4 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c33a044..0033e9b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
-1.2 - ?
+1.2 - 2007-07-24
   - Fixed some bugs on cygwin
   - Added du-like exclude patterns
+	- Fixed bug #1758403: large directories work fine now
+	- Rewrote a large part of the code
+	- Fixed a bug with wide characters
+	- Performance improvements when browsing large dirs
 
 1.1 - 2007-04-30
   - Deleting files and directories is now possible from
diff --git a/NEWS b/NEWS
index c33a044..0033e9b 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,10 @@
-1.2 - ?
+1.2 - 2007-07-24
   - Fixed some bugs on cygwin
   - Added du-like exclude patterns
+	- Fixed bug #1758403: large directories work fine now
+	- Rewrote a large part of the code
+	- Fixed a bug with wide characters
+	- Performance improvements when browsing large dirs
 
 1.1 - 2007-04-30
   - Deleting files and directories is now possible from
diff --git a/src/browser.c b/src/browser.c
index d4a04db..ee93404 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -48,15 +48,16 @@ int cmp(struct dir *x, struct dir *y) {
     b = y; a = x;
   }
   if(!(bflags & BF_NDIRF) && y->flags & FF_DIR && !(x->flags & FF_DIR))
-    r = 1;
-  else if(!(bflags & BF_NDIRF) && !(y->flags & FF_DIR) && x->flags & FF_DIR)
-    r = -1;
-  else if(bflags & BF_NAME)
+    return(1);
+  if(!(bflags & BF_NDIRF) && !(y->flags & FF_DIR) && x->flags & FF_DIR)
+    return(-1);
+
+  if(bflags & BF_NAME)
     r = strcmp(a->name, b->name);
-  else if(bflags & BF_FILES)
-    r = (a->files - b->files);
   if(r == 0)
     r = a->size > b->size ? 1 : (a->size == b->size ? 0 : -1);
+  if(r == 0)
+    r = strcmp(a->name, b->name);
   return(r);
 }
 
diff --git a/src/ncdu.h b/src/ncdu.h
index f1ad29d..cca87ba 100644
--- a/src/ncdu.h
+++ b/src/ncdu.h
@@ -101,7 +101,6 @@
 /* Browse Flags (int bflags) */
 #define BF_NAME   1
 #define BF_SIZE   2
-#define BF_FILES  4
 #define BF_NDIRF 32 /* Normally, dirs before files, setting this disables it */
 #define BF_DESC  64
 #define BF_HIDE 128 /* don't show hidden files... */
-- 
GitLab