]> Sergey Matveev's repositories - nnn.git/commitdiff
Replace bools for binary states with an uchar
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 20 Dec 2019 10:31:35 +0000 (16:01 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 20 Dec 2019 10:31:35 +0000 (16:01 +0530)
src/nnn.c

index 57432d9910b33efafebf45c09727f2da54907aab..124b0cd47cf0365358d5104c465caf46c8e45d52 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -331,8 +331,6 @@ static kv bookmark[BM_MAX];
 static kv plug[PLUGIN_MAX];
 static uchar g_tmpfplen;
 static uchar blk_shift = BLK_SHIFT_512;
-static bool interrupted = FALSE;
-static bool rangesel = FALSE;
 
 /* Retain old signal handlers */
 #ifdef __linux__
@@ -353,8 +351,14 @@ static char g_tmpfpath[TMP_LEN_MAX] __attribute__ ((aligned));
 /* Buffer to store plugins control pipe location */
 static char g_pipepath[TMP_LEN_MAX] __attribute__ ((aligned));
 
+/* MISC NON-PERSISTENT INTERNAL BINARY STATES */
+
 /* Plugin control initialization status */
-static bool g_plinit = FALSE;
+#define STATE_PLUGIN_INIT 0x1
+#define STATE_INTERRUPTED 0x2
+#define STATE_RANGESEL 0x4
+
+static uchar g_states;
 
 /* Options to identify file mime */
 #if defined(__APPLE__)
@@ -604,7 +608,7 @@ static void sigint_handler(int sig)
 {
        (void) sig;
 
-       interrupted = TRUE;
+       g_states |= STATE_INTERRUPTED;
 }
 
 static uint xatoi(const char *str)
@@ -3607,9 +3611,9 @@ static bool run_selected_plugin(char **path, const char *file, char *newpath, ch
        if (*file == '_')
                return run_cmd_as_plugin(*path, file, newpath, runfile);
 
-       if (!g_plinit) {
+       if (!(g_states & STATE_PLUGIN_INIT)) {
                plctrl_init();
-               g_plinit = TRUE;
+               g_states |= STATE_PLUGIN_INIT;
        }
 
        fd = open(g_pipepath, O_RDONLY | O_NONBLOCK);
@@ -3796,7 +3800,7 @@ static int dentfill(char *path, struct entry **dents)
 
                                        dir_blocks += dirwalk(buf, &sb);
 
-                                       if (interrupted) {
+                                       if (g_states & STATE_INTERRUPTED) {
                                                closedir(dirp);
                                                return n;
                                        }
@@ -3893,7 +3897,7 @@ static int dentfill(char *path, struct entry **dents)
                                else
                                        num_files = num_saved;
 
-                               if (interrupted) {
+                               if (g_states & STATE_INTERRUPTED) {
                                        closedir(dirp);
                                        return n;
                                }
@@ -4189,7 +4193,7 @@ static void redraw(char *path)
 
                        mvprintw(lastln, 0, "%d/%d [%d:%s] %cu:%s free:%s files:%lu %lldB %s",
                                 cur + 1, ndents, cfg.selmode,
-                                (rangesel ? "*" : (nselected ? xitoa(nselected) : "")),
+                                ((g_states & STATE_RANGESEL) ? "*" : (nselected ? xitoa(nselected) : "")),
                                 c, buf, coolsize(get_fs_info(path, FREE)), num_files,
                                 (ll)pent->blocks << blk_shift, ptr);
                } else { /* light or detail mode */
@@ -4203,7 +4207,7 @@ static void redraw(char *path)
 
                        mvprintw(lastln, 0, "%d/%d [%d:%s] %s%s %s %s %s [%s]",
                                 cur + 1, ndents, cfg.selmode,
-                                (rangesel ? "*" : (nselected ? xitoa(nselected) : "")),
+                                ((g_states & STATE_RANGESEL) ? "*" : (nselected ? xitoa(nselected) : "")),
                                 sort, buf, get_lsperms(pent->mode), coolsize(pent->size), ptr, base);
                }
        } else
@@ -4280,8 +4284,8 @@ begin:
                printwarn(&presel);
 
        populate(path, lastname);
-       if (interrupted) {
-               interrupted = FALSE;
+       if (g_states & STATE_INTERRUPTED) {
+               g_states &= ~STATE_INTERRUPTED;
                cfg.apparentsz = 0;
                cfg.blkorder = 0;
                blk_shift = BLK_SHIFT_512;
@@ -4870,8 +4874,8 @@ nochange:
                                goto nochange;
 
                        startselection();
-                       if (rangesel)
-                               rangesel = FALSE;
+                       if (g_states & STATE_RANGESEL)
+                               g_states &= ~STATE_RANGESEL;
 
                        /* Toggle selection status */
                        dents[cur].flags ^= FILE_SELECTED;
@@ -4904,14 +4908,14 @@ nochange:
                                goto nochange;
 
                        startselection();
-                       rangesel ^= TRUE;
+                       g_states ^= STATE_RANGESEL;
 
                        if (stat(path, &sb) == -1) {
                                printwarn(&presel);
                                goto nochange;
                        }
 
-                       if (rangesel) { /* Range selection started */
+                       if (g_states & STATE_RANGESEL) { /* Range selection started */
                                inode = sb.st_ino;
                                selstartid = cur;
                                continue;
@@ -4941,8 +4945,8 @@ nochange:
                                        goto nochange;
 
                                startselection();
-                               if (rangesel)
-                                       rangesel = FALSE;
+                               if (g_states & STATE_RANGESEL)
+                                       g_states &= ~STATE_RANGESEL;
 
                                selstartid = 0;
                                selendid = ndents - 1;