Browse Source

Show directories first

master
Arun Prakash Jana 7 years ago
parent
commit
951d323616
No known key found for this signature in database GPG Key ID: A75979F35C080412
2 changed files with 17 additions and 4 deletions
  1. +2
    -1
      README.md
  2. +15
    -3
      nnn.c

+ 2
- 1
README.md View File

@@ -54,11 +54,12 @@ I chose to fork because:
- current item in reverse video - current item in reverse video
- number of items in current directory - number of items in current directory
- full name of currently selected file - full name of currently selected file
- Directories first
- Sort numeric names in numeric order
- Case-insensitive alphabetic content listing instead of upper case first - Case-insensitive alphabetic content listing instead of upper case first
- Roll over at the first and last entries of a directory (with Up/Down keys) - Roll over at the first and last entries of a directory (with Up/Down keys)
- Removed navigation restriction with relative paths (and let permissions handle it) - Removed navigation restriction with relative paths (and let permissions handle it)
- Sort entries by file size (largest to smallest) - Sort entries by file size (largest to smallest)
- Sort numeric names in numeric order
- Shortcut to invoke file name copier (set using environment variable `NNN_COPIER`) - Shortcut to invoke file name copier (set using environment variable `NNN_COPIER`)
- File associations - File associations
- Environment variable `NNN_OPENER` to let desktop opener handle it all. E.g.: - Environment variable `NNN_OPENER` to let desktop opener handle it all. E.g.:


+ 15
- 3
nnn.c View File

@@ -395,13 +395,25 @@ visible(regex_t *regex, char *file)
static int static int
entrycmp(const void *va, const void *vb) entrycmp(const void *va, const void *vb)
{ {
static pEntry pa, pb;

pa = (pEntry)va;
pb = (pEntry)vb;

/* Sort directories first */
if (S_ISDIR(pb->mode) && !S_ISDIR(pa->mode))
return 1;
else if (S_ISDIR(pa->mode) && !S_ISDIR(pb->mode))
return -1;

/* Do the actual sorting */
if (mtimeorder) if (mtimeorder)
return ((pEntry)vb)->t - ((pEntry)va)->t;
return pb->t - pa->t;


if (sizeorder) if (sizeorder)
return ((pEntry)vb)->size - ((pEntry)va)->size;
return pb->size - pa->size;


return xstricmp(((pEntry)va)->name, ((pEntry)vb)->name);
return xstricmp(pa->name, pb->name);
} }


static void static void


Loading…
Cancel
Save