Pārlūkot izejas kodu

Remember detail/light mode of context

master
Arun Prakash Jana pirms 5 gadiem
vecāks
revīzija
f7dd38d90e
Šim parakstam datu bāzē netika atrasta zināma atslēga GPG atslēgas ID: A75979F35C080412
1 mainītis faili ar 40 papildinājumiem un 29 dzēšanām
  1. +40
    -29
      src/nnn.c

+ 40
- 29
src/nnn.c Parādīt failu

@@ -1869,35 +1869,6 @@ static int xlink(char *suffix, char *path, char *buf, int type)
return count;
}

static void savecurctx(settings *curcfg, char *path, char *curname, int r /* next context num */)
{
settings cfg = *curcfg;

#ifdef DIR_LIMITED_COPY
g_crc = 0;
#endif
/* Save current context */
xstrlcpy(g_ctx[cfg.curctx].c_name, curname, NAME_MAX + 1);
g_ctx[cfg.curctx].c_cfg = cfg;

if (g_ctx[r].c_cfg.ctxactive) /* Switch to saved context */
cfg = g_ctx[r].c_cfg;
else { /* Setup a new context from current context */
g_ctx[r].c_cfg.ctxactive = 1;
xstrlcpy(g_ctx[r].c_path, path, PATH_MAX);
g_ctx[r].c_last[0] = '\0';
xstrlcpy(g_ctx[r].c_name, curname, NAME_MAX + 1);
g_ctx[r].c_fltr[0] = g_ctx[r].c_fltr[1] = '\0';
g_ctx[r].p_fltr = g_ctx[r].c_fltr + 1;
g_ctx[r].c_cfg = cfg;
g_ctx[r].c_cfg.runscript = 0;
}

cfg.curctx = r;

*curcfg = cfg;
}

static bool parsebmstr(void)
{
int i = 0;
@@ -2204,6 +2175,40 @@ static void printent_long(const struct entry *ent, int sel, uint namecols)

static void (*printptr)(const struct entry *ent, int sel, uint namecols) = &printent_long;

static void savecurctx(settings *curcfg, char *path, char *curname, int r /* next context num */)
{
settings cfg = *curcfg;

#ifdef DIR_LIMITED_COPY
g_crc = 0;
#endif
/* Save current context */
xstrlcpy(g_ctx[cfg.curctx].c_name, curname, NAME_MAX + 1);
g_ctx[cfg.curctx].c_cfg = cfg;

if (g_ctx[r].c_cfg.ctxactive) { /* Switch to saved context */
/* Switch light/detail mode */
if (cfg.showdetail != g_ctx[r].c_cfg.showdetail)
/* set the reverse */
printptr = cfg.showdetail ? &printent : &printent_long;

cfg = g_ctx[r].c_cfg;
} else { /* Setup a new context from current context */
g_ctx[r].c_cfg.ctxactive = 1;
xstrlcpy(g_ctx[r].c_path, path, PATH_MAX);
g_ctx[r].c_last[0] = '\0';
xstrlcpy(g_ctx[r].c_name, curname, NAME_MAX + 1);
g_ctx[r].c_fltr[0] = g_ctx[r].c_fltr[1] = '\0';
g_ctx[r].p_fltr = g_ctx[r].c_fltr + 1;
g_ctx[r].c_cfg = cfg;
g_ctx[r].c_cfg.runscript = 0;
}

cfg.curctx = r;

*curcfg = cfg;
}

/*
* Gets only a single line (that's what we need
* for now) or shows full command output in pager.
@@ -3929,6 +3934,12 @@ nochange:
path = g_ctx[r].c_path;
lastdir = g_ctx[r].c_last;
lastname = g_ctx[r].c_name;

/* Switch light/detail mode */
if (cfg.showdetail != g_ctx[r].c_cfg.showdetail)
/* Set the reverse */
printptr = cfg.showdetail ? &printent : &printent_long;

cfg = g_ctx[r].c_cfg;

cfg.curctx = r;


Notiek ielāde…
Atcelt
Saglabāt