]> Sergey Matveev's repositories - nnn.git/commitdiff
Option -C to disable color
authorArun Prakash Jana <engineerarun@gmail.com>
Sun, 5 Apr 2020 00:23:46 +0000 (05:53 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 5 Apr 2020 00:23:46 +0000 (05:53 +0530)
misc/auto-completion/bash/nnn-completion.bash
misc/auto-completion/fish/nnn.fish
misc/auto-completion/zsh/_nnn
nnn.1
src/nnn.c

index b498b63147c3d2bcfb40da45c301b40f7b483d49..3614e2889634923903ac3b772da501a3dcca5969 100644 (file)
@@ -15,6 +15,7 @@ _nnn ()
         -A
         -b
         -c
+        -C
         -d
         -e
         -E
index 82dfc36feebd9aa2ba571432af0a6f08a2dda38e..9dc05f119c5ba6ca28655fe68932c7c32c881fdb 100644 (file)
@@ -14,6 +14,7 @@ end
 complete -c nnn -s A    -d 'disable dir auto-select'
 complete -c nnn -s b -r -d 'bookmark key to open' -x -a '(echo $NNN_BMS | awk -F: -v RS=\; \'{print $1"\t"$2}\')'
 complete -c nnn -s c    -d 'cli-only opener'
+complete -c nnn -s C    -d 'disable color'
 complete -c nnn -s d    -d 'start in detail mode'
 complete -c nnn -s e    -d 'open text files in $VISUAL/$EDITOR/vi'
 complete -c nnn -s E    -d 'use EDITOR for undetached edits'
index d40ea684aec425a824be9bb28741d3550bce73ce..6da9dea8b8554951d86e8da36fc74f8a5a765915 100644 (file)
@@ -12,6 +12,7 @@ args=(
     '(-A)-A[disable dir auto-select]'
     '(-b)-b[bookmark key to open]:key char'
     '(-c)-c[cli-only opener]'
+    '(-C)-C[disable color]'
     '(-d)-d[start in detail mode]'
     '(-e)-e[open text files in $VISUAL/$EDITOR/vi]'
     '(-E)-E[use EDITOR for undetached edits]'
diff --git a/nnn.1 b/nnn.1
index 9d99947b00d72d73d8c6fe7bfb2be3fdf6e568e3..86c879cba342945dcc48d3f57ab063800715a903 100644 (file)
--- a/nnn.1
+++ b/nnn.1
@@ -9,6 +9,7 @@
 .Op Ar -A
 .Op Ar -b key
 .Op Ar -c
+.Op Ar -C
 .Op Ar -d
 .Op Ar -e
 .Op Ar -E
@@ -62,6 +63,9 @@ supports the following options:
 .Fl c
         opener opens files in cli utilities only (overrides -e)
 .Pp
+.Fl C
+        disable color
+.Pp
 .Fl d
         detail mode
 .Pp
index 71d1c490ac66a486ed080eef6f39bd47f0ed7844..090a15c8a002f12684ab4584f18efb992ac5476f 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -400,6 +400,7 @@ static char g_pipepath[TMP_LEN_MAX] __attribute__ ((aligned));
 #define STATE_TRASH 0x40
 #define STATE_FORCEQUIT 0x80
 #define STATE_FORTUNE 0x100
+#define STATE_NOCOLOR 0x200
 
 static uint g_states;
 
@@ -1522,18 +1523,21 @@ static bool initcurses(void *oldmask)
        mouseinterval(0);
 #endif
        curs_set(FALSE); /* Hide cursor */
-       start_color();
-       use_default_colors();
-
-       /* Get and set the context colors */
-       for (i = 0; i <  CTX_MAX; ++i) {
-               if (*colors) {
-                       g_ctx[i].color = (*colors < '0' || *colors > '7') ? 4 : *colors - '0';
-                       ++colors;
-               } else
-                       g_ctx[i].color = 4;
 
-               init_pair(i + 1, g_ctx[i].color, -1);
+       if (!(g_states & STATE_NOCOLOR)) {
+               start_color();
+               use_default_colors();
+
+               /* Get and set the context colors */
+               for (i = 0; i <  CTX_MAX; ++i) {
+                       if (*colors) {
+                               g_ctx[i].color = (*colors < '0' || *colors > '7') ? 4 : *colors - '0';
+                               ++colors;
+                       } else
+                               g_ctx[i].color = 4;
+
+                       init_pair(i + 1, g_ctx[i].color, -1);
+               }
        }
 
        settimeout(); /* One second */
@@ -3206,7 +3210,7 @@ static char get_ind(mode_t mode, bool perms)
                        return '*';
                return '\0';
        case S_IFDIR:
-               return perms ? 'd' : '\0';
+               return perms ? 'd' : '/';
        case S_IFLNK:
                return perms ? 'l' : '@';
        case S_IFSOCK:
@@ -3303,16 +3307,19 @@ static void printent_long(const struct entry *ent, uint namecols, bool sel)
        addch('0' + (ent->mode & 7));
 
        switch (ent->mode & S_IFMT) {
+       case S_IFDIR:
+               ind2 = '/'; // fallthrough
        case S_IFREG:
-               if (ent->flags & HARD_LINK)
-                       ln = TRUE;
+               if (!ind2) {
+                       if (ent->flags & HARD_LINK)
+                               ln = TRUE;
 
-               if (ent->mode & 0100)
-                       ind2 = '*';
-               // fallthrough
-       case S_IFDIR:
-               if (!ind2) /* Add a column if end indicator is not needed */
-                       ++namecols;
+                       if (ent->mode & 0100)
+                               ind2 = '*';
+
+                       if (!ind2) /* Add a column if end indicator is not needed */
+                               ++namecols;
+               }
 
                size = coolsize(cfg.blkorder ? ent->blocks << blk_shift : ent->size);
                len = 10 - (uint)strlen(size);
@@ -6577,6 +6584,7 @@ static void usage(void)
                " -A      no dir auto-select\n"
                " -b key  open bookmark key\n"
                " -c      cli-only opener (overrides -e)\n"
+               " -C      disable color\n"
                " -d      detail mode\n"
                " -e      text in $VISUAL/$EDITOR/vi\n"
                " -E      use EDITOR for undetached edits\n"
@@ -6748,7 +6756,7 @@ int main(int argc, char *argv[])
 
        while ((opt = (env_opts_id > 0
                       ? env_opts[--env_opts_id]
-                      : getopt(argc, argv, "Ab:cdeEfFgHKnop:QrRs:St:T:Vxh"))) != -1) {
+                      : getopt(argc, argv, "Ab:cCdeEfFgHKnop:QrRs:St:T:Vxh"))) != -1) {
                switch (opt) {
                case 'A':
                        cfg.autoselect = 0;
@@ -6759,6 +6767,9 @@ int main(int argc, char *argv[])
                case 'c':
                        cfg.cliopener = 1;
                        break;
+               case 'C':
+                       g_states |= STATE_NOCOLOR;
+                       break;
                case 'S':
                        cfg.blkorder = 1;
                        nftw_fn = sum_bsize;