]> Sergey Matveev's repositories - nnn.git/commitdiff
Code reformat
authorArun Prakash Jana <engineerarun@gmail.com>
Wed, 5 Aug 2020 07:29:54 +0000 (12:59 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Wed, 5 Aug 2020 07:29:54 +0000 (12:59 +0530)
src/nnn.c

index a918cec23a64dee9b800e1a217baddc64c378430..05ddafb0eca3d23df84375d9e80b2259569e147d 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -3360,59 +3360,38 @@ static char *coolsize(off_t size)
        return size_buf;
 }
 
-static char get_ind(mode_t mode, bool perms, uchar *pair)
+/* Convert a mode field into "ls -l" type perms field. */
+static char *get_lsperms(mode_t mode)
 {
+       static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"};
+       static char bits[11] = {'\0'};
+
        switch (mode & S_IFMT) {
        case S_IFREG:
-               if (perms)
-                       return '-';
-               if (mode & 0100) {
-                       *pair = C_EXE;
-                       return '*';
-               }
-               *pair = C_FIL;
-               return '\0';
+               bits[0] = '-';
+               break;
        case S_IFDIR:
-               if (perms)
-                       return 'd';
-               *pair = C_DIR;
-               return '/';
+               bits[0] = 'd';
+               break;
        case S_IFLNK:
-               return perms ? 'l' : '@';
+               bits[0] = 'l';
+               break;
        case S_IFSOCK:
-               if (perms)
-                       return 's';
-               *pair = C_SOC;
-               return '=';
+               bits[0] = 's';
+               break;
        case S_IFIFO:
-               if (perms)
-                       return 'p';
-               *pair = C_PIP;
-               return '|';
+               bits[0] = 'p';
+               break;
        case S_IFBLK:
-               if (perms)
-                       return 'b';
-               *pair = C_BLK;
-               return '\0';
+               bits[0] = 'b';
+               break;
        case S_IFCHR:
-               if (perms)
-                       return 'c';
-               *pair = C_CHR;
-               return '\0';
+               bits[0] = 'c';
+               break;
        default:
-               if (!perms)
-                       *pair = C_UND;
-               return '?';
+               bits[0] = '?';
+               break;
        }
-}
-
-/* Convert a mode field into "ls -l" type perms field. */
-static char *get_lsperms(mode_t mode)
-{
-       static const char * const rwx[] = {"---", "--x", "-w-", "-wx", "r--", "r-x", "rw-", "rwx"};
-       static char bits[11] = {'\0'};
-
-       bits[0] = get_ind(mode, TRUE, NULL);
 
        xstrsncpy(&bits[1], rwx[(mode >> 6) & 7], 4);
        xstrsncpy(&bits[4], rwx[(mode >> 3) & 7], 4);
@@ -3439,30 +3418,63 @@ static void print_time(const time_t *timep)
 static void printent(const struct entry *ent, uint namecols, bool sel)
 {
        uchar pair = 0;
-       char ind = get_ind(ent->mode, FALSE, &pair);
+       char ind = '\0';
        int attrs = sel ? A_REVERSE : 0;
 
-       if (g_state.ctxcolor) {
-               if (ind == '@') {
-                       if (ent->flags & DIR_OR_LINK_TO_DIR)
-                               ind = '/';
-                       attrs |= A_DIM;
-               } else if (ent->flags & HARD_LINK)
-                       attrs |= A_DIM;
-       } else {
-               if (ind == '@') {
-                       if (ent->flags & DIR_OR_LINK_TO_DIR) {
-                               ind = '/';
-                               attrs |= A_BOLD;
-                       }
-                       pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
-               } else if (!ent->size && (pair == C_FIL || pair == C_EXE))
+       switch (ent->mode & S_IFMT) {
+       case S_IFREG:
+               if (ent->mode & 0100) {
+                       pair = C_EXE;
+                       ind = '*';
+               }
+
+               if (ent->flags & HARD_LINK)
+                       pair = C_HRD;
+
+               if (!ent->size)
                        pair = C_UND;
-               else if (pair == C_DIR)
+               else if (!pair)
+                       pair = C_FIL;
+               break;
+       case S_IFDIR:
+               pair = C_DIR;
+               attrs |= A_BOLD;
+               ind = '/';
+               break;
+       case S_IFLNK:
+               if (ent->flags & DIR_OR_LINK_TO_DIR) {
                        attrs |= A_BOLD;
-               else if (ent->flags & HARD_LINK)
-                       pair = C_HRD;
-               else if (ent->flags & FILE_MISSING)
+                       ind = '/';
+               } else
+                       ind = '@';
+
+               if (g_state.ctxcolor)
+                       attrs |= A_DIM;
+               else
+                       pair = (ent->flags & SYM_ORPHAN) ? C_ORP : C_LNK;
+               break;
+       case S_IFSOCK:
+               pair = C_SOC;
+               ind = '=';
+               break;
+       case S_IFIFO:
+               pair = C_PIP;
+               ind = '|';
+               break;
+       case S_IFBLK:
+               pair = C_BLK;
+               break;
+       case S_IFCHR:
+               pair = C_CHR;
+               break;
+       default:
+               pair = C_UND;
+               ind = '?';
+               break;
+       }
+
+       if (!g_state.ctxcolor) {
+               if (ent->flags & FILE_MISSING)
                        pair = C_MIS;
 
                if (pair && fcolors[pair])
@@ -3532,6 +3544,7 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
                                pair = C_EXE;
                                ind2 = '*';
                        }
+
                        if (ent->flags & HARD_LINK) {
                                pair = C_HRD;
                                ln = TRUE;
@@ -3589,17 +3602,19 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
                break;
        }
 
-       if (ent->flags & FILE_MISSING)
-               pair = C_MIS;
-
        addstr("  ");
        if (!(ln && g_state.ctxcolor)) {
                attroff(A_DIM);
                attrs ^=  A_DIM;
 
-               if (!g_state.ctxcolor && pair && fcolors[pair]) {
-                       attrs |= COLOR_PAIR(pair);
-                       attron(attrs);
+               if (!g_state.ctxcolor) {
+                       if (ent->flags & FILE_MISSING)
+                               pair = C_MIS;
+
+                       if (pair && fcolors[pair]) {
+                               attrs |= COLOR_PAIR(pair);
+                               attron(attrs);
+                       }
                }
        }
 #ifndef NOLOCALE