commit f2a8648861ff88e1c2d5a95ae4d76b7367e12c9b
parent 82f9e544f2a1ff2aba002906ab67969fde64f46f
Author: Arun <engineerarun@gmail.com>
Date: Fri, 15 Dec 2023 06:07:44 +0530
Merge pull request #1783 from 7ocb/alternative-setenv-pwd-3
Setting PWD: set on use case, not on browse
Diffstat:
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/patches/restorepreview/mainline.diff b/patches/restorepreview/mainline.diff
@@ -238,7 +238,7 @@ index 0388b23c..66d3316a 100644
case SEL_PROMPT:
+ if (g_state.previewer)
+ notify_fifo(FALSE, TRUE);
- r = handle_cmd(sel, newpath);
+ r = handle_cmd(sel, path, newpath);
+ if (g_state.previewer) {
+ pkey = previewkey;
+ goto run_plugin;
diff --git a/src/nnn.c b/src/nnn.c
@@ -5237,7 +5237,7 @@ static void show_help(const char *path)
unlink(g_tmpfpath);
}
-static void setexports(void)
+static void setexports(const char *path)
{
char dvar[] = "d0";
char fvar[] = "f0";
@@ -5261,6 +5261,7 @@ static void setexports(void)
}
setenv("NNN_INCLUDE_HIDDEN", xitoa(cfg.showhidden), 1);
setenv("NNN_PREFER_SELECTION", xitoa(cfg.prefersel), 1);
+ setenv("PWD", path, 1);
}
static void run_cmd_as_plugin(const char *file, uchar_t flags)
@@ -5391,7 +5392,7 @@ static bool run_plugin(char **path, const char *file, char *runfile, char **last
g_state.pluginit = 1;
}
- setexports();
+ setexports(*path);
/* Check for run-cmd-as-plugin mode */
if (*file == '!') {
@@ -5565,14 +5566,14 @@ static bool prompt_run(void)
return ret;
}
-static bool handle_cmd(enum action sel, char *newpath)
+static bool handle_cmd(enum action sel, char *path, char *newpath)
{
endselection(FALSE);
if (sel == SEL_LAUNCH)
return launch_app(newpath);
- setexports();
+ setexports(path);
if (sel == SEL_PROMPT)
return prompt_run();
@@ -6835,8 +6836,6 @@ begin:
setdirwatch();
}
- setenv("PWD", path, TRUE);
-
#ifndef NOX11
xterm_cfg(path);
#endif
@@ -7969,7 +7968,7 @@ nochange:
case SEL_SHELL: // fallthrough
case SEL_LAUNCH: // fallthrough
case SEL_PROMPT:
- r = handle_cmd(sel, newpath);
+ r = handle_cmd(sel, path, newpath);
/* Continue in type-to-nav mode, if enabled */
if (cfg.filtermode)