Plugins can access:
- all files in the directory (`nnn` switches to the dir where the plugin is to be run so the dir is `$PWD` for the plugin)
-- the current file under the cursor (the file name is passed as the argument to a plugin)
+- the current file under the cursor (the file name is passed as the first argument to a plugin)
+- the traversed path where plugin is invoked (this is the second argument to the plugin; for all practical purposes this is the same as `$PWD` except paths with symlinks)
- the current selection (by reading the file `.selection` in config dir, see the plugin `ndiff`)
Each script has a _Description_ section which provides more details on what the script does, if applicable.
xstrlcpy(path, rundir, PATH_MAX);
if (runfile[0]) {
xstrlcpy(lastname, runfile, NAME_MAX);
- spawn(newpath, lastname, NULL, path, F_NORMAL);
+ spawn(newpath, lastname, path, path, F_NORMAL);
runfile[0] = '\0';
} else
- spawn(newpath, NULL, NULL, path, F_NORMAL);
+ spawn(newpath, NULL, path, path, F_NORMAL);
rundir[0] = '\0';
cfg.runplugin = 0;
setdirwatch();
mkpath(plugindir, tmp, newpath);
if (ndents)
- spawn(newpath, dents[cur].name, NULL, path, F_NORMAL);
+ spawn(newpath, dents[cur].name, path, path, F_NORMAL);
else
- spawn(newpath, NULL, NULL, path, F_NORMAL);
+ spawn(newpath, NULL, path, path, F_NORMAL);
if (cfg.filtermode)
presel = FILTER;