]> Sergey Matveev's repositories - nnn.git/commitdiff
Do not save trash setting in config (and session)
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 21 Feb 2020 16:24:26 +0000 (21:54 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 21 Feb 2020 16:24:26 +0000 (21:54 +0530)
src/nnn.c

index a8e120b5c0fe76bc6d1462021a0ae47866f560d7..33d8b8fa6dafcc0d8cb6badf08c45a06c6005324 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -250,7 +250,7 @@ typedef struct {
        uint selmode    : 1;  /* Set when selecting files */
        uint showdetail : 1;  /* Clear to show fewer file info */
        uint ctxactive  : 1;  /* Context active or not */
-       uint reserved   : 2;
+       uint reserved1  : 2;
        /* The following settings are global */
        uint forcequit  : 1;  /* Do not confirm when quitting program */
        uint curctx     : 2;  /* Current context number */
@@ -265,7 +265,7 @@ typedef struct {
        uint runctx     : 2;  /* The context in which plugin is to be run */
        uint regex      : 1;  /* Use regex filters */
        uint x11        : 1;  /* Copy to system clipboard and show notis */
-       uint trash      : 1;  /* Move removed files to trash */
+       uint reserved2  : 1;
        uint mtime      : 1;  /* Use modification time (else access time) */
        uint cliopener  : 1;  /* All-CLI app opener */
        uint waitedit   : 1;  /* For ops that can't be detached, used EDITOR */
@@ -304,7 +304,7 @@ static settings cfg = {
        0, /* selmode */
        0, /* showdetail */
        1, /* ctxactive */
-       0, /* reserved */
+       0, /* reserved1 */
        0, /* forcequit */
        0, /* curctx */
        0, /* dircolor */
@@ -318,7 +318,7 @@ static settings cfg = {
        0, /* runctx */
        0, /* regex */
        0, /* x11 */
-       0, /* trash */
+       0, /* reserved2 */
        1, /* mtime */
        0, /* cliopener */
        0, /* waitedit */
@@ -391,6 +391,7 @@ static char g_pipepath[TMP_LEN_MAX] __attribute__ ((aligned));
 #define STATE_MOVE_OP 0x8
 #define STATE_AUTONEXT 0x10
 #define STATE_MSG 0x20
+#define STATE_TRASH 0x40
 
 static uchar g_states;
 
@@ -1652,7 +1653,7 @@ static void opstr(char *buf, char *op)
 
 static void rmmulstr(char *buf)
 {
-       if (cfg.trash)
+       if (g_states & STATE_TRASH)
                snprintf(buf, CMD_LEN_MAX, "xargs -0 trash-put < %s", g_selpath);
        else
                snprintf(buf, CMD_LEN_MAX, "xargs -0 sh -c 'rm -%cr \"$0\" \"$@\" < /dev/tty' < %s",
@@ -1661,7 +1662,7 @@ static void rmmulstr(char *buf)
 
 static void xrm(char *path)
 {
-       if (cfg.trash)
+       if (g_states & STATE_TRASH)
                spawn("trash-put", path, NULL, NULL, F_NORMAL);
        else {
                char rm_opts[] = "-ir";
@@ -6721,7 +6722,7 @@ int main(int argc, char *argv[])
 
        /* Configure trash preference */
        if (xgetenv_set(env_cfg[NNN_TRASH]))
-               cfg.trash = 1;
+               g_states |= STATE_TRASH;
 
        /* Ignore/handle certain signals */
        struct sigaction act = {.sa_handler = sigint_handler};