uint blkorder : 1; /* Set to sort by blocks used (disk usage) */
uint extnorder : 1; /* Order by extension */
uint showhidden : 1; /* Set to show hidden files */
- uint selmode : 1; /* Set when selecting files */
+ uint reserved0 : 1;
uint showdetail : 1; /* Clear to show lesser file info */
uint ctxactive : 1; /* Context active or not */
uint reverse : 1; /* Reverse sort */
uint pickraw : 1; /* Write selection to sdtout before exit */
uint runplugin : 1; /* Choose plugin mode */
uint runctx : 2; /* The context in which plugin is to be run */
- uint reserved : 16;
+ uint selmode : 1; /* Set when selecting files */
+ uint reserved : 15;
} runstate;
/* Contexts or workspaces */
0, /* blkorder */
0, /* extnorder */
0, /* showhidden */
- 0, /* selmode */
+ 0, /* reserved0 */
0, /* showdetail */
1, /* ctxactive */
0, /* reverse */
static void startselection(void)
{
- if (!cfg.selmode) {
- cfg.selmode = 1;
+ if (!g_state.selmode) {
+ g_state.selmode = 1;
nselected = 0;
if (selbufpos) {
ssize_t count;
char buf[sizeof(patterns[P_REPLACE]) + PATH_MAX + (TMP_LEN_MAX << 1)];
- if (cfg.selmode)
- cfg.selmode = 0;
+ if (g_state.selmode)
+ g_state.selmode = 0;
if (!listpath || !selbufpos)
return;
{
nselected = 0;
selbufpos = 0;
- cfg.selmode = 0;
+ g_state.selmode = 0;
writesel(NULL, 0);
}
* Check for changes every odd second.
*/
#ifdef LINUX_INOTIFY
- if (!cfg.selmode && !cfg.blkorder && inotify_wd >= 0 && (idle & 1)) {
+ if (!g_state.selmode && !cfg.blkorder && inotify_wd >= 0 && (idle & 1)) {
struct inotify_event *event;
char inotify_buf[EVENT_BUF_LEN];
}
}
#elif defined(BSD_KQUEUE)
- if (!cfg.selmode && !cfg.blkorder && event_fd >= 0 && idle & 1) {
+ if (!g_state.selmode && !cfg.blkorder && event_fd >= 0 && idle & 1) {
struct kevent event_data[NUM_EVENT_SLOTS];
memset((void *)event_data, 0x0, sizeof(struct kevent) * NUM_EVENT_SLOTS);
c = CONTROL('L');
}
#elif defined(HAIKU_NM)
- if (!cfg.selmode && !cfg.blkorder && haiku_nm_active && idle & 1 && haiku_is_update_needed(haiku_hnd))
+ if (!g_state.selmode && !cfg.blkorder && haiku_nm_active && idle & 1 && haiku_is_update_needed(haiku_hnd))
c = CONTROL('L');
#endif
} else
{
settings cfg = *curcfg;
context *ctxr = &g_ctx[r];
- bool selmode = cfg.selmode ? TRUE : FALSE;
/* Save current context */
if (ndents)
ctxr->c_cfg = cfg;
}
- /* Continue selection mode */
- cfg.selmode = selmode;
cfg.curctx = r;
-
*curcfg = cfg;
}
return -1;
}
- if (cfg.selmode)
+ if (g_state.selmode)
lastappendpos = selbufpos;
}
xstrsncpy(buf, coolsize(dir_blocks << blk_shift), 12);
printw("%d/%d [%s:%s] %cu:%s free:%s files:%lu %lldB %s\n",
- cur + 1, ndents, (cfg.selmode ? "s" : ""),
+ cur + 1, ndents, (g_state.selmode ? "s" : ""),
(g_state.rangesel ? "*" : (nselected ? xitoa(nselected) : "")),
(cfg.apparentsz ? 'a' : 'd'), buf, coolsize(get_fs_info(path, FREE)),
num_files, (ll)pent->blocks << blk_shift, ptr);
getorderstr(sort);
- printw("%d/%d [%s:%s] %s", cur + 1, ndents, (cfg.selmode ? "s" : ""),
+ printw("%d/%d [%s:%s] %s", cur + 1, ndents, (g_state.selmode ? "s" : ""),
(g_state.rangesel ? "*" : (nselected ? xitoa(nselected) : "")), sort);
/* Timestamp */
setdirwatch();
}
- if (cfg.selmode && lastdir[0])
+ if (g_state.selmode && lastdir[0])
lastappendpos = selbufpos;
#ifdef LINUX_INOTIFY
if (r >= CTX_MAX)
sel = SEL_BACK;
else if (r >= 0 && r != cfg.curctx) {
- if (cfg.selmode)
+ if (g_state.selmode)
lastappendpos = selbufpos;
savecurctx(&cfg, path, dents[cur].name, r);
};
if (r != ctx) {
- bool selmode = cfg.selmode ? TRUE : FALSE;
-
g_ctx[ctx].c_cfg.ctxactive = 0;
/* Switch to next active context */
cfg = g_ctx[r].c_cfg;
- /* Continue selection mode */
- cfg.selmode = selmode;
cfg.curctx = r;
setdirwatch();
goto begin;