nnn

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 3d2caf861d5e7f6e7399a1b574134821c356d75c
parent 5595d93d29d2474338a9f601d713d395a07a6029
Author: me <email>
Date:   Wed, 13 Dec 2023 15:42:48 +0300

Setting PWD: set on use case, not on browse

This moves setting PWD environment variable closer to the places where child process (that needs PWD correctly set) is started instead of start it on browse.

Diffstat:
Mpatches/restorepreview/mainline.diff | 2+-
Msrc/nnn.c | 13++++++-------
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)