From 9f68e74289ce85eb35781beb5edaf879328a13d9 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Thu, 3 Oct 2019 03:33:15 +0530 Subject: [PATCH] Revert "Fix #334: Detect session type" This reverts commit e226e8c889e1a218f7ad2ecd669bc6ad00ccca22. --- README.md | 1 + nnn.1 | 3 +++ src/nnn.c | 21 ++++++++++++--------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f5e5d3db..ae6dfbc0 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,7 @@ positional args: optional args: -a use access time -b key open bookmark key + -c cli-only opener -d detail mode -f run filter as cmd on prompt key -H show hidden files diff --git a/nnn.1 b/nnn.1 index 3ff17955..577243ff 100644 --- a/nnn.1 +++ b/nnn.1 @@ -44,6 +44,9 @@ supports the following options: .Fl "b key" specify bookmark key to open .Pp +.Fl c + opener opens files in cli utilities only +.Pp .Fl d detail mode .Pp diff --git a/src/nnn.c b/src/nnn.c index ab536bd0..85004e12 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -212,7 +212,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 : 6; + uint reserved : 5; /* The following settings are global */ uint curctx : 2; /* Current context number */ uint dircolor : 1; /* Current status of dir color */ @@ -228,6 +228,7 @@ typedef struct { uint filtercmd : 1; /* Run filter as command on no match */ uint trash : 1; /* Move removed files to trash */ uint mtime : 1; /* Use modification time (else access time) */ + uint cliopener : 1; /* All-CLI app opener */ } settings; /* Contexts or workspaces */ @@ -269,6 +270,7 @@ static settings cfg = { 0, /* filtercmd */ 0, /* trash */ 1, /* mtime */ + 0, /* cliopener */ }; static context g_ctx[CTX_MAX] __attribute__ ((aligned)); @@ -3356,20 +3358,17 @@ static void browse(char *ipath) char mark[PATH_MAX] __attribute__ ((aligned)); char rundir[PATH_MAX] __attribute__ ((aligned)); char runfile[NAME_MAX + 1] __attribute__ ((aligned)); - uchar opener_flags = F_NOTRACE | F_NOWAIT; + uchar opener_flags = (cfg.cliopener ? F_CLI : (F_NOTRACE | F_NOWAIT)); int r = -1, fd, presel, selstartid = 0, selendid = 0, onscreen; ino_t inode = 0; enum action sel; bool dir_changed = FALSE, rangesel = FALSE; struct stat sb; - char *path, *lastdir, *lastname, *dir, *tmp = getenv("XDG_SESSION_TYPE"); + char *path, *lastdir, *lastname, *dir, *tmp; MEVENT event; atexit(dentfree); - if (tmp && !xstrcmp(tmp, "tty")) - opener_flags = F_CLI; - /* setup first context */ xstrlcpy(g_ctx[0].c_path, ipath, PATH_MAX); /* current directory */ path = g_ctx[0].c_path; @@ -4567,6 +4566,7 @@ static void usage(void) "optional args:\n" " -a use access time\n" " -b key open bookmark key\n" + " -c cli-only opener\n" " -d detail mode\n" " -f run filter as cmd on prompt key\n" " -H show hidden files\n" @@ -4713,7 +4713,7 @@ int main(int argc, char *argv[]) bool progress = FALSE; #endif - while ((opt = getopt(argc, argv, "HSiab:dfnop:rstvh")) != -1) { + while ((opt = getopt(argc, argv, "HSiab:cdfnop:rstvh")) != -1) { switch (opt) { case 'S': cfg.blkorder = 1; @@ -4732,6 +4732,9 @@ int main(int argc, char *argv[]) case 'b': arg = optarg; break; + case 'c': + cfg.cliopener = 1; + break; case 'f': cfg.filtercmd = 1; break; @@ -4879,8 +4882,8 @@ int main(int argc, char *argv[]) } } - /* Edit text in EDITOR if opted */ - if (xgetenv_set(env_cfg[NNN_USE_EDITOR])) + /* Edit text in EDITOR if opted (and opener is not all-CLI) */ + if (!cfg.cliopener && xgetenv_set(env_cfg[NNN_USE_EDITOR])) cfg.useeditor = 1; /* Get VISUAL/EDITOR */